buildroot --- 打 patch

 生成 .patch 文件

diff -Naur a/ b/ > xxx.patch

 使用 .patch 文件打补丁

patch -p1 < xxx.patch   # -p1 表示忽略补丁文件内路径的第一个文件夹,-p0 则表示直接使用补丁文件内完整路径查找文件

 撤销打过的补丁

patch -p1 -R < xxx.patch

buildroot 支持的3种常规打补丁方式及其顺序

推荐的常规打补丁方式 - package需要编译时下载

使用第三种方式,把补丁放在 buildroot 之外的路径,路径通过 buildroot 的 make menuconfig 赋值到变量 BR2_GLOBAL_PATCH_DIR

以下是对 strace 打补丁,采用方式2和方式3

推荐的常规打补丁方式 - package 在本地,buildroot 外部 package

 在 .mk 文件中添加

define SWT6652X_PRE_BUILD_CMDS
    $(APPLY_PATCHES) $(@D) $(@D)/ \000*.patch
endef
SWT6652X_PRE_BUILD_HOOKS += SWT6652X_PRE_BUILD_CMDS

通过执行脚本打补丁 - 非常规

buildroot 提供了一个打补丁的脚本,在 $BUILDROOT_DIR/support/scripts/apply-patches.sh,使用举例:

BUILDROOT_REMO_TOPDIR=/home/chenjinhe/Desktop/newVolume/RK3308/remo
# $BUILDROOT_DIR/support/scripts/apply-patches.sh $BUILDROOT_DIR $BUILDROOT_REMO_TOPDIR/utils/buildroot_patchs \*.patch;
                              buildroot根目录      patch存放目录      patch文件

这种方法可以实现 package 下载前对其打补丁,比如由于某些原因不能直接更换某个package的版本,可以打补丁更换为其他版本,再下载编译

 

posted @ 2024-06-26 11:10  流水灯  阅读(551)  评论(0)    收藏  举报