当前位置: 代码迷 >> 综合 >> 为linux内核打补丁
  详细解决方案

为linux内核打补丁

热度:23   发布时间:2024-02-06 22:53:24.0

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,修改命令如下:

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;这个命令的路径问题;