2. 搭建Yocto开发环境

好,咱们正式开始动手了。

搭建开发环境这件事,说难不难,说简单也不简单。我见过不少新手,一上来就急着编译,结果卡在某个依赖包上折腾半天。其实你想想看,环境搭好了,后面的事情就顺了。这一节,我就带你一步步把Yocto的“地基”打牢。

宿主机要求:别让你的机器拖后腿

Yocto编译起来,说白了就是个“吃资源”的活。我最早用一台4GB内存的笔记本试过,编译到一半直接卡死,那叫一个崩溃。所以,硬件上咱们得有点底线。

项目 最低要求 推荐配置
CPU 双核 x86_64 4核以上,支持虚拟化
内存 4GB 8GB或16GB
磁盘 50GB空闲 100GB以上SSD
操作系统 Ubuntu 20.04 LTS Ubuntu 22.04 LTS
注意: 千万别用Windows的WSL1来搞Yocto,文件系统性能太差。我试过,编译速度慢得让人怀疑人生。WSL2勉强能用,但原生Linux还是最稳的。

操作系统这块,我个人习惯用Ubuntu。CentOS也行,但包管理工具不一样,你得自己折腾。如果你用Debian或Fedora,原理一样,就是命令稍微改改。

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

Yocto编译过程中会调用大量工具链。缺一个包,编译就报错。我曾经因为少装了一个chrpath,排查了整整一下午。嗯,这里要注意,咱们一次性装齐。

打开终端,执行以下命令:

sudo apt-get update
sudo apt-get 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 \
    libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit \
    mesa-common-dev zstd liblz4-tool
小技巧: 如果你用的是Ubuntu 22.04,记得额外装一个python3-venv。Yocto的某些脚本依赖它,不装的话会报“No module named venv”的错误。

装完之后,验证一下关键工具:

gcc --version
python3 --version
git --version

确保gcc版本在8.0以上,Python 3.8以上。如果版本太低,Yocto的某些配方会罢工。

下载Poky源码:Yocto的“内核”

Poky是什么?说白了,它就是Yocto项目的参考发行版。里面包含了BitBake构建系统、元数据层、以及一堆基础配方。咱们的课程,就是基于Poky来展开的。

我建议你创建一个专用目录,别把源码散得到处都是:

mkdir -p ~/yocto
cd ~/yocto

然后克隆Poky仓库。这里我推荐用git clone,而不是下载压缩包。为什么?因为后续你要切换分支、打补丁,git管理起来方便得多。

git clone git://git.yoctoproject.org/poky
cd poky

克隆完成后,咱们切换到最新的稳定分支。以Yocto 4.0(Kirkstone)为例:

git checkout -t origin/kirkstone
核心知识点: Poky的版本号对应Yocto的发行版。比如kirkstone是4.0,honister是3.4。我建议新手从长期支持版(LTS)开始,比如kirkstone,社区维护时间长,坑也少。

下载完成后,看看目录结构:

ls -l
# 你会看到 bitbake/ meta/ meta-poky/ meta-skeleton/ oe-init-build-env 等

其中oe-init-build-env是环境初始化脚本,后面咱们会频繁用到它。

配置Git与Repo:管理多仓库的利器

Yocto项目往往不止一个仓库。除了Poky,你可能还需要meta-openembedded、meta-raspberrypi等第三方层。这时候,repo工具就派上用场了。

先配置Git,这是基础:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global color.ui auto

然后安装Repo工具。Repo是Google开发的一个Python脚本,专门用来管理多个Git仓库:

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=$PATH:~/bin
避坑指南: 我曾经在某个内网环境里,curl下载repo总是超时。后来发现是网络代理没配。如果你在公司内网,记得先设置http_proxy和https_proxy环境变量。

验证Repo是否安装成功:

repo --version

如果输出版本号,就说明搞定了。Repo的用法很简单,后面咱们讲到多仓库管理时,我会详细演示。

本章知识体系一览

为了让你更直观地理解整个环境搭建的脉络,我画了一张流程图:

Yocto开发环境搭建流程 宿主机检查 CPU/内存/磁盘/OS 安装软件包 apt-get install 下载Poky源码 git clone 配置Git user.name/email 安装Repo工具 curl + chmod 环境验证 gcc/python3/git 完成以上步骤,你的Yocto开发环境就搭建好了 接下来就可以开始创建第一个配方了

这张图把咱们这一节的核心步骤串起来了。你照着这个流程走,基本不会出大问题。

最后说两句

环境搭建这件事,一次配好,后面省心。我见过太多人因为环境问题浪费大量时间。所以,别急,一步步来。装完包之后,最好重启一下终端,确保环境变量生效。

嗯,这一节的内容就到这里。你的机器现在应该已经具备了Yocto开发的基本条件。下一节,咱们就要真正开始写配方了,想想还有点小激动呢。

核心要点回顾:
  • 宿主机推荐8GB内存+100GB SSD+Ubuntu 22.04
  • 一次性装齐所有依赖包,避免编译中断
  • Poky源码用git clone,方便后续分支管理
  • Repo工具用于管理多仓库,安装后记得验证

可可精品资料库