快速上手:使用默认配置编译第一个镜像
说实话,很多初学者拿到 Buildroot 后,第一反应就是「我该从哪里开始?」。我个人习惯是,先别管那些复杂的配置项,直接拿一个现成的默认配置跑一遍。你想想看,先看到成果,才有继续折腾的动力嘛。
这一节,我们就用 QEMU 的 x86_64 默认配置,走一遍完整的编译流程。整个过程大概 10-15 分钟(取决于你的网络和机器性能),最后你会看到一个跑在虚拟机里的 Linux 系统。
准备工作:确认环境
在开始之前,先确认你的机器上已经装好了必要的工具。我在项目中遇到过好几次,编译到一半报错,结果发现是缺少某个基础包,很影响心情。
你需要确保以下工具已安装:
- Git:用来拉取 Buildroot 源码
- make、gcc、g++:编译工具链
- flex、bison:词法/语法分析器
- libncurses-dev:用于菜单配置界面
- qemu-system-x86_64:用于最终验证
sudo apt install git make gcc g++ flex bison libncurses-dev qemu-system-x86
第一步:获取 Buildroot 源码
我个人习惯把源码放在 ~/workspace/buildroot 目录下。当然,你可以按自己的喜好来。
cd ~/workspace
git clone https://git.buildroot.net/buildroot
cd buildroot
拉下来之后,你可以看看当前是什么版本:
git tag | tail -5
嗯,这里要注意,不同版本的默认配置可能会有细微差异。我建议用最新的稳定版 tag,比如 2024.02 之类的。
第二步:选择默认配置
Buildroot 自带了一大堆现成的默认配置,放在 configs/ 目录下。我们这次用的是针对 QEMU x86_64 虚拟机的配置:
make qemu_x86_64_defconfig
执行完这条命令后,Buildroot 会在当前目录生成一个 .config 文件。说白了,这就是你整个系统的「配方」——选哪些软件包、用什么内核版本、文件系统怎么布局,全写在这里面。
第三步:开始编译
接下来就是见证奇迹的时刻:
make
等等,别急着跑。第一次编译会下载很多源码包,包括 Linux 内核、Busybox、glibc 等等。如果你网络不太好,可能会等很久。我曾经在客户现场演示时,网络突然断了,编译到一半卡住,场面一度非常尴尬……
所以,我建议你:
- 确保网络稳定
- 如果之前已经下载过源码包,可以复制到
dl/目录下复用 - 可以用
make -j$(nproc)来加速编译(利用多核 CPU)
make -j4 # 假设你有4个CPU核心
编译过程中,你会看到屏幕上刷刷地滚过各种信息。别慌,这是正常的。如果出现红色报错,那才需要停下来看看。
第四步:编译产物在哪里?
编译完成后,所有输出文件都在 output/images/ 目录下。我们来看看都有什么:
ls -lh output/images/
你会看到类似这样的文件列表:
| 文件名 | 说明 |
|---|---|
bzImage |
Linux 内核镜像 |
rootfs.ext2 |
根文件系统(ext2 格式) |
rootfs.cpio |
根文件系统(cpio 格式,用于 initramfs) |
start-qemu.sh |
自动生成的 QEMU 启动脚本 |
start-qemu.sh 脚本是 Buildroot 自动生成的,里面已经配好了 QEMU 的参数。直接用就行,省得自己敲一长串命令。
第五步:启动 QEMU 验证
最激动人心的时刻到了。直接用 Buildroot 生成的脚本启动:
cd output/images/
./start-qemu.sh
你会看到一个 QEMU 窗口弹出来,或者如果是在终端里运行,会看到串口输出。系统启动后,会提示你登录:
buildroot login: root
Password: (直接回车,默认无密码)
登录成功后,你就进入了这个用 Buildroot 构建的迷你 Linux 系统。可以试试几条命令:
uname -a
free -h
df -h
ls /
看到没?一个完整的 Linux 系统,从内核到根文件系统,全是我们自己编译出来的。说实话,我第一次成功启动时,还挺有成就感的。
sudo,或者把你的用户加入 kvm 用户组。
核心流程总结
为了让你对整个流程有个直观的认识,我画了一张图:
这张图把整个流程串起来了:从源码获取,到配置选择,再到编译生成镜像,最后用 QEMU 启动验证。说白了,就是这五步。
你可能遇到的坑
我在项目中遇到过不少新手踩坑的情况,这里列几个最常见的:
- 编译报错「No rule to make target」:通常是
.config文件没生成,或者你手改过配置导致依赖缺失。重新执行make qemu_x86_64_defconfig再编译。 - 下载源码包超时:Buildroot 默认从官方源下载,国内网络可能比较慢。可以配置
BR2_PRIMARY_SITE指向国内镜像。 - QEMU 启动后黑屏:检查一下是不是没有安装图形界面,或者
start-qemu.sh里用了-nographic参数。如果是纯终端环境,用-nographic反而更合适。
好了,现在你已经成功编译并启动了第一个 Buildroot 系统镜像。接下来,你可以试着改改配置,加一些自己的软件包进去,看看系统会有什么变化。动手试试看,比光看文档强多了。
公众号:蓝海资料掘金营,微信deep3321