我正在嘗試創建一個自定義配方來對從 u-boot.bb 生成的 u-boot 映像進行簽名。
我有 2 個自定義食譜:
1. u-boot.bb - clones, compiles and deploys u-boot resulting u-boot.elf.
2. u-boot-sign.bb - depends on u-boot.bb. Gets u-boot.elf, passes it through
custom signing procedure and deploys the result.
為了簽名,我被迫使用位于外部存盤庫中的 Python 腳本形式的自定義程式。
導致問題的部分是從 u-boot.bb 配方訪問部署的 u-boot.elf 二進制檔案。我找不到將 u-boot.elf 二進制檔案暴露給 u-boot-sign.bb 配方的方法。
從一個配方中公開影像二進制檔案以在另一個配方中訪問、簽名和部署的正確方法應該是什么?
uj5u.com熱心網友回復:
為了在配方之間和交叉編譯范圍之間共享檔案,我${datadir}在安裝二進制檔案時使用(通過do_install)。這使我可以訪問FILES:${PN}via描述的所有檔案recipe-sysroot。
u-boot.bb - 出口配方:
…
do_install() {
install -d ${D}${datadir}/u-boot-2016/
install -m 0644 ${B}/${UBOOT_ELF_BINARY} ${D}${datadir}/u-boot-2016
}
FILES:${PN} = "${datadir}/u-boot-2016"
…
u-boot-sign.bb - 取決于食譜
…
DEPENDS = " u-boot python3-native"
do_sign() {
${STAGING_BINDIR_NATIVE}/python3-native/python3 sign.py \
-i ${RECIPE_SYSROOT}${datadir}/u-boot-2016/${UBOOT_ELF_BINARY}
}
…
靈感來自這里
編輯
我被建議不要使用${datadir}. 對于中間檔案,更好的方法是/firmware像在meta-arm.
u-boot.bb - 出口配方:
…
do_install() {
install -D -p -m 0644 ${B}/${UBOOT_ELF_BINARY} ${D}/firmware/${UBOOT_ELF_BINARY}
}
FILES:${PN} = "/firmware"
SYSROOT_DIRS = "/firmware"
…
u-boot-sign.bb - 取決于食譜
…
DEPENDS = " u-boot python3-native"
do_sign() {
${STAGING_BINDIR_NATIVE}/python3-native/python3 sign.py \
-i ${RECIPE_SYSROOT}/firmware/u-boot-2016/${UBOOT_ELF_BINARY}
}
…
它還需要添加/firmware到SYSROOT_DIRS.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370674.html
