制作linux内核补丁,patch文件

1.copy内核代码到一个干净的linux系统目录下,比如系统压缩文件为:thd_linux_3.12.17.tar.gz

2.解压系统thd_linux_3.12.17.tar.gz,tar -zxvf thd_linux_3.12.17.tar.gz;解压系统后将系统文件夹重新命名为thd_linux_3.12.17_org

3.解压系统thd_linux_3.12.17.tar.gz,tar -zxvf thd_linux_3.12.17.tar.gz;解压系统后将系统文件夹重新命名为thd_linux_3.12.17_new

4.打补丁之前应该明白之前有人打过补丁才对,如果之前没人打过补丁则跳过这一步。

先找到之前打的补丁文件即patch文件,将这个补丁文件中的代码修改项修改到thd_linux_3.12.17_new,修改命令如下:

cd thd_linux_3.12.17_new

patch -p1 < $(KERNELPATCHFILE)

$(KERNELPATCHFILE)这个是旧的patch补丁文件的包含文件名的完整路径。patch命令和后面的diff命令都是linux系统自带命令。

5.将新增的内核代码(即需要修改的代码)添加到thd_linux_3.12.17_new文件夹下。可以采用比较工具移动就行。此时thd_linux_3.12.17_new中保存的就是和thd_linux_3.12.17_org存在区别的代码了。

6.制作补丁文件,命令如下:

diff -Naur thd_linux_3.12.17_org/  thd_linux_3.12.17_new > des.patch;

7.将旧的patch文件修改名字为temp.patch,并将新的patch文件名修改为和旧的一致。

注意:编译的时候可能会有些报错,这时候可以比较一下旧的patch文件和新的patch文件,可能是

diff -Naur thd_linux_3.12.17_org/  thd_linux_3.12.17_new des.patch;这个命令的路径问题;

 

你可能感兴趣的:(linuxc)