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 \
"
你能指出怎么了吗?
Edit:安德斯的回答确实有助于并解决了这个问题。我正在发布“固定”食谱,以防有人发现它有帮助。
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
没有必要;仅当您编写ALLOW_EMPT_${PN}
也不需要。它用于允许PN为空,这仅在您创建其他软件包时才有用。在您的情况下,您可以在PN中使用固件文件,因此,如果无法安装文件,则最好在构建软件包时出现BitBake错误。
INSANE_SKIP_${PN} += "installed-vs-shipped"
也不需要。仅当您在
do_install
中安装文件时,才需要包含包装。通常,建议您不要安装它们或删除文件。
你应该工作正常;尽管我建议使用
do_install()
而不是install
和
cp
。这样,您也可以确保所有者和小组是正确的。 (对此进行检查,作为jethro中的新质量检查)。
不需要。 从您看来
chmod
定义。
PACKAGES = "${PN}"
中的路径应为目标的路径(即不包括${D}
主机)。
这应该让你起来。
thanks,好的起点。我终于以这种方式安装了两个.sh脚本。I创建了此文件结构(文件夹名称“文件”是Yocto自动知道的,并且可以按原样保留):
FILES_${PN}
i我将浓汤添加到“ somename”中。
FILES
和somename.bb文件以这种方式外观:
D
yocto将自动找到文件夹中的文件,它将它们复制到临时$ {workDir},第二个“安装”行确保稍后两个文件都将在文件夹 /usr /bin中存在。因为在这种情况下,$ {bindir}(例如 /usr /bin)用作复制目标_ $ {pn}。