簡體   English   中英

Yocto bitbake.bbappend 未安裝文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM