10 手动设置 Poky 参考发行版
设置 Poky 参考发行版的默认方法是使用 bitbake-setup,但也可以
手动设置环境。本文逐步介绍手动设置过程。
备注
本文生成的环境类似于 Yocto Project 快速构建 中通过
bitbake-setup 设置 Poky 的结果。
10 获取源码仓库
构建 Poky 参考发行版所需的源码仓库,可以通过以下两种方式获取: 使用 Git 克隆仓库, 或 下载已发布的归档包。
10 使用 Git 克隆层
访问 发行版本 页面,选择最新稳定版
或长期支持版,例如 yocto-6.1_M3。
完成机器设置(见 Yocto Project 参考手册的 系统要求)
后,创建作为项目基础目录的 Source Directory。本文使用
bitbake-builds 作为该目录名称,创建方法如下:
$ mkdir bitbake-builds
$ cd bitbake-builds
需要获取构建主机上设置 Poky 参考发行版所需的各个 层。 使用以下命令:
$ mkdir layers/
$ git clone -b yocto-6.1_M3 https://git.openembedded.org/bitbake ./layers/bitbake
$ git clone -b yocto-6.1_M3 https://git.openembedded.org/openembedded-core ./layers/openembedded-core
$ git clone -b yocto-6.1_M3 https://git.yoctoproject.org/meta-yocto ./layers/meta-yocto
10 使用源码归档包
Yocto Project 还提供发行版本的源码归档包,可从 https://downloads.yoctoproject.org/releases/yocto/ 获取。选择所需发行版本所在的子目录,例如 yocto-6.1_M3。
其中包含 OpenEmbedded-Core (OE-Core)、BitBake 和 meta-yocto 的源码归档包。
备注
推荐通过 Git 克隆上游仓库 获取 Yocto Project 组件,并在本地克隆的仓库中工作。
10 构建镜像
按以下步骤构建镜像。构建过程会从源码创建完整 Linux 发行版,包括工具链。
备注
如果位于防火墙后方,且构建主机未设置代理,获取源码时可能遇到构建问题, 例如获取器失败或 Git 失败。
如果不知道代理设置,请向本地网络基础设施管理方咨询,也可以先检查 Web 浏览器设置。更多信息见 Yocto Project Wiki 的 “在网络代理后工作” 页面。
初始化构建环境: 在当前工作目录中运行以下命令设置构建环境:
$ source ./layers/openembedded-core/oe-init-build-env
脚本会创建 Build Directory 等内容,本例为 Source Directory 下的
build。脚本运行后,当前工作目录切换为 Build Directory。 构建完成后,此目录将包含构建过程中创建的全部文件。检查本地配置文件: 设置构建环境后,Build Directory 的
conf子目录中会出现本地配置文件 build/conf/local.conf。本例默认面向适合模拟运行的qemux86-64目标构建,使用 RPM 软件包管理器。小技巧
使用 共享状态缓存 镜像站并启用 哈希等价,可显著加快构建, 并减少获取器失败的影响。这样可使用预构建产物,无需重新构建。只有 网络和服务器下载产物的速度快于本地构建时,这种方式才有意义。
要使用这些镜像站,运行以下命令:
$ bitbake-config-build enable-fragment core/yocto/sstate-mirror-cdn
哈希等价服务器需要 9.1 或更高版本的 Python websockets 模块。 Debian GNU/Linux 12(Bookworm)及更高版本、Fedora、CentOS Stream 9 及更高版本、Ubuntu 22.04(LTS)及更高版本都提供足够新的软件包。 其他受支持发行版需要从软件包源之外获取模块,例如通过
pip。 也可以按 Yocto Project 参考手册的 所需的 Git、tar、Python、make 和 gcc 版本 一节安装 Buildtools 归档包。开始构建: 运行以下命令为目标构建操作系统镜像,本例为
core-image-sato:$ bitbake core-image-sato
bitbake命令的用法见 Yocto Project 概述与概念手册的 BitBake 一节,或 BitBake 用户手册的 The BitBake Command。使用 QEMU 模拟镜像: 此镜像构建完成后,可以启动 Yocto Project 附带的快速模拟器 QEMU(Quick EMUlator):
$ runqemu qemux86-64
QEMU 的更多运行信息见 Yocto Project 开发任务手册的 使用快速模拟器(QEMU) 一章。
退出 QEMU: 点击关机图标,或在启动 QEMU 的终端窗口中输入
Ctrl-C。