【问题标题】:Bitbake not installing files from recipe to rootfsBitbake 没有将文件从配方安装到 rootfs
【发布时间】:2020-03-31 01:41:19
【问题描述】:

我目前正在使用 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/

【问题讨论】:

  • Linux-imx 听起来像一个内核,对吧?我不希望内核包一定会安装在 rootfs 上。您是否考虑过使用新配方?
  • 是的。为什么不呢?是否有另一个创建 rootfs 的配方?当我把它分开时,我在执行我的食谱时遇到了问题。它位于 nxp 提供的 bsp 之上。
  • 在挂载 rootfs 之前启动期间所需的任何东西都不能根据定义存储在 rootfs 上。内核就是其中之一。

标签: yocto bitbake imx6


【解决方案1】:

正如 cmets 建议的那样,附加到内核配方是错误的方法。相反,您应该添加自己的配方并从图像定义中引用该配方(附加到 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 ."

【讨论】:

    猜你喜欢
    • 2016-03-08
    • 2018-03-09
    • 2017-02-16
    • 2022-01-27
    • 2021-10-31
    • 2015-04-08
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    相关资源
    最近更新 更多