繁体   English   中英

Yocto使用.bbappend文件覆盖initramfs的默认init脚本的编写

[英]Yocto using .bbappend file to override writing of default init scripts for initramfs

我正在尝试编写一个附加到initramfs-live-boot_1.0.bb.bbappend文件,该文件在do_install()中有一个语句,用于写入init-live.sh的内容, init-live.sh是一个管理引导的shell脚本过程, init ,在启动时运行的初始化脚本。 我的.bbappend文件的目的是引用要复制的启动脚本的修改版本来代替原始版本而不更改基本的openembedded-core和/或poky环境。 因此, .bbappend文件和我的脚本版本放在我的项目目录中,并构建了我自己的其他配方。

我的initramfs-live-boot_1.0.bbappend看起来像这样:

SUMMARY = "Replacement recipe"
FILESEXTRAPATH_prepend := "${THISDIR}/files:"
SRC_URI += "file://init.sh"

do_install_append() {
        install -m 0755 ${WORKDIR}/init.sh ${D}/init
}

我在.bbappend文件所在的目录中有一个文件夹files ,其中包含应该从中读取的init.sh脚本。

问题是当我尝试构建图像时,它会吐出这个错误:

WARNING: Failed to fetch URL file://init.sh, attempting MIRRORS if available

然后尝试在poky目录中搜索丢失的文件,而不是在我的项目目录中。

我写的.bbappend文件错了吗? 我如何使用.bbappend文件编辑initramfs脚本?

FILESEXTRAPATH_prepend := "${THISDIR}/files:"应为FILESEXTRAPATHS_prepend := "${THISDIR}/files:" 注意FILESEXTRAPATHS的最后一个S.

这应该让它适合你。

另一个改进是将文件文件从init.sh重命名为init-live.sh 即使用与原始initramfs-live-boot配方中的文件相同的名称。 这将允许您从bbappend中删除do_install_append()函数以及SRC_URI += "file://init.sh" 配方本身会为您处理这些。 因此,您实际需要的唯一一行是FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM