首页 > 解决方案 > Yocto bitbake .bbappend 未安装文件

问题描述

我正在尝试将 json 添加到设备上的 /etc 中。已阅读许多 SO 答案并没有找到解决方案。新的 json 名为 audio_config.json,它位于 files/ 与 .bbappend 相同的目录下。我正在使用 append 因为这个文件只需要在一个设备模型上,而主要配方在许多模型上。

这样做:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://audio_config.json"

do_install_append() {
   install -d ${D}${sysconfdir}
   install -m 644 ${B}/audio_config.json ${D}${sysconfdir}
}

收到一条错误消息,指出 json 不在工作目录中。如果我使用 ${WORKDIR} 而不是 ${B},也会发生同样的事情。此树中的其他配方遵循相同的模型,不确定问题出在哪里。

如果我使用 ${THISDIR} 那么它说 json 不在基本配方目录中 - 它不应该是。

从我尝试过的SO帖子中

FILES_${PN}-audio_config.json = "${sysconfdir}/audio_config.json"

但这似乎没有任何效果。

蒂亚!

标签: yoctorecipe

解决方案


根据用户和文档,我上面的内容应该有效。但它没有。起作用的是:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
AUDIO_CONFIG_FILES := "${THISDIR}/files"

do_install_append() {
   install -d ${D}${sysconfdir}
   install -m 644 ${AUDIO_CONFIG_FILES}/audio_config.json ${D}${sysconfdir}
}

使用变量立即扩展 $THISDIR 正确设置本地路径并进行安装。


推荐阅读