我们修改了busybox的源码和配置文件,需要通过在buildroot package里面通过打patch的方式,并指定我们的配置文件进行编译;
1、制作patch方法说明
patch文件也叫补丁,就是一个文本文档,这个文档包含了在两个不同版本的源代码树之间的变化。补丁是通过diff应用程序来创建的。
Diff命令用法:
”-u”:表示在比较结果中输出上下文中一些相同的行,这有利于人工定位
“-r“:表示递归比较各个子目录下的文件
“-N“:将不存在的文件当作空文件
“-w“:忽略对空格的比较
“-B“:忽略对空行的比较
-a或——text:预设只会逐行比较文本文件;
patch生成方法:
将源码压缩包解压出两份后,分别将目录改成a、b,b为修改的部分,然后可以通过命令指定具体修改的文件生成patch文件:
diff -Naur a/xxx.h b/xxx.h > xxx.patch
修改文件较多时,也可以通过指定目录生成patch文件:
diff -Naur a/ b/ > xxx.patch
重定向后就可以生成最后需要的patch文件。将patch拷贝到对应目录即可。
2、让patch文件生效方法
将制作好的patch文件放在对应目录后重新执行make clean清空编译,再make编译,就会自动打好patch:
补丁被打上的效果:
3、打patch脚本文件
在package/Makefile.in中执行打patch的脚本support/scripts/apply-patches.sh如下:
APPLY_PATCHES = PATH=$(HOST_DIR)/bin:$$PATH support/scripts/apply-patches.sh $(if $(QUIET),-s)
4、打补丁的列表文件查看方法