搭建Yocto开发环境:宿主机要求、安装必要软件包、配置Git和Repo

好,咱们正式开始动手。搭建开发环境这件事,说难不难,说简单也不简单。我见过太多人卡在这一步——不是缺包就是版本不对,折腾半天连个bitbake都跑不起来。所以这一节,咱们把环境搭得稳稳当当的。

宿主机要求:别拿玩具当工具

Yocto是个吃资源的家伙。我刚开始用的时候,拿一台4GB内存的笔记本跑,结果编译到一半直接OOM(内存溢出),系统卡死。后来换了台16GB的机器,才算舒坦。

说白了,宿主机就是你的工作台。台子不稳,活干不好。

硬件最低要求:

  • CPU:4核以上,建议8核
  • 内存:8GB起步,16GB更稳
  • 磁盘:至少100GB空闲空间(SSD优先)
  • 网络:稳定的宽带连接(第一次下载量很大)

你想想看,一个完整的Yocto构建,光是下载源码包就得好几个G。编译过程中还会产生大量中间文件。我有个项目,最终镜像才200MB,但构建目录占了40GB。嗯,磁盘空间一定要留足。

操作系统选择

Yocto官方推荐Ubuntu LTS版本。我个人习惯用Ubuntu 22.04 LTS,踩坑少,社区支持好。当然,Debian、Fedora、CentOS也能用,但你要做好自己解决依赖问题的准备。

操作系统 推荐版本 我的评价
Ubuntu 22.04 LTS / 24.04 LTS 最省心,社区资料最多
Debian 12 (Bookworm) 稳定,但包版本偏旧
Fedora 40+ 包新,但偶尔有兼容问题
CentOS/RHEL 9+ 企业级,但配置稍麻烦

注意:千万别用Windows直接跑Yocto。虽然WSL2能凑合,但我试过几次,文件系统性能差、路径问题多。老老实实用Linux物理机或虚拟机吧。

安装必要软件包:一个都不能少

Yocto对宿主机软件包有明确要求。缺一个包,编译到一半就报错,那才叫崩溃。我曾经因为少了chrpath这个包,排查了整整一下午。

在Ubuntu 22.04上,执行以下命令安装所有必需包:

sudo apt update
sudo apt install -y \
    gawk wget git diffstat unzip texinfo \
    gcc build-essential chrpath socat cpio \
    python3 python3-pip python3-pexpect \
    xz-utils debianutils iputils-ping \
    python3-git python3-jinja2 python3-subunit \
    zstd liblz4-tool file locales libacl1-dev \
    libssl-dev libncurses-dev libgmp-dev \
    libmpfr-dev libmpc-dev flex bison \
    libelf-dev

这里我多说一句:python3-pexpect这个包很容易被忽略。没有它,一些自动化测试脚本就跑不起来。还有zstd和liblz4-tool,这是Yocto新版本用来压缩sstate缓存用的,能大幅提升二次构建速度。

小技巧:装完包后,运行oe-check-sstate(在poky目录下)可以验证环境是否完整。不过这个工具需要先下载poky,咱们后面会讲。

配置Git:你的版本控制管家

Yocto的整个构建系统都依赖Git来管理代码。配置好Git,能省去很多麻烦。

先设置你的身份信息:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

我个人习惯再加几个配置:

git config --global core.editor vim
git config --global color.ui auto
git config --global pull.rebase true

pull.rebase true这个配置,能让你拉取代码时自动变基,避免产生多余的合并提交。我在团队协作时吃过这个亏——一堆合并提交把历史搞得乱七八糟,后来强制大家用rebase,清爽多了。

配置Repo:管理多仓库的瑞士军刀

Yocto项目由几十个Git仓库组成。手动一个个克隆?不现实。Google开发的repo工具就是干这个的。

安装repo:

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

然后把~/bin加到PATH里:

echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc

注意:repo脚本会定期更新。如果遇到repo sync报错,先检查repo版本:repo --version。我遇到过因为repo版本太旧,导致manifest解析失败的情况。

验证环境:跑个简单的测试

环境搭好了,咱们验证一下。先创建一个工作目录:

mkdir ~/yocto-test
cd ~/yocto-test

初始化poky仓库(Yocto的参考发行版):

repo init -u https://git.yoctoproject.org/poky -b kirkstone
repo sync

这个过程会下载几十个仓库,大概需要几分钟到半小时,取决于你的网速。我第一次同步时,等得都快睡着了。

同步完成后,试试能不能运行bitbake:

source oe-init-build-env
bitbake --version

如果看到类似BitBake Build Tool Core version 2.0.x的输出,恭喜你,环境搭好了!

核心要点回顾:

  • 宿主机至少8GB内存、100GB磁盘
  • Ubuntu 22.04 LTS是最省心的选择
  • 安装所有必需包,一个都不能少
  • Git配置好用户信息和rebase策略
  • Repo工具用于管理多仓库项目

嗯,环境搭好了,咱们就可以开始真正玩Yocto了。下一节,我会带你创建一个最简单的配方,让你感受一下Yocto的构建流程。别急,一步一步来。

Yocto开发环境搭建流程 宿主机要求 CPU 4核+ / 内存 8GB+ / 磁盘 100GB+ 操作系统选择 推荐 Ubuntu 22.04 LTS 安装必要软件包 gawk / chrpath / python3 / zstd 等 配置Git和Repo Git身份 / Repo安装 / PATH设置 验证环境 repo sync → source oe-init-build-env → bitbake --version 硬件基础 系统平台 工具链 版本控制 最终验证

我的经验:第一次搭建环境时,别急着跑大型项目。先拿poky自带的core-image-minimal练手,编译成功后再逐步加料。这样出了问题,排查范围小得多。

可可精品资料库