我正在尝试编写一个.bbappend
文件,该文件将附加到initramfs-live-boot_1.0.bb
其中有一个语句,该语句do_install()
将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 }
我files
在与.bbappend
包含init.sh
应该从中读取的脚本的文件所在的目录中有一个文件夹.
问题是当我尝试构建图像时,它会吐出这个错误:
WARNING: Failed to fetch URL file://init.sh, attempting MIRRORS if available
然后尝试在poky
目录中搜索缺少的文件,而不是在我的项目目录中.
我.bbappend
写错了文件吗?我如何initramfs
使用该.bbappend
文件编辑脚本?
FILESEXTRAPATH_prepend := "${THISDIR}/files:"
应该是FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
.注意最后的S in FILESEXTRAPATHS
.
这应该让它适合你.
另一项改进是将文件文件重命名init.sh
为init-live.sh
.即使用与原始initramfs-live-boot
配方中的文件相同的名称.这将允许您删除do_install_append()
功能以及SRC_URI += "file://init.sh"
bbappend.配方本身会为您处理这些.因此,你真正需要的唯一一条就是FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
.