第一步:下载内核源码:

      wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.gz

然后解压进入到解压后的目录

   # tar -zxvf linux-2.6.29.tar.gz

   # mv linux-2.6.29 /usr/src/linux-2.6.29

  # cd /usr/src/linux-2.6.29

第二步:开始编译


 清理以前的编译痕迹

如果内核源码是刚解压缩出来的,可以跳过这一步,否则执行以下两条命令:


make mrproper

2

make clean

 设置内核编译选项

命令如下:


1


cp /boot/config-`uname -r` .config

2

make menuconfig

执行该命令需要ncurses库,如果执行出错则执行如下命令安装ncurses:


1

yum install ncurses-devel

编译内核压缩镜像


1

make bzImage

编译会生成bzImage文件,对应于/boot目录下的vmlinuz文件,是压缩过的内核文件。启动加载时将该文件解压缩到内存中之后才能执行操作系统。

编译内核模块


1

make modules

内核在运行过程中,除需要内核文件之外,还需要加载一些外围模块(例如驱动程序)等才能运行。

 安装内核模块


1

make modules_install

安装上一步中编译的内核模块,一般都会安装到/lib/modules目录下。

安装内核


1

make install

这句命令很简单,它会在/boot目录下生成vmlinux/System.map两个文件,并且在/boot/grub目录中生成menu.lst文件。有关menu.lst文件的修改方法请Google一下。

注:要是遇到找不到内核模块的错误,执行以下两个命令

cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.29.1

cp System.map /boot/System.map-2.6.29.1


启动新的内核

修改/boot/grub/menu.lst文件,将新生成的默认启动项修改为刚生成的启动项,重启即可:


1

reboot