我正在尝试编写一个.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
脚本?
答案 0 :(得分:8)
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:"
。