我在ubuntu 18.04上使用yocto(ver.rocko(,并试图应用补丁文件,但我不能。。。
我的目标机器是qemuarm64,linux内核是linux-yocto。
一旦执行$ bitbake core-image-base
,内核源文件将被解压缩,然后目标dtsi文件位于poky/build/tmp/work/aarch64-poky-linux/linux-libc-headers/4.12-r0/linux-4.12/arch/arm64/boot/dts/arm/juno-base.dtsi
我要修补的自定义元数据文件如下:
- poky/meta-custom/precipes kernel/linux/linux-yoct_4.12.bbappend
- poky/meta custom/recipes kernel/linux/files/juno-base.dtsi.patch
# poky/meta-custom/recipes-kernel/linux/linux-yocto_4.12.bbappend
FILESEXTRAPATHS_prepend := "${THISDIR}/files"
SRC_URI += "file://juno-base.dtsi.patch"
但在bitbake之后,补丁文件在poky/build/tmp/work/qemuarm64-poky-linux/linux-yocto/4.12.28+gitAUTOINC+2ae65226f6_e562267bae-r0/juno-base.dtsi.patch
中创建,并且补丁应用程序无法在中工作
我不知道怎么了,该怎么办。。。请告诉我该怎么办?
要为Yocto配方源创建一个简单的补丁,可以用一种简单的方式使用git命令:
您的Linux工作目录是:
poky/build/tmp/work/qemuarm64 poky linux/linux yocto/4.12.28+gitAUTOINC+2ae65226f6_e562267bae-r0
正如你所看到的,它已经是一个";git";目录,这意味着它已经用git初始化了。
以下是您理解方法的明确步骤:
在将你的补丁(juno-base.dtsi.patch(添加到SRC_URI后,我认为你的linux yocto工作目录一团糟,所以请关注我:
-
清理构建
bitbake-linux-yocto-c清理状态
-
从SRC_URI 中删除修补程序
-
应用任何默认补丁
bitbake-linux-yocto-c补丁
-
转到
poky/build/tmp/work/qemuarm64 poky linux/linux yocto/4.12.28+gitAUTOINC+2ae65226f6_e562267bae-r0
- 在上进行修改
poky/build/tmp/work/qemuarm64 poky linux/linux-yocto/4.12.28+gitAUTOINC+2ae65226f6_e562267bae-r0/arch/arm64/boot/dts/arm/juno-base.dtsi
且不在中
poky/build/tmp/work/arch64 poky linux/linux-libc headers/4.12-r0/linux-4.12/arch/arm64/boot/dts/arm/juno-base.dtsi
- 现在,打开一个终端并将目录更改为
poky/build/tmp/work/qemuarm64 poky linux/linux yocto/4.12.28+gitAUTOINC+2ae65226f6_e562267bae-r0
- 运行:git status(您应该看到类似于:modified arch/arm64/boot/dts/arm/juno-base.dtsi(
- 运行:git-arch/arm64/boot/dts/arm/juno-base.dtsi
- 运行:git commit-m"用于juni-base-dtsi的补丁">
- 运行:git格式补丁-1
现在创建一个名为";用于juni-base-dtsi.Patch的补丁";,现在您可以将其添加到linux-octo_%.bbappend:
SRC_URI_append="file://Patch-for-juni-base-dtsi.patch">
如果dtsi不存在,并且您想将其作为补丁添加,请在运行"git状态";您将看到一个新添加的文件,用";git add"并继续执行命令。
完成所有这些之后,您可以使用继续构建过程
bitbake linux-yocto -C patch
或者,如果将补丁添加到SRC_URI,那么linux yocto构建将从do_fetch开始。