如何在 bitbake 附加文件中设置路径?
How to set path in bitbake append file?
我正在更新 Beagle Bone Black 中的设备树以启用 i2c 配置。我创建了一个新层元测试。在元测试中有一个食谱内核,其中我有一个 leds.cfg 和 am335x-boneblack.dts 文件 linux-yocto_%.bbappend 文件。 bbappend 文件如下所示:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
PACKAGE_ARCH = "${MACHINE_ARCH}"
SRC_URI += "\
file://am335x-boneblack.dts \
file://leds.cfg \
"
使用 bitbake 构建内核后,两个文件都传输到 "build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/linux-yocto/4.18.25+git**" 目录
但我希望将 dts 文件转移到另一个目录"build/tmp/work-shared/beaglebone-yocto/kernel-source/arch/arm/boot/dts
“
如何在 bbappend 文件中实现这一点?
将文件附加到 linux-yocto 配方中的 SRC_URI
,您是将文件添加到 linux-yocto 工作目录,而不是实际的 kernel-source 工作目录。要从 kernel-source 文件夹中获取这些文件,您有 2 个选项:
- Move/C&P 文件。 在 linux-yocto 工作目录中,文件夹 linux-beaglebone_yocto-standard-build/sources是 build/tmp/work-shared/beaglebone_yocto/kernel-source 的符号链接。因此,您可以使用 bbappend 中的 cp/mv 将文件复制&paste/move 到该文件夹。
- 创建一个补丁。您可以将这些文件以补丁的形式添加到内核源代码中,因此只需将补丁包含在您的 bbappend 中(将其附加到
SRC_URI
,一如既往)。
在我看来,这些是最佳选择。但是,您可以将文件保存在像 linux-beaglebone-yocto-standard-build/sources/arch/arm/boot/dts/yourfile.dtb 这样的文件夹结构中(在食谱目录内),然后将它们添加到 SRC_URI
(它们将自动添加到该路径)。
我能够通过添加这一行来解决它:
do_configure_append() {
cp ${WORKDIR}/am335x-boneblack.dts ${S}/arch/arm/boot/dts/
}
我正在更新 Beagle Bone Black 中的设备树以启用 i2c 配置。我创建了一个新层元测试。在元测试中有一个食谱内核,其中我有一个 leds.cfg 和 am335x-boneblack.dts 文件 linux-yocto_%.bbappend 文件。 bbappend 文件如下所示:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
PACKAGE_ARCH = "${MACHINE_ARCH}"
SRC_URI += "\
file://am335x-boneblack.dts \
file://leds.cfg \
"
使用 bitbake 构建内核后,两个文件都传输到 "build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/linux-yocto/4.18.25+git**" 目录
但我希望将 dts 文件转移到另一个目录"build/tmp/work-shared/beaglebone-yocto/kernel-source/arch/arm/boot/dts “
如何在 bbappend 文件中实现这一点?
将文件附加到 linux-yocto 配方中的 SRC_URI
,您是将文件添加到 linux-yocto 工作目录,而不是实际的 kernel-source 工作目录。要从 kernel-source 文件夹中获取这些文件,您有 2 个选项:
- Move/C&P 文件。 在 linux-yocto 工作目录中,文件夹 linux-beaglebone_yocto-standard-build/sources是 build/tmp/work-shared/beaglebone_yocto/kernel-source 的符号链接。因此,您可以使用 bbappend 中的 cp/mv 将文件复制&paste/move 到该文件夹。
- 创建一个补丁。您可以将这些文件以补丁的形式添加到内核源代码中,因此只需将补丁包含在您的 bbappend 中(将其附加到
SRC_URI
,一如既往)。
在我看来,这些是最佳选择。但是,您可以将文件保存在像 linux-beaglebone-yocto-standard-build/sources/arch/arm/boot/dts/yourfile.dtb 这样的文件夹结构中(在食谱目录内),然后将它们添加到 SRC_URI
(它们将自动添加到该路径)。
我能够通过添加这一行来解决它:
do_configure_append() {
cp ${WORKDIR}/am335x-boneblack.dts ${S}/arch/arm/boot/dts/
}