内核编译步骤,基于CentOS 5.4.编译linux2.6.20内核
内核编译很多人都说要提前备份文件,我在编译之前没有备份,包括内核配置文件也没有备份,编译之后我发现不同内核都是分开的,互补影响,所以,从这点来看,其实没必要备份。当然,如果是新手不放心自己的水平,也可以备份一下相关文件。我没有备份过,这里就不说明了,免得说错了,误导大家。
1.编译之前需要安装一些必备的软件,比如 gcc,如果配置内核选择make menuconfig 方式的话,还需要安装 ncurses-devel软件,以保证make menuconfig指令正确执行。
2.有一种简单的方法,即用yum groupinstall “Development Tools”命令可以安装你在编译时需要的所有工具。然后再用 yum install ncurses-devel 命令安装ncurses.如果使用make xconfig命令配置内核的话,则需要安装qt-devel .使用命令 yum install qt-devel即可。我在配置过程中使用的是make menuconfig
3.准备好之后,就可以正式准备编译内核了。
4.首先,下载内核源码(www.kernel.org)并解压,如果是 .tar.bz2格式的话,使用命令 tar jxvf
解压,如果下载的内核源码文件是linux-2.6.20.tar.bz2 即使用命令tar jxvf linux-2.6.20.tar.bz2.
5.如果是修改了内核的源码,则需要在编译前将修改的文件保存到相应的目录下。
6.解压后,会产生一个linux-2.6.20的文件目录,进入该目录。
7.如果之前编译过内核,为了清除之前编译对本次编译产生影响,使用命令make mrproper作一下处理,然后再make clean清除掉原来编译的文件。接下来下来开始真正编译内核。
8.使用命令make,是编译整个内核,包括模块,如果想单独编译内核部分,暂时不编译模块,则需要使用命令make bzImage.为了简单,直接使用make搞定。
9.编译完成后,需要加载模块,使用make modules_install.(如果前面使用了make bzImage 命令,还需要单独编译模块,因此在加载模块前需要先编译模块,命令make modules.)
10.模块加载之后,还需加载整个内核,命令make install
11.如果整个过程没什么错误,此时可以重新启动电脑,选择新的内核进行启动。(即使编译过程没错误,也不能说明内核一定编译成功,有时候会出现启动失败,这是正常的)
前面是具体分析,总结起来,内核编译步骤如下:(以2.6.20内核为例)
1.安装编译所需软件
2.解压内核 tar jxvf linux-2.6.20.tar.bz2
3.解除旧核 make mrproper
4.清除旧核make clean
5.配置内核 make menuconfig
6.编译内核 make
7.加载模块 make modules_install
8.加载内核 make install
总结:内核编译并不是很困难的事情,只要大家细心一点,还是很容易成功的。祝君成功!