【问题标题】:yocto recipe how to install file to rootfsyocto recipe 如何将文件安装到 rootfs
【发布时间】:2021-10-31 17:24:12
【问题描述】:

对不起,我对 yocto 的语法有点陌生,这就是我修改食谱的方式:

LICENSE  = "LGPLv2.1"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI = "file://myscript.sh"
FILES_${PN} += "${sysconfdir}/init.d/myscript.sh"

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

配方被添加到构建中,因为如果我删除 LICENSE 行,yocto 图像将不会被烘焙。 保存配方的文件夹名为“customssh”,在此文件夹中,我有一个名为 customsh_0.1.bb 的配方和一个名为“files”的子文件夹,其中保存了 myscript.sh。 烘焙完映像后,我运行以下命令来查看 myscript.sh 是否已放置在 rootfs 中: 找 。 -name '我的脚本 *' 这将返回文件所在的位置:

./meta-swi/common/recipes-core/customssh/files/myscript.sh

在配方中,这一行是否正确?

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

【问题讨论】:

  • 你确定你的包正在安装吗?
  • 您好,尝试删除init.d 路径后的最后一个myscript.sh,仅使用:${D}${sysconfdir}/init.d

标签: yocto yocto-recipe yocto-wic


【解决方案1】:

如果这是根配方而不是bbappend,则使用do_install 而不是do_install_append

确保在复制到 ${D}${sysconfdir}/init.d 之前已创建它

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

现在,确保指定您安装的文件,这样do_package 就不会失败

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

【讨论】:

  • 感谢您的回复,我已经相应地修改了我的问题,抱歉,我对 yocto 语法有点陌生......
猜你喜欢
  • 2019-01-27
  • 2018-02-07
  • 2020-04-18
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 2018-09-05
  • 2018-06-28
  • 2020-03-31
相关资源
最近更新 更多