内核补丁文件简介
/* diff表示差异点路径, -urN后面跟着原文件路径和新文件路径 */ diff -urN u-boot-2012.04.01/arch/arm/lib/board.c u-boot-2012.04.01_100ask/arch/arm/lib/board.c /* ---表示原代码路径及版本,+++表示新代码路径及版本 */ --- u-boot-2012.04.01/arch/arm/lib/board.c 2012-04-25 21:22:50.000000000 +0800 +++ u-boot-2012.04.01_100ask/arch/arm/lib/board.c 2012-06-16 09:56:16.529637486 +0800 /* -256,12表示原代码从256行开始,共12行这个范围要被改动 */ /* +256,14表示从256行开始,共14行为改动后的新代码 */ @@ -256,12 +256,14 @@ NULL, // 256,256 }; //257,257 //258,258 // -后面是原代码,+后面是改动后的代码,绿字表示原代码序号,红字表示修改后代码序号 -void board_init_f(ulong bootflag) //259 +unsigned int board_init_f(ulong bootflag) // 259 { //260,260 bd_t *bd; //261,261 init_fnc_t **init_fnc_ptr; //262,262 gd_t *id; //263,263 ulong addr, addr_sp; //264,264 + extern ulong base_sp; //265 + //266 #ifdef CONFIG_PRAM //265,267 ulong reg; //266,268 #endif //267,269
如何使用补丁文件
patch -p(n) < /xxx/xxx.patch
/xxx/xxx.patch 是内核补丁文件的路径;
-p(n)表示忽略补丁文件差异项路径的第n个“/”前面的路径,这是因为补丁中的文件路径往往和我们本地实际操作的路径不一样,该选项方便我们修改路径;
例如我们当前已经在”u-boot-2012.04.01“这个目录下:
diff -urN u-boot-2012.04.01/arch/arm/lib/board.c u-boot-2012.04.01_100ask/arch/arm/lib/board.c
// 红字部分为待修改代码路径
添加选项 -p1:
diff -urN u-boot-2012.04.01/arch/arm/cpu/u-boot.lds u-boot-2012.04.01_100ask/arch/arm/lib/board.c
//第一级目录被忽略