【嵌入式 Linux 实战 1】Ubuntu 环境搭建 + 目录结构详解:嵌入式开发入门第一步

【嵌入式 Linux 实战 1】Ubuntu 环境搭建 + 目录结构详解:嵌入式开发入门第一步

大家好,我是学嵌入式的小杨同学。嵌入式开发离不开 Linux 环境 ------ 无论是驱动开发、交叉编译,还是程序调试,Linux 系统的稳定性和开源特性都使其成为首选。今天就结合资料,先带大家搞定 Ubuntu 系统的环境搭建,再吃透 Linux 的目录结构和路径规则,为后续嵌入式开发打下基础。

一、先搞懂:为什么嵌入式开发首选 Linux?

在开始搭建环境前,先明确 Linux 的核心优势,理解 "为什么嵌入式开发离不开它":

  1. 开源免费:无需付费即可使用全部功能,支持定制化开发(如裁剪内核适配嵌入式硬件);
  2. 多用户多任务:支持同时运行多个程序、多个用户操作,适合嵌入式设备的多任务场景;
  3. 完全兼容 POSIX 标准:提供统一的编程接口,编写的程序可轻松移植到其他 POSIX 兼容系统(如 Unix);
  4. 一切皆文件:硬件设备、进程、网络接口等都以文件形式管理,简化嵌入式驱动开发;
  5. 轻量级可裁剪:可根据嵌入式硬件资源(如内存、Flash)裁剪系统组件,适配单片机、开发板等资源受限设备。

二、Ubuntu 20.04 环境搭建(重点步骤)

嵌入式开发中,Ubuntu 是最常用的桌面版 Linux 系统,以下是基于 Ubuntu 20.04 的完整搭建流程:

1. 系统镜像下载

  • 下载地址:Ubuntu 20.04 官方镜像
  • 推荐版本:ubuntu-20.04.6-desktop-amd64.iso(64 位桌面版,长期支持 LTS 版本,稳定性强)
  • 下载方式:支持直接下载、BitTorrent 下载,根据网络情况选择即可。

2. 安装方式选择

(1)虚拟机安装(新手首选)
  • 工具:VMware Workstation、VirtualBox 等;
  • 核心步骤:
    1. 新建虚拟机,选择 "典型安装",导入下载的 Ubuntu 镜像;
    2. 配置虚拟机内存(建议≥2GB)、硬盘(建议≥20GB)、网络适配器(默认 NAT 模式即可上网);
    3. 启动虚拟机,按照向导完成系统安装(设置用户名、密码、时区等);
    4. 安装完成后,安装 VMware Tools(增强鼠标、文件共享等功能)。
(2)物理机安装(进阶用户)
  • 适合场景:需要更好的性能,或开发板需直接与物理机连接;
  • 注意事项:需提前备份物理机数据,通过 U 盘启动盘安装,分区时建议单独划分/home目录(存储用户数据)。

3. 网络问题排查(嵌入式开发必备)

虚拟机联网是嵌入式开发的基础(如在线安装工具、开发板网络通信),常见问题及解决:

(1)无网络适配器(缺失 VMnet0)
  • 问题现象:虚拟机无网络连接选项,提示 "没有未桥接的主机网络适配器";
  • 解决步骤:
    1. 打开 VMware 的 "虚拟网络编辑器";
    2. 点击 "添加网络",新建 VMnet0(桥接模式);
    3. 选择桥接至主机的物理网卡(如 WiFi、有线网卡),应用设置后重启虚拟机。
(2)能识别适配器但无法上网
  • 解决步骤:
    1. 断开虚拟机网络连接,重新连接;

    2. 若仍无效,执行命令重置网络服务: bash

      复制代码
      sudo service NetworkManager stop  # 停止网络服务
      sudo rm /var/lib/NetworkManager/NetworkManager.state  # 删除网络状态文件
      sudo service NetworkManager start  # 重启网络服务
(3)网络图标空心(无法桥接)
  • 解决步骤:
    1. 打开 "虚拟网络编辑器",确认桥接的主机网卡正确;
    2. 在虚拟机右下角右键点击 "网络适配器",选择 "设置",重新指定桥接模式对应的物理网卡;
    3. 断开并重新连接网络。

4. 基础配置(更新源 + 必备工具)

安装完成后,需配置系统以适配嵌入式开发:

