[英]Yocto bitbake .bbappend not installing file
我正在嘗試將 json 添加到設備上的 /etc 中。 已閱讀許多 SO 答案並沒有找到解決方案。 新的 json 被稱為 audio_config.json,它與 .bbappend 在同一目錄下的 files/ 下。 我正在使用 append 因為這個文件只需要在一台設備 model 上,而主要配方在許多型號上。
這樣做:
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},也會發生同樣的事情。 此樹中的其他配方遵循相同的 model,不確定問題出在哪里。
如果我使用 ${THISDIR} 那么它說 json 不在基本配方目錄中 - 它不應該是。
從我嘗試過的SO帖子中
FILES_${PN}-audio_config.json = "${sysconfdir}/audio_config.json"
但這似乎沒有效果。
蒂亞!
根據用戶和文檔,我上面的內容應該有效。 但事實並非如此。 起作用的是:
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 正確設置本地路徑並進行安裝。
在do_unpack()
中,文件被復制到${WORKDIR}
,而不是${B}
(構建目錄)而不是${S}
(源目錄)。 這個食譜適用於 Yocto Dunfell:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://audio_config.json"
do_install_append() {
install -d ${D}${sysconfdir}
install -m 644 ${WORKDIR}/audio_config.json ${D}${sysconfdir}
}
請注意第二次install
調用中不同的源路徑參數。
我猜是有一個 yocto/bitbake 錯誤影響了你。
您添加 FILES_${PN} 以將文件添加到圖像是正確的。 但不要給它添加任何后綴,只需將 append 你的文件添加到變量中:
FILES_${PN} += "${sysconfdir}/audio_config.json"
此外,您應該在安裝中使用${WORKDIR}
。
install -m 644 ${WORKDIR}/audio_config.json ${D}${sysconfdir}
還要檢查 package 的工作目錄以獲取一些日志並查看實際檢索到的文件,以便於調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.