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 @   流水灯  阅读(269)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2021-06-26 openssl --- 生成证书
点击右上角即可分享
微信分享提示