2つのファイル(VPUのファームウェアバイナリ)をターゲットルートファイルシステムの/ lib/firmware /ディレクトリにコピーするビットベイクレシピを作成しました。
私は多くのオプションを試しましたので、私のレシピの何が不要/冗長で、何が必要であるのかわかりません。 FILESEXTRAPATHS ..、SRC_URI ..、do_install ..で十分なはずですが、それだけでは機能せず、他のすべてのものでも機能しません。
DESCRIPTION = "VPU libraries provided by fsl"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
PACKAGE_Arch = "all"
ALLOW_EMPTY_${PN} = "1"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += " \
file://vpu_fw_imx6d.bin \
file://vpu_fw_imx6q.bin \
"
INSANE_SKIP_${PN} += "installed-vs-shipped"
do_install () {
install -d ${D}${base_libdir}/firmware/
cp ${WORKDIR}/vpu_fw_imx6d.bin ${D}${base_libdir}/firmware/
cp ${WORKDIR}/vpu_fw_imx6q.bin ${D}${base_libdir}/firmware/
chmod 755 ${D}${base_libdir}/firmware/vpu_fw_imx6d.bin
chmod 755 ${D}${base_libdir}/firmware/vpu_fw_imx6q.bin
}
PACKAGES = "${PN}"
FILES_${PN} += " \
${D}${base_libdir}/firmware/vpu_fw_imx6d.bin \
${D}${base_libdir}/firmware/vpu_fw_imx6q.bin \
"
私が間違ったことを指摘していただけませんか?
編集:
アンダースの回答は問題を本当に助け、解決しました。
誰かが役立つと思った場合に備えて、「固定」レシピを投稿しています。
DESCRIPTION = "VPU libraries provided by fsl"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
PACKAGE_Arch = "all"
SRC_URI += " \
file://vpu_fw_imx6d.bin \
file://vpu_fw_imx6q.bin \
"
do_install () {
install -d ${D}${base_libdir}/firmware/
install -m 755 ${WORKDIR}/vpu_fw_imx6d.bin ${D}${base_libdir}/firmware/
install -m 755 ${WORKDIR}/vpu_fw_imx6q.bin ${D}${base_libdir}/firmware/
}
FILES_${PN} += " \
${base_libdir}/firmware/vpu_fw_imx6d.bin \
${base_libdir}/firmware/vpu_fw_imx6q.bin \
"
安全のために、不要な行はすべて削除してください。
FILESEXTRAPATHS
は必要ありません。別のレイヤーのレシピを変更するために_.bbappend
_ファイルを書き込んでいるときにのみ使用されます。
_ALLOW_EMPT_${PN}
_も必要ありません。 PNを空にするために使用されます。これは、他のパッケージを作成する場合にのみ役立ちます。あなたのケースでは、PNでファームウェアファイルをワットするので、ファイルをインストールできない場合は、パッケージのビルド中にbitbakeエラーを出すことをお勧めします。
_INSANE_SKIP_${PN} += "installed-vs-shipped"
_も必要ありません。パッケージに入れていないファイルを_do_install
_にインストールする場合にのみ必要です。通常、それらをインストールしたり、ファイルを削除したりしないことをお勧めします。
あなたのdo_install()
は問題なく動作するはずです。ただし、install
とcp
の代わりにchmod
を使用することをお勧めします。これにより、所有者とグループが正しいことも確認できます。 (これのチェックは、Jethroの新しいQAチェックとして追加されます)。
_PACKAGES = "${PN}"
_は必要ありません。
_${D}
_定義から_FILES_${PN}
_を削除します。 FILES
のパスは、ターゲットのパスである必要があります(つまり、D
- directoryは含みません)。
これで実行できます。