我创建了一个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
而不是cp
和chmod
.这样你就可以确保所有者和团体是正确的.(检查这个是作为Jethro的新QA检查添加的).
PACKAGES = "${PN}"
不需要.
${D}
从你的FILES_${PN}
定义中删除.路径FILES
应该是目标上的路径(即不包括D
-directory).
这应该让你无法前进.
删除所有不必要的行,只是为了安全起见.
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).
这应该让你无法前进.