对不起,我对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"