[英]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.