搭建Yocto开发环境:宿主机要求、安装必要软件包、下载Poky源码、配置Git与Repo、首次构建最小系统
好,咱们正式开始动手了。搭建开发环境这件事,说难不难,说简单也不简单。我见过太多新手卡在这一步——不是缺包就是版本不对,折腾一整天连个helloworld都跑不起来。今天我就把踩过的坑、总结的经验,一次性给你讲清楚。
宿主机要求:别拿老爷机硬扛
Yocto构建本质上是个「编译大工程」。你想想看,它要下载几百个源码包,交叉编译整个Linux系统。对硬件是有要求的。
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核以上 |
| 内存 | 8GB | 16GB以上 |
| 磁盘 | 50GB空闲 | 200GB SSD |
| 操作系统 | Ubuntu 20.04 | Ubuntu 22.04 / Debian 12 |
安装必要软件包:缺啥补啥
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
安装完后,检查一下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。
配置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开发里尤其适用。
build目录备份一下。下次再搞新项目,直接复制一份,能省掉重新下载源码的时间。我每次换电脑都这么干,省心。
可可精品资料库