Yocto 使用 .bbappend 文件覆盖 initramfs 的默认初始化脚本的编写
Yocto using .bbappend file to override writing of default init scripts for initramfs
我正在尝试编写一个 .bbappend
文件,该文件将附加到 initramfs-live-boot_1.0.bb
中,该文件在 do_install()
中有一个语句写入 init-live.sh
的内容,一个shell 管理启动过程的脚本,init
,一个在启动时运行的初始化脚本。我的 .bbappend
文件的目的是引用要复制的启动脚本的修改版本来代替原始版本,而不更改基础 openembedded-core
and/or 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
。 IE。使用与原始 initramfs-live-boot
食谱中的文件相同的名称。这将允许您从 bbappend 中删除 do_install_append()
-函数以及 SRC_URI += "file://init.sh"
。食谱本身会为你处理这些。因此,您真正需要的唯一一行是 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
.
我正在尝试编写一个 .bbappend
文件,该文件将附加到 initramfs-live-boot_1.0.bb
中,该文件在 do_install()
中有一个语句写入 init-live.sh
的内容,一个shell 管理启动过程的脚本,init
,一个在启动时运行的初始化脚本。我的 .bbappend
文件的目的是引用要复制的启动脚本的修改版本来代替原始版本,而不更改基础 openembedded-core
and/or 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
.
这应该适合您。
另一个改进是将文件文件从 init.sh
重命名为 init-live.sh
。 IE。使用与原始 initramfs-live-boot
食谱中的文件相同的名称。这将允许您从 bbappend 中删除 do_install_append()
-函数以及 SRC_URI += "file://init.sh"
。食谱本身会为你处理这些。因此,您真正需要的唯一一行是 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
.