yocto配方如何将文件安装到rootfs



对不起,我对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的配方和名为";文件";myscript.sh保存在其中。烘焙完图像后,我运行此命令查看myscript.sh是否已放置在rootfs中:查找-name"myscript*"它将返回文件所在的位置:

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

在食谱中,这一行正确吗?

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

如果这是根配方而不是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"

最新更新