gpt4 book ai didi

yocto - Bitbake 未在 rootfs 镜像中安装我的文件

转载 作者:行者123 更新时间:2023-12-04 02:07:09 25 4
gpt4 key购买 nike

我创建了一个 bitbake 配方,它将我的 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而不是 cpchmod .这样您还可以确保所有者和组是正确的。 (对此的检查在 Jethro 中添加为新的 QA 检查)。
PACKAGES = "${PN}"不需要。

删除 ${D}来自你 FILES_${PN}定义。 FILES 中的路径应该是目标上的路径(即不包括 D -目录)。

这应该能让你起床。

关于yocto - Bitbake 未在 rootfs 镜像中安装我的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34067897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com