Yocto图层集版本控制的最佳当前实践

Yocto图层集版本控制的最佳当前实践,yocto,bitbake,openembedded,Yocto,Bitbake,Openembedded,Yocto有一组独立的存储库,其中包含基本系统()和各种软件组件(所有的,还有)。因此,当您想要为特定的设备和用途构建映像时,您需要签出一些存储库 这些都由build目录中的conf/bblayers.conf和conf/local.conf文件绑定在一起。但这是一个构建目录,它应该是一次性的,只包含可以根据请求轻松重新生成的信息。除了conf/bblayers.conf中的层列表和conf/local.conf中的MACHINE等两个定义之外,它还可以定义要构建的目标系统 我应该如何编辑此信息

Yocto有一组独立的存储库,其中包含基本系统()和各种软件组件(所有的,还有)。因此,当您想要为特定的设备和用途构建映像时,您需要签出一些存储库

这些都由
build
目录中的
conf/bblayers.conf
conf/local.conf
文件绑定在一起。但这是一个构建目录,它应该是一次性的,只包含可以根据请求轻松重新生成的信息。除了
conf/bblayers.conf
中的层列表和
conf/local.conf
中的
MACHINE
等两个定义之外,它还可以定义要构建的目标系统

我应该如何编辑此信息

目前,我们有一个相当粗糙的脚本来组装构建目录并写入配置文件,但它不知道如何在更改时正确更新它们


那么有更好的选择吗?最好是在签出/更新(使用子模块或
repo
)、
oe init build env
init脚本(如果不存在构建目录,则创建该目录)和使用适当的目标映像运行
bitbake
)之间避免任何附加步骤,这似乎是为了解决这个特殊问题而设计的。然而,当使用这个工具时,工作流应该是什么样子还不是很清楚

关于默认的
bblayers.conf
local.conf
文件,您可以在项目中的任意位置对它们进行版本设置,并在调用
oe init build env
后让脚本将它们复制到构建文件夹中,或者简单地使用
meta poky/conf/bblayers.sample
meta poky/conf/local.conf.sample
,在首次创建生成目录时,由oe init build env自动安装


现在,当您进行更改或添加层时,您必须清除
.sample
文件中更改的生成目录才能生效。

实际上,
repo
是一个方便的工具,用于管理包含所有所需存储库的清单文件


然后,您可以使用
TEMPLATECONF
来修改
local.conf
bblayers.conf
。我们是这样做的:

这不是同一个问题,因为我遇到的问题适用于即使我只使用了小额回购协议。它仍然包含许多需要激活或不激活的层和许多配置选项,我需要以一致的方式对这组选项进行版本设置;TEMPLATECONF部分似乎是最好的,因为它不支持更新,但我看不到任何其他的更新。是否有任何东西(在YOCTO工作流中)阻止
local.conf
bblayers.conf
成为指向其他版本文件的符号链接?如果没有,您可以让安装脚本生成符号链接并调用you@YvesLhuillier,问题是这些配置中的某些信息是特定于生成环境的,而有些则不是。