在 git 中跟踪 bitbake 配置和使用的层的正确方法是什么?
答案1
这是我发现效果最好的:
git submodule add git://git.yoctoproject.org/poky.git
- 从
my-yocto
根目录运行:
source poky/oe-init-build-env .
注意“。”在该命令中;初始化构建环境my-yocto
而不是poky
防止 Yocto GB 的临时文件在poky
.
- 该脚本将创建一个目录
conf
,my-yocto
其中包含一些文件; git-addconf/local.conf
并添加conf/bblayers.conf
到您的存储库中。 - 默认情况下,yocto 使用绝对路径进行设置
bblayers.conf
,这意味着 Alice 设置的存储库无法在 Bob 的机器上运行。通过bblayers.conf
使用 Yocto变量进行修改来修复此问题${TOPDIR}
:
(...)
BBLAYERS ?= " \
${TOPDIR}/poky/meta \
${TOPDIR}/poky/meta-poky \
${TOPDIR}/poky/meta-yocto-bsp \
(...)
编辑
local.conf
到支持的平台,例如MACHINE=beaglebone-yocto
从
my-yocto
,跑bitbake core-image-minimal
。确保您的计算机通风良好并去远足。
如果有效,您可以通过添加 meta-openembedded 等作为子模块来构建其余的配置。我建议任何自定义层都与 git repos 不同my-yocto
,这样my-yocto
只包含 git 子模块详细信息和 bitbake 配置。
要在构建之前更新,请运行:
git pull
git submodule update --remote --recursive
其他用户克隆后需要运行git submodule init
一次my-yocto
。
另外两个建议:
首先,如果您为多台计算机进行构建,请为每台计算机创建一个 local.conf,并创建从 local.conf 到特定于计算机的 conf 文件的符号链接。这允许您跟踪 中的多台机器my-yocto
。
其次,为每个 yocto 分支创建一个临时目录(例如tmp-zeus
、tmp-dunfell
、tmp-gatesgarth
),然后创建一个tmp
指向您正在构建的分支的符号链接。 (不要将这些添加到 git 中。)Yocto 在目录中积累了大量数据tmp
,并且需要您tmp
在切换分支时进行清理。如果您迁移到较新的版本,那很好,但如果您在分支之间来回切换,那么丢失所有缓存的数据就很糟糕了。