当前位置:  开发笔记 > 程序员 > 正文

Bitbake没有在rootfs映像中安装我的文件

如何解决《Bitbake没有在rootfs映像中安装我的文件》经验,为你挑选了1个好方法。


我创建了一个bitbake配方,它将我的两个文件(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 \
"

Anders.. 10

删除所有不必要的行,只是为了安全起见.

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-directory).

这应该让你无法前进.



1> Anders..:

删除所有不必要的行,只是为了安全起见.

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-directory).

这应该让你无法前进.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有