环境搭建: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 | 源码下载工具 | 必装 |
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
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让它生效。
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
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.4 本章知识体系
我把这一章的核心逻辑画了张图,方便你理解整个环境搭建的流程。
这张图把环境搭建的四个关键步骤串起来了。你按这个顺序走,基本不会出大问题。我曾经带过一个新人,他跳过了依赖检查直接编译,结果卡在ncurses报错上,浪费了半天。所以,别嫌麻烦,一步一个脚印来。
好,环境搭好了,源码也拉下来了。接下来你就可以开始配置Buildroot,构建你的第一个嵌入式系统了。