(1)更换国内源(加速软件安装)
  • 问题:默认国外源下载速度慢,易超时;
  • 操作:
    1. 打开 "软件和更新",选择 "下载自"→"其他站点";

    2. 选择国内镜像源(如阿里云、清华大学源),点击 "选择服务器";

    3. 执行命令更新源列表: bash

      复制代码
      sudo apt-get update
(2)安装必备工具

bash

运行

复制代码
# 安装网络工具(ifconfig等)
sudo apt install net-tools
# 安装编译工具(gcc、make等)
sudo apt install build-essential
# 安装文本编辑器(vim)
sudo apt install vim
# 安装文件压缩工具
sudo apt install unzip zip

三、Linux 核心:目录结构与路径规则

Linux 的目录结构是 "树状结构",最顶层为根目录(/),所有文件和目录都挂载在根目录下,嵌入式开发必须熟悉关键目录的作用。

1. 核心目录详解(嵌入式开发高频使用)

目录路径 核心作用 嵌入式开发关联
/ 根目录,所有目录的顶层 所有文件和目录的起点
/boot 系统启动文件(Grub 引导器、内核镜像) 嵌入式内核编译后需放入类似目录
/dev 设备文件(如串口/dev/ttyUSB0、硬盘/dev/sda 开发板通过 USB 转串口连接后,在此目录识别设备
/home/用户名 普通用户的主目录 存储嵌入式项目代码、工具链
/bin 系统命令(如lscd 嵌入式交叉编译工具可放入此目录(或/usr/bin
/etc 系统配置文件(网络、用户配置) 配置 SSH、网络参数,方便开发板远程连接
/usr 应用程序目录(/usr/bin存放用户命令,/usr/lib存放库文件) 安装交叉编译工具链、开发软件(如 VSCode)
/mnt 临时挂载目录 挂载 U 盘、开发板的文件系统(如 NFS 挂载)
/var 动态数据目录(日志、临时文件) 查看嵌入式程序运行日志、编译日志

2. 路径规则(嵌入式开发命令行必备)

Linux 路径分为两种,使用场景不同:

(1)绝对路径
  • 定义:以根目录(/)为起点的完整路径,如/home/zcy/project
  • 优势:无论当前在哪个目录,都能准确访问目标文件 / 目录;
  • 适用场景:编写脚本、编译配置文件时(避免路径错误)。
(2)相对路径
  • 定义:以当前目录为起点的路径,如../project(上一级目录的 project 文件夹);
  • 常用符号:
    • .:表示当前目录;
    • ..:表示上一级目录;
    • ~:表示用户主目录(等价于/home/用户名);
  • 优势:路径更简洁,适合日常操作(如切换到当前目录下的子目录)。

四、总结:环境搭建核心要点

  1. 新手优先选择 "虚拟机安装 Ubuntu 20.04",降低入门难度;
  2. 网络配置是关键,确保能正常上网(后续安装工具、开发板通信需依赖);
  3. 熟悉核心目录作用,避免后续开发时找不到文件(如设备文件在/dev,项目代码在/home);
  4. 更换国内源 + 安装必备工具,为后续嵌入式开发(如编译、调试)做好准备。

下一篇博客,我会带大家掌握 Linux 嵌入式开发的高频命令(文件操作、用户管理、权限配置等),以及主函数传参的实战用法,敬请关注!

相关推荐
Coder个人博客2 小时前
Linux6.19-ARM64 mm proc子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构
⑩-2 小时前
JUC-场景题
java·开发语言
optimistic_chen2 小时前
【Redis系列】分布式锁
linux·数据库·redis·分布式·缓存
a程序小傲2 小时前
京东Java面试被问:基于Gossip协议的最终一致性实现和收敛时间
java·开发语言·前端·数据库·python·面试·状态模式
tqs_123452 小时前
Spring Boot 的自动装配机制和 Starter 的实现原理
开发语言·python
xiaoliuliu123452 小时前
openssl-libs-1.1.1f-4.p12.ky10.x86_64.rpm 安装指南 解决依赖与常见报错
linux
重生之绝世牛码2 小时前
Linux软件安装 —— PostgreSQL集群安装(主从复制集群)
大数据·linux·运维·数据库·postgresql·软件安装·postgresql主从集群
程序员小白条2 小时前
面试 Java 基础八股文十问十答第二十二期
java·开发语言·数据库·面试·职场和发展·毕设