第2章:开发环境准备——Linux主机环境要求
做嵌入式开发,第一件事就是把开发环境搭好。我见过太多人一上来就急着编译内核,结果卡在依赖问题上折腾半天。说白了,环境准备就像盖楼打地基,地基不稳后面全是坑。
这一章我们重点搞定三件事:Linux主机环境、必要依赖包、Git与Repo工具。跟着我的节奏来,半小时内让你的机器变成一台合格的Buildroot编译工作站。
2.1 为什么推荐Ubuntu/Debian?
我个人习惯用Ubuntu LTS版本做开发机。原因很简单:社区活跃、包管理成熟、遇到问题搜一下就有答案。你想想看,做交叉编译最怕什么?最怕某个库版本不对,编译到一半报错。Ubuntu的apt源里几乎涵盖了Buildroot需要的所有依赖,一条命令就能装齐。
我推荐以下版本:
- Ubuntu 20.04 LTS(最稳,我项目主力机)
- Ubuntu 22.04 LTS(新特性多,兼容性也不错)
- Debian 11/12(如果你追求极致稳定)
注意: 不建议用CentOS或Fedora做Buildroot主开发机。我在项目中踩过这个坑——CentOS的ncurses版本太老,menuconfig界面显示乱码,折腾了两天才找到原因。如果你非要用RHEL系,请确保所有依赖包手动编译安装。
2.2 安装必要依赖包
Buildroot对主机环境的要求其实不高,但有几个包是必须的。我整理了一张表,你照着装就行:
| 包名 | 用途 | 是否必须 |
|---|---|---|
git |
版本管理,拉取Buildroot源码 | ✅ 必须 |
gcc |
主机C编译器,用于编译Buildroot工具链 | ✅ 必须 |
g++ |
主机C++编译器 | ✅ 必须 |
make |
构建系统核心工具 | ✅ 必须 |
libncurses-dev |
提供menuconfig图形化配置界面 | ✅ 必须 |
flex |
词法分析器,部分包需要 | ✅ 必须 |
bison |
语法分析器,与flex配合使用 | ✅ 必须 |
openssl-dev |
SSL/TLS支持,下载https资源时用 | ✅ 必须 |
rsync |
文件同步,Buildroot内部使用 | ✅ 必须 |
unzip |
解压源码包 | ✅ 必须 |
python3 |
部分辅助脚本依赖 | ✅ 必须 |
file |
文件类型检测 | ✅ 必须 |
cpio |
制作initramfs镜像 | ✅ 必须 |
一条命令全装完:
sudo apt update
sudo apt install -y git gcc g++ make libncurses-dev \
flex bison libssl-dev rsync unzip python3 file cpio
我的经验: 装完记得跑一下
gcc --version 和 make --version 确认版本。我遇到过apt安装成功但gcc没加到PATH的情况,重启终端就好了。
2.3 配置Git与Repo工具
Git是嵌入式开发的标配,Repo则是Google为Android开发的多仓库管理工具。Buildroot虽然不需要Repo,但如果你后续要管理多个BSP仓库,Repo能省不少事。
2.3.1 Git基础配置
装完Git第一件事就是配用户名和邮箱——不然commit会报错:
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 core.editor vim
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
这些配置能让你的Git操作效率翻倍。尤其是别名,我每天用几十次。
2.3.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里:
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
验证一下:
repo --version
我曾经踩过的坑: 第一次装Repo时直接用了
sudo apt install repo,结果版本太旧,同步代码时各种报错。后来发现Google官方脚本才是最新的。记住:Repo一定要从官方渠道下载。
2.4 环境验证清单
装完别急着走,跑一遍验证脚本,确保所有工具就位:
#!/bin/bash
echo "=== 环境验证 ==="
echo "Git: $(git --version 2>/dev/null || echo '未安装')"
echo "GCC: $(gcc --version 2>/dev/null | head -1 || echo '未安装')"
echo "Make: $(make --version 2>/dev/null | head -1 || echo '未安装')"
echo "Python3: $(python3 --version 2>/dev/null || echo '未安装')"
echo "Repo: $(repo --version 2>/dev/null | head -1 || echo '未安装')"
echo "ncurses: $(dpkg -l libncurses-dev 2>/dev/null | tail -1 | awk '{print $2}')"
如果所有工具都显示版本号,恭喜你,环境准备完成。
2.5 本章知识结构图
下面这张图帮你理清开发环境的核心组件和关系:
2.6 常见问题与避坑
- 问题1:menuconfig界面花屏
多半是ncurses没装全。检查libncurses-dev和libncursesw5-dev是否都装了。 - 问题2:git clone速度慢
我一般用国内镜像源,比如git clone https://mirrors.ustc.edu.cn/buildroot.git,速度能快10倍。 - 问题3:Repo报错"fatal: unable to access"
检查网络代理。如果你在公司内网,记得配git config --global http.proxy。
一句话总结: 环境准备就三件事——装系统、装依赖、配Git。每一步都验证一下,别偷懒。我当年第一次搭环境时跳过了验证步骤,结果编译到一半发现gcc版本不对,白白浪费了3个小时。