快速上手:使用默认配置编译第一个镜像

说实话,很多初学者拿到 Buildroot 后,第一反应就是「我该从哪里开始?」。我个人习惯是,先别管那些复杂的配置项,直接拿一个现成的默认配置跑一遍。你想想看,先看到成果,才有继续折腾的动力嘛。

这一节,我们就用 QEMU 的 x86_64 默认配置,走一遍完整的编译流程。整个过程大概 10-15 分钟(取决于你的网络和机器性能),最后你会看到一个跑在虚拟机里的 Linux 系统。

准备工作:确认环境

在开始之前,先确认你的机器上已经装好了必要的工具。我在项目中遇到过好几次,编译到一半报错,结果发现是缺少某个基础包,很影响心情。

你需要确保以下工具已安装:

  • Git:用来拉取 Buildroot 源码
  • makegccg++:编译工具链
  • flexbison:词法/语法分析器
  • libncurses-dev:用于菜单配置界面
  • qemu-system-x86_64:用于最终验证
小提示:如果你用的是 Ubuntu/Debian,可以直接用这条命令一键安装:
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 文件。说白了,这就是你整个系统的「配方」——选哪些软件包、用什么内核版本、文件系统怎么布局,全写在这里面。

核心概念:defconfig 就是「默认配置」的缩写。它是一组预定义好的选项,让你不用从头一个个去选。对于初学者来说,这是最友好的入门方式。

第三步:开始编译

接下来就是见证奇迹的时刻:

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 系统,从内核到根文件系统,全是我们自己编译出来的。说实话,我第一次成功启动时,还挺有成就感的。

注意:如果你在启动时遇到「KVM: permission denied」之类的错误,说明你的用户没有权限使用 KVM 虚拟化。可以试试加上 sudo,或者把你的用户加入 kvm 用户组。

核心流程总结

为了让你对整个流程有个直观的认识,我画了一张图:

1. 获取源码 git clone 2. 选择配置 make qemu_x86_64_defconfig 3. 编译 make -j4 4. 生成镜像 output/images/ bzImage + rootfs.ext2 5. QEMU 启动 ./start-qemu.sh 登录 root 验证 ✅ 系统运行成功 Buildroot 构建完成

这张图把整个流程串起来了:从源码获取,到配置选择,再到编译生成镜像,最后用 QEMU 启动验证。说白了,就是这五步。

你可能遇到的坑

我在项目中遇到过不少新手踩坑的情况,这里列几个最常见的:

  • 编译报错「No rule to make target」:通常是 .config 文件没生成,或者你手改过配置导致依赖缺失。重新执行 make qemu_x86_64_defconfig 再编译。
  • 下载源码包超时:Buildroot 默认从官方源下载,国内网络可能比较慢。可以配置 BR2_PRIMARY_SITE 指向国内镜像。
  • QEMU 启动后黑屏:检查一下是不是没有安装图形界面,或者 start-qemu.sh 里用了 -nographic 参数。如果是纯终端环境,用 -nographic 反而更合适。
一句话总结:用默认配置编译 Buildroot,就是「下载 → 配置 → 编译 → 启动」四步走。第一次跑通后,你就算正式入门了。

好了,现在你已经成功编译并启动了第一个 Buildroot 系统镜像。接下来,你可以试着改改配置,加一些自己的软件包进去,看看系统会有什么变化。动手试试看,比光看文档强多了。


公众号:蓝海资料掘金营,微信deep3321