27 创建自定义模板配置目录

如果为其他用户制作定制版构建系统,可能希望提供包含全部必要设置和层的自定义 构建配置,也就是新 Build Directory 中创建的 build/conf/local.conf 和 build/conf/bblayers.conf,以及设置构建时显示的自定义消息。 可以在自定义发行版层中创建一个或多个模板配置目录来实现。

使用 bitbake-layers save-build-conf 即可完成:

$ bitbake-layers save-build-conf ../../meta-alex/ test-1
NOTE: Starting bitbake server...
NOTE: Configuration template placed into /srv/bitbake-builds/layers/meta-alex/conf/templates/test-1
Please review the files in there, and particularly provide a configuration description in /srv/bitbake-builds/meta-alex/conf/templates/test-1/conf-notes.txt
You can try out the configuration with
TEMPLATECONF=/srv/bitbake-builds/layers/meta-alex/conf/templates/test-1 . /srv/bitbake-builds/layers/openembedded-core/oe-init-build-env build-try-test-1

上述命令读取当前 Build Directory 中 conf 下的配置文件,将 build/conf/bblayers.conf 中与站点相关的路径替换为相对于 ##OECORE## 的路径,并将配置文件以指定模板名称复制到指定层。

要使用这些已保存模板作为构建起点,用户应通过 TEMPLATECONF 环境 变量指向其中一个模板:

TEMPLATECONF=/srv/bitbake-builds/layers/meta-alex/conf/templates/test-1 . /srv/bitbake-builds/layers/openembedded-core/oe-init-build-env build-try-test-1

OpenEmbedded 构建系统通过 TEMPLATECONF 环境变量找到配置来源目录, 从中获取配置信息,最终写入 Build Directory 的 conf 目录。

如果未设置 TEMPLATECONF,则从 oe-init-build-env 脚本所在目录的 .templateconf 文件读取默认值。对于 Poky 参考发行版,其内容为:

TEMPLATECONF=${TEMPLATECONF:-meta/conf/templates/default}

配置模板目录中包含 bblayers.conf.sample、local.conf.sample、 conf-summary.txt 和 conf-notes.txt 文件。运行 oe-init-build-env 设置脚本时,构建系统利用这些文件生成对应的 build/conf/bblayers.conf 和 local.conf 文件,并向用户 显示正在设置的构建的使用信息。可以按需继续编辑这些文件,改进或更改向用户 提供的构建配置,并提供有用的摘要和详细使用说明。