Linux内核补丁与补丁的安装


内核补丁不是一定需要的,这要看你选择的是怎样的Linux内核,比如下载下来标准的Linux内核,想要编译linux系统在x86的PC机上运 行,就根本不用什么板间支持的补丁了,因为标准Linux内核本身基于x86平台测试。而如果使用Embedix内核,开发板是PPC体系的,内核可能本 身已经支持PPC,也不需要安装补丁了。但嵌入式系统往往工作在不同的特定目标板上,如arm,这就需要使linux内核扩展对目标体系的支持了。

常见的如arm板,下载了标准Linux内核是不够的,还要从arm linux的相关站点下载相应版本的补丁,标准内核安装了补丁后才能正确配置,对目标体系支持。如linux-2.4.18.tar.bz2内核,打补丁 patch-2.4.18-rmk7.bz2就跟整合了的源码包linux-2.4.18-rmk7.tar.bz2一样了,是一个armlinux系统 内核了。而如果需要扩展对m68k芯片的支持,就需要m68k的补丁了。

补丁的安装方法可以参考man patch的说明,我总结自己常用的方法如下:

1、 patch应用的方法是进入内核目录后#patch -p1 < patch文件的位置,注意<前后都有一个空格,如:

# bunzip2 patch-2.4.18-rmk7.bz2把patch-2.4.18-rmk7.bz2解压成patch-2.4.18-rmk7(覆盖了原压缩文件)

把patch-2.4.18-rmk7移动到内核解压目录linux中。
# mv patch-2.4.18-rmk7 linux/

进入linux目录
# patch -p1 < patch-2.4.18-rmk7

得到

……
patching file net/irda/iriap.c
patching file net/irda/irlan/irlan_common.c
patching file net/irda/irlap_event.c
patching file net/irda/irlap_frame.c
patching file net/irda/irttp.c
patching file net/sched/Config.in

成功应用补丁。

2、把解压的补丁(不用解压)移动到解压的内核目录中,执行# bzip2 -dc patch-2.4.18-rmk5.bz2 | patch -p1

相关内容