8 使用配置片段
配置片段 定义顶层构建配置功能, 可以使用标准工具独立启用或禁用。这类功能由一条或多条构建配置语句组成, 语句可以包含在片段文件中,也可以通过 Built-in Fragment 机制间接设置。
本文提供 bitbake-config-build 工具的速查说明,并列出 OpenEmbedded Build System 核心仓库中 可用的 配置片段 和 内置片段。
备注
有关如何为构建定义新片段的详细信息,请参阅《Yocto Project 开发任务手册》的 在构建中创建新配置片段 一节。
8 bitbake-config-build 速查
配置片段 由 bitbake-config-build 命令行工具管理,该工具在 初始化构建环境 之后即可使用。
bitbake-config-build 命令行工具通过子命令管理片段,
下文各节将详细介绍这些子命令。每个子命令都可以传入 --help 标志,
获取更多信息。
8.1.1 bitbake-config-build list-fragments
bitbake-config-build list-fragments 命令列出当前可用的 内置片段 和 配置片段, 并显示哪些片段已启用、哪些已禁用。
8.1.2 bitbake-config-build show-fragment
bitbake-config-build show-fragment 命令用于显示片段的位置和值。
例如,运行 bitbake-config-build show-fragment core/yocto/sstate-mirror-cdn
将显示 core/yocto/sstate-mirror-cdn 片段的内容。
8.1.3 bitbake-config-build enable-fragment
bitbake-config-build enable-fragment 命令用于启用片段。 启用片段后,BitBake 会解析该片段的配置变量, 这些变量的值将在构建中全局可用。
通过 bitbake-config-build list-fragments 命令返回的列表, 可以确定构建能够启用哪些片段。
例如,以下命令启用 core/yocto/sstate-mirror-cdn 片段:
bitbake-config-build enable-fragment core/yocto/sstate-mirror-cdn
备注
可以使用同一条命令同时启用多个片段:
bitbake-config-build enable-fragment <fragment1> <fragment2> ...
内置片段 的启用方式相同,
其值直接在命令行中定义。例如,以下命令通过
machine/ 片段
将 MACHINE 设置为 qemuarm64:
bitbake-config-build enable-fragment machine/qemuarm64
可以在命令行中将此片段设为另一个值,从而覆盖原有设置,例如:
bitbake-config-build enable-fragment machine/qemux86-64
在上述示例中,MACHINE 的新值为 qemux86-64。
使用 bitbake-config-build enable-fragment 启用片段后, 其名称会自动追加到 build/conf/toolcfg.conf 中的 OE_FRAGMENTS 变量。
备注
也可以修改配置文件(如 build/conf/local.conf)中的 OE_FRAGMENTS 变量,手动删除或添加片段。
8.1.4 bitbake-config-build disable-fragment
凡是通过 bitbake-config-build enable-fragment 命令启用的片段, 都可以通过 bitbake-config-build disable-fragment 命令禁用。 已启用片段的列表可以通过 bitbake-config-build list-fragments 获取。
例如,以下命令禁用 core/yocto/sstate-mirror-cdn 片段:
bitbake-config-build disable-fragment core/yocto/sstate-mirror-cdn
内置片段 的禁用方式也相同。
例如,以下命令禁用 machine/qemuarm64 片段:
bitbake-config-build disable-fragment machine/qemuarm64
备注
可以使用同一条命令同时禁用多个片段:
bitbake-config-build disable-fragment <fragment1> <fragment2>
8.1.5 bitbake-config-build disable-all-fragments
bitbake-config-build disable-all-fragments 命令禁用当前所有 已启用的片段。已启用片段的列表可以通过 bitbake-config-build list-fragments 获取。
此命令不带参数运行:
bitbake-config-build disable-all-fragments
8 核心片段
8 核心内置片段
内置片段 用于为单个变量进行全局赋值。 OpenEmbedded Build System 定义了多个内置片段,详见本节。
8.2.1.1 machine/
machine/ built-in fragment 可用于全局设置 MACHINE 变量的值。
8.2.1.2 distro/
distro/ built-in fragment 可用于全局设置 DISTRO 变量的值。
8 核心配置片段
8 Yocto Project 片段
本组定义与 Yocto Project 基础设施相关的通用片段。
8.2.2.1.1 core/yocto/sstate-mirror-cdn
core/yocto/sstate-mirror-cdn configuration fragment 可用于
设置 BB_HASHSERVE_UPSTREAM 和 SSTATE_MIRRORS,
以使用标准 Yocto 构建配置的预构建
共享状态缓存 产物。
这意味着构建开始时会查询 Yocto Project 镜像站,检查是否存在所需产物。 虽然会增加初始等待时间,但如果缓存中已有相应产物,就不必重新构建, 从而加快后续构建过程。这一机制假定下载产物比自行构建更快, 实际情况取决于网络配置。
8.2.2.1.2 core/yocto/root-login-with-empty-password
core/yocto/root-login-with-empty-password configuration fragment
可用于允许 root 用户通过串口控制台和 SSH 无密码登录。
8.2.2.1.3 core/yocto/sbom-cve-check
core/yocto/sbom-cve-check configuration fragment 可用于配置构建,
使其使用 sbom-cve-check 类。
此配置片段执行以下操作:
将 create-spdx 类添加到全局继承的类列表中, 因为它依赖该类。
使用 SPDX_INCLUDE_VEX 变量, 将 VEX 声明包含到输入 SPDX 文档中。
8.2.2.1.4 core/yocto/monitor-disk-space
core/yocto/monitor-disk-space configuration fragment 通过为
BB_DISKMON_DIRS 变量设置合理的值,在构建所用磁盘空间不足时
产生警告或错误。有关更多信息,请参阅 BB_DISKMON_DIRS 的定义。
8 Yocto Project Autobuilder 片段
本组定义用于 Yocto Project Autobuilder 的片段。 详情请参阅《Yocto Project 测试环境手册》的 Yocto 项目 Autobuilder 概览 一节。
8.2.2.2.1 core/yocto-autobuilder/autobuilder
core/yocto-autobuilder/autobuilder 片段定义由
Yocto Project Autobuilder 发起的构建所使用的公共变量。
8.2.2.2.2 core/yocto-autobuilder/autobuilder-resource-constraints
core/yocto-autobuilder/autobuilder 片段定义用于限制
Yocto Project Autobuilder 构建期间资源使用量的变量。
有关限制资源的更多详情,请参阅《Yocto Project 开发任务手册》的
限制主机资源使用量 一节。
8.2.2.2.3 core/yocto-autobuilder/multilib-mips64-n32
core/yocto-autobuilder/multilib-mips64-n32 片段为
MIPS64 机器启用三架构的
multilib
配置,其中包括 mips64-n32、mips64 和 mips32r2。
8.2.2.2.4 core/yocto-autobuilder/multilib-x86-lib32
core/yocto-autobuilder/multilib-x86-lib32 片段启用
multilib
配置,以便在 64 位 X86 构建中支持 32 位库。
8.2.2.2.5 core/yocto-autobuilder/multilib-x86-lib64
core/yocto-autobuilder/multilib-x86-lib64 片段启用
multilib
配置,以便在 32 位 X86 构建中支持 64 位库。