sen*_*enx 6 configuration git version-control yocto bitbake
在 git 中跟踪 bitbake 配置和使用的层的正确方法是什么?
这是我发现效果最好的:
git submodule add git://git.yoctoproject.org/poky.git
Run Code Online (Sandbox Code Playgroud)
my-yocto
根目录运行:source poky/oe-init-build-env .
Run Code Online (Sandbox Code Playgroud)
注意“。” 在该命令中;初始化构建环境而my-yocto
不是poky
防止 Yocto GB 的临时文件在poky
.
conf
,其中my-yocto
包含一些文件;git-addconf/local.conf
并添加conf/bblayers.conf
到您的存储库中。bblayers.conf
,这意味着 Alice 设置的存储库无法在 Bob 的机器上运行。bblayers.conf
通过使用 Yocto变量进行修改来修复此问题${TOPDIR}
:(...)
BBLAYERS ?= " \
${TOPDIR}/poky/meta \
${TOPDIR}/poky/meta-poky \
${TOPDIR}/poky/meta-yocto-bsp \
(...)
Run Code Online (Sandbox Code Playgroud)
编辑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
Run Code Online (Sandbox Code Playgroud)
其他用户克隆后需要运行git submodule init
一次my-yocto
。
另外两个建议:
首先,如果您为多台计算机进行构建,请为每台计算机创建一个 local.conf,并创建从 local.conf 到特定于计算机的 conf 文件的符号链接。这允许您跟踪 中的多台机器my-yocto
。
其次,为每个 yocto 分支创建一个临时目录(例如tmp-zeus
、tmp-dunfell
、tmp-gatesgarth
),然后创建一个指向tmp
您正在构建的分支的符号链接。(不要将这些添加到 git 中。)Yocto 在目录中积累了大量数据tmp
,并且需要您在切换分支时进行清理tmp
。如果您迁移到较新的版本,那很好,但是如果您在分支之间来回切换,那么丢失所有缓存的数据就很糟糕了。