第1章:环境准备——把工具箱收拾利索
做嵌入式开发,说白了就是跟硬件和底层软件打交道。我见过太多新手一上来就急着敲代码,结果卡在环境配置上半天动弹不得。嗯,咱们先把工具箱收拾利索,后面才能干得顺手。
1.1 安装依赖包(Ubuntu/Debian)
Buildroot 是个好工具,但它对宿主机的依赖不少。我第一次用 Buildroot 时,直接 make 报了一堆错,才发现缺了十几个包。后来我学乖了,先把依赖装齐。
在 Ubuntu 或 Debian 系统上,执行下面这条命令就行:
sudo apt update
sudo apt install -y \
build-essential \
git \
libncurses5-dev \
flex \
bison \
libssl-dev \
bc \
unzip \
wget \
file \
cpio \
rsync \
python3 \
python3-pip \
python3-venv \
cmake \
ninja-build \
pkg-config \
libtool \
autoconf \
automake \
texinfo \
help2man \
gawk \
libelf-dev \
libglib2.0-dev \
libgdk-pixbuf2.0-dev \
libgtk-3-dev \
liblz4-tool \
zstd
apt update,结果装了一堆旧版本,编译时踩了坑。
这些包里,libncurses5-dev 是给 menuconfig 用的,flex 和 bison 是词法语法分析器,libssl-dev 是 HTTPS 下载用的。缺了哪个,编译时都会报错。
1.2 配置 Git 与 Repo
Buildroot 源码托管在 Git 上,所以 Git 是必须的。我个人习惯先配好 Git 的用户名和邮箱:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
Repo 是 Google 出的多仓库管理工具,Buildroot 本身不需要它,但如果你要管理多个 BSP 或内核仓库,Repo 能省不少事。安装 Repo 很简单:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=$PATH:~/bin
~/.bashrc 里加一行:
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
1.3 下载 Buildroot 源码
Buildroot 的官方仓库在 git://git.buildroot.net/buildroot。我个人建议用 Git 克隆,而不是下载压缩包。为什么呢?因为 Git 克隆能让你随时切换版本、查看历史、打补丁。
git clone git://git.buildroot.net/buildroot
cd buildroot
如果你网速慢,可以用国内镜像:
git clone https://gitlab.com/buildroot.org/buildroot.git
克隆完成后,你可以看看有哪些稳定版本:
git tag | grep -E '^20[0-9]{2}\.[0-9]{2}$' | sort -V
我个人习惯用最新的 LTS 版本,比如 2024.02.x 系列。切换到指定版本:
git checkout 2024.02.1
1.4 初次体验 make menuconfig
好,现在源码有了,依赖也装齐了。我们来体验一下 Buildroot 的配置界面。
make menuconfig
如果一切正常,你会看到一个蓝底白字的菜单界面。这就是 Buildroot 的核心配置工具,基于 ncurses 库。
第一次打开时,你可能会有点懵——选项太多了。别急,我们先看看几个关键区域:
- Target options:目标架构,比如 ARM、x86、RISC-V
- Build options:编译选项,比如是否用 ccache、并行编译数
- Toolchain:工具链配置,可以用内置的,也可以用外部的
- System configuration:系统配置,比如主机名、root 密码
- Kernel:内核版本和配置
- Target packages:你要装哪些软件包
操作方式很简单:
- 上下箭头:移动光标
- 回车:进入子菜单
- 空格或 Y:选中/取消
- ESC ESC:返回上级菜单
- 左右箭头:选择底部的按钮(Save、Load、Exit)
配置完成后,按 Exit 退出,系统会问你是否保存。选 Yes,配置会写入 .config 文件。
你可以用 cat .config | head -20 看看里面长什么样。说白了,这就是一个键值对文件,Buildroot 根据它来决定编译什么、怎么编译。
知识体系一览
下面这张图帮你理清本章的核心逻辑:
这张图把本章的四个步骤串起来了。说白了,环境准备就是一条流水线:先装好系统工具,再配好版本管理,然后拉下源码,最后用 menuconfig 生成配置文件。每一步都是下一步的前提,缺一不可。