环境搭建:Ubuntu下Buildroot依赖安装、Git与Repo工具配置、首次下载Buildroot源码

说实话,环境搭建这一步,看着简单,但坑是真不少。我见过太多人卡在第一步,装了半天依赖,结果编译时蹦出一堆莫名其妙的错误。说白了,就是基础没打牢。

这一章,咱们就把地基夯实。我会把我在项目中踩过的坑、试出来的最佳实践,都摊开来讲。你跟着我的步骤走,基本能一次过。

2.1 Ubuntu下Buildroot依赖安装

Buildroot对宿主机的依赖说多不多,说少不少。关键是要装对版本,装全组件。我习惯用Ubuntu 20.04 LTS或22.04 LTS,这两个版本我验证过很多次,兼容性最好。

2.1.1 核心依赖包清单

先列个清单,你对照着装。别偷懒,缺一个都可能让你后面抓狂。

包名 用途 备注
build-essential 基础编译工具(gcc, g++, make等) 必装
libncurses-dev menuconfig图形界面支持 必装
flex, bison 词法/语法分析器 必装
libssl-dev OpenSSL开发库 必装
libelf-dev ELF文件处理 必装
bc 命令行计算器(内核编译需要) 必装
rsync 文件同步工具 必装
unzip, xz-utils 解压工具 必装
python3, python3-distutils Python脚本支持 推荐安装
git, wget, curl 源码下载工具 必装
注意: 如果你用的是Ubuntu 18.04或更早版本,记得把python3-distutils换成python-distutils。我有个同事就因为版本搞混,折腾了半天。

2.1.2 一键安装命令

别一个个装,太慢了。我直接给你一条命令,复制粘贴就行。

sudo apt update
sudo apt install -y build-essential libncurses-dev flex bison \
    libssl-dev libelf-dev bc rsync unzip xz-utils \
    python3 python3-distutils git wget curl file

嗯,这里要注意。如果你做的是ARM交叉编译,可能还需要装gcc-arm-linux-gnueabihf这类交叉工具链。不过Buildroot自己会下载,你暂时不用管。

2.2 Git与Repo工具配置

Buildroot官方推荐用Git管理源码。但如果你要搞Android或大型项目,Repo工具能帮你管理多个Git仓库。我个人建议,两个都配好,有备无患。

2.2.1 Git全局配置

Git装好后,先配用户名和邮箱。不然提交代码时会报错。

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global color.ui auto

我习惯再加几个别名,用起来顺手:

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
小技巧: 如果你在公司内网,记得配代理。我当年在内网第一次拉Buildroot源码,等了半小时没反应,后来才发现是代理没配。

2.2.2 Repo工具安装

Repo其实是个Python脚本。安装很简单:

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

然后把~/bin加到PATH里。编辑~/.bashrc,加一行:

export PATH=$PATH:~/bin

记得source ~/.bashrc让它生效。

注意: 有些地区访问Google的域名可能不稳定。如果下载失败,可以用国内镜像源。我一般用清华的镜像:export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

2.3 首次下载Buildroot源码

好,环境配好了,咱们开始拉代码。Buildroot的源码托管在GitHub上,地址是:https://github.com/buildroot/buildroot

2.3.1 选择版本分支

Buildroot有稳定版和开发版。我建议新手用稳定版,比如2024.02.x或2024.05.x。开发版虽然新,但可能藏着没修完的bug。

我个人习惯用LTS版本,比如2024.02.x。这个版本维护周期长,社区支持好,遇到问题容易搜到答案。

2.3.2 克隆源码

用Git克隆,速度很快:

git clone https://github.com/buildroot/buildroot.git
cd buildroot
git checkout 2024.02.x

如果你网络不好,可以用国内镜像:

git clone https://gitclone.com/github.com/buildroot/buildroot.git
核心要点: 克隆完成后,记得切到稳定分支。我见过有人直接拉master分支,结果编译时遇到一个刚引入的bug,折腾了两天才定位到。

2.3.3 验证源码完整性

代码拉下来后,先看看目录结构。Buildroot的顶层目录大概长这样:

buildroot/
├── arch/          # 架构相关配置
├── board/         # 板级支持包
├── boot/          # 引导加载程序
├── configs/       # 默认配置文件
├── docs/          # 文档
├── fs/            # 文件系统
├── linux/         # Linux内核
├── package/       # 软件包
├── support/       # 辅助工具
├── toolchain/     # 工具链
├── Makefile       # 主Makefile
└── Config.in      # 顶层配置入口

嗯,看到这个结构,你就知道Buildroot的设计思路了——模块化、清晰。每个目录负责一块,互不干扰。

2.3.4 首次编译测试

为了验证环境是否真的配好了,我建议先做一次最小编译。选一个简单的板子配置,比如qemu_x86_defconfig:

make qemu_x86_defconfig
make

第一次编译会下载很多源码包,时间比较长。你可以去喝杯咖啡,或者看看文档。编译成功后,你会看到output/images/目录下生成了内核镜像、根文件系统等文件。

提示: 如果编译过程中报错,别慌。先看错误信息,八成是缺依赖。回到2.1节,检查一下有没有漏装的包。

2.4 本章知识体系

我把这一章的核心逻辑画了张图,方便你理解整个环境搭建的流程。

环境搭建核心流程 依赖安装 Git & Repo配置 源码下载 选择稳定分支 首次编译测试 关键提醒 • 依赖安装要全,缺一个都可能编译失败 • Git配置要提前做好,避免提交时手忙脚乱 • 首次编译用最小配置,快速验证环境 • 遇到问题先看错误日志,八成是依赖问题

这张图把环境搭建的四个关键步骤串起来了。你按这个顺序走,基本不会出大问题。我曾经带过一个新人,他跳过了依赖检查直接编译,结果卡在ncurses报错上,浪费了半天。所以,别嫌麻烦,一步一个脚印来。

好,环境搭好了,源码也拉下来了。接下来你就可以开始配置Buildroot,构建你的第一个嵌入式系统了。