第二章:环境搭建——在Ubuntu 22.04上搭建Yocto开发环境
好,咱们正式开始动手了。这一章的目标很明确:在你的电脑上把Yocto环境跑起来。我见过太多新手卡在这一步,不是缺包就是版本不对,折腾半天连个bitbake都跑不起来。别急,跟着我的步骤来,半小时内搞定。
2.1 为什么选Ubuntu 22.04?
Yocto官方支持的Linux发行版里,Ubuntu一直是最省心的选择。22.04 LTS是长期支持版,到2027年才停止维护。我个人习惯用LTS版本,稳定,不会突然来个包不兼容。
你可能会问:「我用20.04行不行?」行,但有些依赖包的版本可能偏老,你得手动升级。说白了,22.04是目前最省事的起点。
2.2 安装必要依赖包
Yocto对系统依赖要求不少。我第一次搭建时漏装了两个包,编译到一半报错,气得我差点砸键盘。嗯,这里我直接给你整理好的清单。
打开终端,执行以下命令:
sudo apt update
sudo apt 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 \
pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool
这里有个坑:python3-pexpect这个包在Ubuntu 22.04的默认源里可能没有。我曾经遇到过,后来加了universe源才装上。如果你执行时提示找不到,先运行:
sudo add-apt-repository universe
sudo apt update
然后再装一遍。
2.3 配置Git
Yocto的源码管理全靠Git和Repo。Git的配置其实很简单,但很多人忽略了一点——用户名和邮箱必须配好,不然Repo拉代码时会报错。
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
我个人习惯再加两个配置:
git config --global color.ui auto
git config --global core.editor vim
第一个让Git输出带颜色,方便看状态。第二个把默认编辑器改成vim——当然,你用nano也行,随你。
2.4 安装Repo工具
Repo是Google开发的工具,用来管理多个Git仓库。Yocto的源码分散在几十个仓库里,手动一个个clone会疯掉的。
安装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="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
验证一下:
repo --version
如果输出版本号,说明装好了。
curl: (7) Failed to connect,可以用清华的镜像源:curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo。我团队里的小伙伴都用这个,稳得很。
2.5 验证环境
装完别急着走,咱们验证一下。写个简单的测试:
python3 --version
gcc --version
git --version
repo --version
确保所有命令都能正常输出。如果哪个报错,回头检查一下安装步骤。
我还建议你跑一下Yocto自带的依赖检查脚本。不过这个脚本在源码里,得先拉一份Yocto代码。别担心,下一章我们会详细讲怎么拉代码。这里先提一嘴:
# 先拉一个最小的Yocto版本
mkdir yocto-test && cd yocto-test
repo init -u https://git.yoctoproject.org/poky -b kirkstone
repo sync
source oe-init-build-env
如果source oe-init-build-env没报错,恭喜你,环境搭好了!
2.6 避坑指南
最后,分享几个我踩过的坑:
- 磁盘空间不够:Yocto编译一次至少需要50GB空闲空间。我建议你准备100GB以上。别问我怎么知道的——我第一次编译到一半磁盘满了,整个build目录废掉,重来。
- 文件系统大小写敏感:Yocto要求源码放在大小写敏感的文件系统上。如果你用WSL或者虚拟机共享文件夹,记得检查。我曾经在macOS的APFS上吃过亏,后来老老实实换到ext4。
- 网络代理:如果你在公司内网,记得配好HTTP代理。Yocto下载源码时会走
wget和git,这两个都得配。具体配置方法:export http_proxy=http://你的代理:端口,然后加到~/.bashrc里。
好了,环境搭建就到这里。下一章我们正式拉取Yocto源码,开始第一个编译任务。到时候你会发现,前面这些准备工作有多重要。