Bitbake无法将文件从配方安装到rootfs

时间:2019-12-06 04:10:47

标签: yocto bitbake imx6

我目前正在使用yocto来构建系统imx6sxsabresd(IMX6 Solo X)。我已经成功构建了映像,但是我想向init.d添加脚本以打开LED。我将在meta-fsl-bsp-release层中附加linux-imx食谱。

这是我的linux-imx.bbappend文件:

FILESEXTRAPATHS_prepend := "${THISDIR}/linux-imx:"



SRC_URI += "file://0001-added-pad-for-heartbeat-led.patch \
        file://heartbeat.sh \
        file://heartbeat "



PACKAGECONFIG_append = " heartbeat"



inherit update-rc.d

INITSCRIPT_PACKAGES = "${PN}"

INITSCRIPT_PARAMS = "start"

INITSCRIPT_NAME = "heartbeat.sh"



do_install_append() 
{

  install -d ${D}${sysconfdir}/init.d

  install -m 0755 ${WORKDIR}/heartbeat.sh ${D}${sysconfdir}/init.d/heartbeat.sh




  install -d ${D}/home/root

  install -m 0755 ${WORKDIR}/heartbeat ${D}/home/root/heartbeat

}



FILES_${PN} += "${sysconfdir}/init.d/heartbeat.sh /home/root/heartbeat"

PACKAGES = "${PN}"

我可以使用此bbappend文件中包含的补丁程序成功创建sdcard映像,但是,文件heartbeat.sh和heartbeat不会复制到添加到输出sdcard文件的最终rootfs中。这很奇怪,因为我能够在它们的路径中看到这些文件,并将它们复制到../ tmp / work / imx6sxsabresd-poky-linux-gnueabi / linux-imx / 4.14.98-r0 / image /

1 个答案:

答案 0 :(得分:0)

正如评论所建议的那样,将其添加到内核配方是错误的方法。您应该改为添加自己的配方,并从图像定义中引用该配方(附加到IMAGE_INSTALL)。

您的食谱可能类似于:

SUMMARY = "LED heartbeat init script"

inherit update-rc.d

SRC_URI += "\
    file://heartbeat.sh \
"

do_install() {
    install -d ${D}${sysconfdir}/init.d
    install -m 0755 ${WORKDIR}/heartbeat.sh ${D}${sysconfdir}/init.d/
}

FILES_${PN} =  "${sysconfdir}/init.d/heartbeat.sh"

INITSCRIPT_NAME = "heartbeat.sh"
INITSCRIPT_PARAMS = "start 90 5 . stop 20 0 1 6 ."