我正在尝试使用 Bitbake 命令在创建映像期间应用补丁。我在目录下有我的文件:u-boot-tftp.pacth:/file/u-boot-tftp。这是我的u-boot-tftp.bbappend:
DEPENDS += "dtc-native"
SRC_URI = "file://u-boot-tftp.patch"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
在构建我的映像时,我遇到此错误:
Applying patch u-boot-tftp.patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
No file to patch. Skipping patch.
2 out of 2 hunks ignored
Patch u-boot-tftp.patch does not apply (enforce with -f)
我尝试运行解包命令:bitbake -c unpack -f u-boot-tftp,但它不起作用,我在互联网上查找了它,似乎没有任何效果。任何帮助将不胜感激。
感谢
此致敬意。
您正在覆盖 bbappend 中的 SRC_URI
变量。因此,不使用原始的 U-Boot 源,并且 U-Boot 配方仅将您的补丁作为整个源。
在 bbappend 中使用 SRC_URI +=
而不是SRC_URI =
(就像你对 DEPENDS
所做的那样(。
在输入行 3 找不到要修补的文件
从上面的错误来看,yocto似乎无法找到补丁。您可以更新FILESEXTRAPATHS_prepend路径或更改修补程序所在的目录。
在执行 do_patch(( 时,它将搜索补丁以查找多个路径,这些路径可以在 build/tmp/work//u-boot-tftp//temp/log.do_patch 中看到。检查它是否在"/file/u-boot-tftp"文件夹中搜索补丁,并相应地更新路径。