【问题标题】:How to set path in bitbake append file?如何在 bitbake 附加文件中设置路径?
【发布时间】:2019-09-30 10:49:56
【问题描述】:

我正在更新 Beagle Bone Black 中的设备树以启用 i2c 配置。我创建了一个新层元测试。在元测试中有一个食谱内核,我有一个 leds.cfgam335x-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 文件中实现这一点?

【问题讨论】:

  • 你为什么要这样做?我想kernel-devicetree.bbclass 应该在不手动操作的情况下处理它。否则你可以添加类似do_compile_prepend(){ cp ${WORKDIR}/am335x-boneblack.dts ${S}/arch/${ARCH}/boot/dts/ }

标签: linux-kernel embedded-linux yocto bitbake openembedded


【解决方案1】:

我能够通过添加这一行来解决它:

do_configure_append() {
    cp ${WORKDIR}/am335x-boneblack.dts ${S}/arch/arm/boot/dts/
}

【讨论】:

    【解决方案2】:

    将文件附加到 linux-yocto 配方中的SRC_URI,您将文件添加到 linux-yocto 工作目录,而不是实际的内核源工作目录。为了使这些文件可从内核源文件夹中使用,您有 2 个选项:

    • 移动/C&P 文件。 在 linux-yocto workdir 中,文件夹 linux-beaglebone_yocto-standard-build/sources 是到 build/tmp/work 的符号链接-shared/beaglebone_yocto/kernel-source。因此,您可以使用 bbappend 中的 cp/mv 将文件复制并粘贴/移动到该文件夹​​。
    • 创建补丁。您可以将这些文件以补丁的形式添加到内核源代码中,因此只需将补丁包含在您的 bbappend 中(像往常一样将其附加到 SRC_URI)。

    这些是 IMO 的最佳选择。但是,您可以将文件保存在 linux-beaglebone-yocto-standard-build/sources/arch/arm/boot/dts/yourfile.dtb 之类的文件夹结构中(在配方目录中) 然后将它们添加到SRC_URI(它们将自动添加到该路径)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多