练习:给uboot打补丁

//u-boot-1.1.6.tar.bz2为源文件,XX-patch为补丁文件(补丁文件一般以patch结尾)

步骤:

  1.tar xvf u-boot-1.1.6.tar.bz2
  2.ls;cd u-boot-1.1.6;ls
  3.查看补丁要打到哪个文件中(在patch中会有说明),vim u-boot-1.1.6_jz2440.patch

diff -urN u-boot-1.1.6/board/100ask24x0/100ask24x0.c u-boot-1.1.6_jz2440/b      oard/100ask24x0/100ask24x0.c
--- u-boot-1.1.6/board/100ask24x0/100ask24x0.c  1970-01-01 07:00:00.000000      000 +0700
+++ u-boot-1.1.6_jz2440/board/100ask24x0/100ask24x0.c   2010-11-26 12:54:3      7.034090906 +0800

---代表原文件的内容,+++代表修改后的内容,补丁要打到diff的下一行---"u-boot-1.16/board/100ask24x0/100ask24x0.c"里面

 1539 @@ -34,6 +34,8 @@
 1540  DECLARE_GLOBAL_DATA_PTR;
 1541 
 1542  #if (CONFIG_COMMANDS & CFG_CMD_LOADB)
 1543 +/* support xmodem, www.100ask.net */
 1544 +static ulong load_serial_xmodem (ulong offset);
 1545  static ulong load_serial_ymodem (ulong offset);
 1546  #endif
 1547 
 1548 @@ -53,355 +55,355 @@
 1549  #if (CONFIG_COMMANDS & CFG_CMD_LOADS)
 1550  int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])

第1539行的意思是从34行开始,总共6行,(1540,1541,1542,1545,1546,1547)被加上有加号的两行,所以从34行开始,共(8行)->(1540-1557),即加上1543,1544有加号的这两行!


  4.查看当前目录,pwd,假如当前目录在XX/u-boot-1.1.6当中

  5.打补丁:命令:patch -p1 < ../XX-patch 即可,(参数-p,因为当前目录XX/u-boot-1.1.6,而且刚刚查看了要打入补丁的文件了,所以-p用来忽略第一个“/”目录,假如在再进一级的目录里面则需要-p2,不用忽略的放话就直接是-p0)

  6.打补丁完成