2. 开发环境准备:Ubuntu系统安装与配置、必要软件包安装、工作目录规划

做嵌入式Linux开发,第一步就是把开发环境搭好。这步要是没弄好,后面全是坑。我个人习惯在Ubuntu上做Buildroot开发,原因很简单——社区支持最好,遇到问题搜一下就有答案。

2.1 为什么选Ubuntu?

你可能要问:用CentOS行不行?用Debian行不行?当然行。但我建议你直接用Ubuntu 20.04 LTS或22.04 LTS。为什么?

  • Buildroot官方测试最多的就是Ubuntu
  • 软件包版本够新,不会出现依赖冲突
  • 社区资源丰富,遇到编译错误好排查
我的经验: 之前有个项目,团队里有人用CentOS 7,结果编译Buildroot时频繁报错,折腾了两天才发现是gcc版本太旧。换成Ubuntu后,半小时就搞定了。

2.2 Ubuntu系统安装要点

安装过程我就不细说了,网上教程一大堆。我只说几个关键点:

  1. 磁盘分区: 建议给根目录至少50GB空间。Buildroot编译时会下载大量源码包,加上编译产物,轻松吃掉20GB。
  2. 内存: 至少4GB,8GB以上更佳。编译大型项目时,内存不够会直接卡死。
  3. 网络: 确保能稳定访问外网。Buildroot会从GitHub、SourceForge等地方拉取源码。
注意: 如果你用虚拟机,记得给CPU分配至少2个核心。单核编译Buildroot,那速度...嗯,你会怀疑人生的。

2.3 必要软件包安装

系统装好后,第一件事就是装软件包。Buildroot对宿主机的依赖不多,但有几个是必须的。

打开终端,执行:

sudo apt update
sudo apt install -y git gcc make g++ \
    libncurses5-dev libssl-dev \
    flex bison bc \
    cpio unzip rsync \
    file wget curl

这些包是干什么的?我简单说一下:

软件包 用途
git 拉取Buildroot源码,管理自己的配置
gcc, g++, make 编译工具链,没有它们寸步难行
libncurses5-dev 提供menuconfig的图形界面
flex, bison 词法分析和语法分析工具
bc 计算器,内核编译时会用到
cpio, rsync 打包和同步文件
避坑指南: 我曾经漏装了libncurses5-dev,结果执行make menuconfig时直接报错。当时还以为是系统问题,折腾了半天才发现是少了个包。所以,建议你把上面这行命令完整执行一遍。

2.4 工作目录规划

我个人习惯把项目文件整理得清清楚楚。你想想看,如果所有文件都堆在桌面上,找起来多费劲。

推荐目录结构如下:

~/buildroot-project/
├── buildroot/          # Buildroot源码
├── dl/                 # 下载的源码包缓存
├── output/             # 编译输出目录
│   ├── images/         # 生成的镜像文件
│   └── build/          # 编译中间文件
├── configs/            # 自定义配置文件
└── scripts/            # 辅助脚本

创建目录的命令:

mkdir -p ~/buildroot-project/{buildroot,dl,output/{images,build},configs,scripts}

为什么要这样规划?

  • dl目录: 缓存下载的源码包。下次重新编译时,不用再下载一遍,省时间。
  • output目录: 编译产物单独存放,不会污染源码目录。
  • configs目录: 保存你自定义的配置文件,方便版本管理。
小技巧: 我会把dl目录软链接到一个单独的硬盘分区上。这样即使系统重装,源码包缓存还在,不用重新下载。特别是网络不好的时候,这个操作能救你一命。

2.5 验证环境是否就绪

装完包、建好目录后,最好验证一下:

# 检查git版本
git --version

# 检查gcc版本
gcc --version

# 检查make版本
make --version

# 检查目录结构
tree ~/buildroot-project -L 2

如果所有命令都能正常输出版本号,目录结构也正确,那环境就准备好了。

核心要点: 开发环境搭建看似简单,但细节决定成败。我见过太多人因为漏装一个包、目录结构混乱,导致后面编译失败。花10分钟把环境搭好,后面能省10小时。
开发环境准备核心流程 Ubuntu系统安装 磁盘50GB+ / 内存4GB+ 必要软件包安装 git / gcc / make / flex等 工作目录规划 buildroot/dl/output等 系统安装要点 • 推荐Ubuntu 20.04/22.04 LTS • 根目录至少50GB • 内存不低于4GB • CPU至少2核心 • 稳定网络连接 • 虚拟机需合理分配资源 软件包清单 • git - 版本管理 • gcc/g++ - 编译工具 • make - 构建系统 • libncurses5-dev - 配置界面 • flex/bison - 语法分析 • cpio/rsync - 打包同步 目录结构 • buildroot/ - 源码 • dl/ - 源码包缓存 • output/ - 编译输出 • configs/ - 配置文件 • scripts/ - 辅助脚本 • 建议dl目录单独分区 ✅ 验证环境:git/gcc/make版本检查 + 目录结构确认

好了,环境准备就到这里。记住一句话:磨刀不误砍柴工。把基础打牢,后面的学习才会顺畅。


专注资料整理