搭建Yocto开发环境:宿主机要求、安装必要软件包、下载Poky源码、配置Git与Repo、首次构建最小系统

好,咱们正式开始动手了。搭建开发环境这件事,说难不难,说简单也不简单。我见过太多新手卡在这一步——不是缺包就是版本不对,折腾一整天连个helloworld都跑不起来。今天我就把踩过的坑、总结的经验,一次性给你讲清楚。

宿主机要求:别拿老爷机硬扛

Yocto构建本质上是个「编译大工程」。你想想看,它要下载几百个源码包,交叉编译整个Linux系统。对硬件是有要求的。

项目 最低要求 推荐配置
CPU 4核 8核以上
内存 8GB 16GB以上
磁盘 50GB空闲 200GB SSD
操作系统 Ubuntu 20.04 Ubuntu 22.04 / Debian 12
⚠️ 注意: 千万别用Windows的WSL1来搞Yocto,文件系统性能太差。WSL2勉强能用,但我个人还是推荐原生Linux。我曾经在虚拟机里跑过一次构建,等了整整6个小时……从那以后我再也不在虚拟机上搞了。

安装必要软件包:缺啥补啥

Yocto对宿主机软件包有明确要求。说白了,就是一堆编译工具链和库。Ubuntu/Debian系统下,一行命令搞定:

sudo apt-get update
sudo apt-get install 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 libegl1-mesa libsdl1.2-dev \
  xterm python3-subunit mesa-common-dev zstd liblz4-tool file locales libacl1
💡 小技巧: 我习惯把这串命令保存成一个脚本,每次新装系统直接跑一遍。省得漏包。漏包的后果是什么?构建到一半报错,然后你开始疯狂Google……嗯,我经历过。

安装完后,检查一下Python版本:

python3 --version

Yocto最新版本要求Python 3.8以上。如果你系统自带的版本太低,建议升级或者用pyenv管理。

下载Poky源码:Yocto的核心骨架

Poky是什么?你可以把它理解成Yocto的参考实现。里面包含了BitBake构建引擎、OpenEmbedded核心元数据,还有一堆配方文件。

下载方式很简单,用Git克隆:

git clone git://git.yoctoproject.org/poky
cd poky
git checkout -b my-scarthgap origin/scarthgap

这里我选了Scarthgap分支,这是Yocto的长期支持版本。为什么选LTS?因为稳定。我在项目里吃过非LTS版本的亏——升级频繁,配方兼容性说变就变。从那以后,生产环境我只用LTS。

📌 核心知识点: Poky ≈ Yocto参考系统 + BitBake + OE-Core。你后面所有定制工作,都是在这个基础上展开的。

配置Git与Repo:别小看这一步

Git配置其实很简单,但很多人忽略。Yocto的提交记录会用到你的用户名和邮箱:

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

至于Repo工具,它是Google开发的Git仓库管理工具。Yocto项目有时会用Repo来管理多个Git仓库。安装方法:

sudo apt-get install repo

或者手动安装最新版:

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

记得把~/.local/bin加到PATH里。我个人习惯把它写到.bashrc里:

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

首次构建最小系统:见证奇迹的时刻

环境搭好了,咱们来构建一个最小系统。这个系统叫core-image-minimal,说白了就是一个能启动的Linux内核+根文件系统,没有图形界面,没有多余软件包。

进入Poky目录,先设置构建环境:

cd poky
source oe-init-build-env build

这个脚本会创建一个build目录,并自动切换到该目录。同时设置好BitBake需要的环境变量。

然后修改conf/local.conf文件,调整并行编译数:

BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"

这两个值建议设为你CPU核心数的1.5倍左右。别设太大,否则系统会卡死。我试过设成32,结果电脑直接死机……嗯,血的教训。

最后,开始构建:

bitbake core-image-minimal

第一次构建会下载大量源码包,耗时较长。根据网络和机器性能,通常需要30分钟到2小时。你可以去喝杯咖啡,或者看看文档。

⚠️ 注意: 构建过程中不要中断。如果网络断了,可以用bitbake -c fetchall core-image-minimal先下载所有源码,再开始构建。这样即使断网,本地缓存也能保证构建继续。

构建成功后,输出文件在build/tmp/deploy/images/qemux86-64/目录下。你可以用QEMU模拟器启动它:

runqemu qemux86-64

看到登录提示符的那一刻,恭喜你——Yocto开发环境搭建成功!

🎯 本章核心: 环境搭建是Yocto开发的基础。宿主机配置、软件包安装、Poky源码下载、Git配置、首次构建,每一步都别跳过。我见过太多人图省事跳过某一步,结果后面花更多时间排查问题。
Yocto开发环境搭建流程 宿主机要求 CPU/内存/磁盘/OS 安装必要软件包 apt-get安装工具链 下载Poky源码 git clone + 切换分支 配置Git与Repo 用户信息 + 工具安装 首次构建最小系统 bitbake core-image-minimal 验证与测试 runqemu启动模拟器 关键提醒 • 宿主机推荐Ubuntu 22.04 LTS,磁盘至少200GB SSD • 软件包安装务必完整,漏包会导致构建中断 • 首次构建耗时较长,建议使用bitbake -c fetchall预下载源码 • 构建成功后用runqemu验证,确保环境可用

好了,环境搭好了,后面咱们就可以开始真正定制系统了。记住,这一步虽然繁琐,但值得你花时间做好。基础不牢,地动山摇——这话在Yocto开发里尤其适用。

📝 我的建议: 把构建成功的build目录备份一下。下次再搞新项目,直接复制一份,能省掉重新下载源码的时间。我每次换电脑都这么干,省心。

可可精品资料库