添加一个kernel选项
Lmouse
参考文档:google,鸟哥的linux私房菜基础学习篇第三版
1 准备:
CentOs 5.4(或其他linux机器)
Linux2.6.27.59源码(www.kernel.org)
2 源码处理
2.1解压源码
#tar –jxvf linux linux-2.6.27.59.tar.bz2 –C /usr/src/kernels
#cd /usr/src/kernels
2.2 源码清除
# make mrproper(第一次编译)
# make clean(重复编译)
2.3 源码配置
#make menuconfig
可以参考主机上的/boot/configxxx文件,这里直接复制了/boot下的config文件用来编译。
2.4源码编译
2.4.1 编译核心
#make bzImage
完成之后在./arch/x86/boot里面生成bzImage
2.4.2 编译模块
#make modules
2.4.3 模块安装
#make modules\_install
完成之后在/lib/modules/生成2.6.27.59 
2.5 制作initrd
#mkinitrd –v /boot/initrd-2.6.27.59.img 2.6.27.59
红色部分需要和/lib/modules/下对应的内核模块文件夹名字相同。
3 新内核启动所需文件管理
3.1 拷贝bzImage
#cp /usr/src/kernels/linux-2.6.27.59/arch/x86/boot/bzImage /boot/vmlinuz-2.6.27.59
3.2 initrd
Initrd文件已经在2.5的步骤中做好并放在/boot目录下
4 grub管理
#vi /boot/grub/grub.conf
在文件的末尾添加下面内容(给予CentOs5.4,其他版本linux可能有所不同)
title Mouses' kernel (2.6.27.59)
root (hd0,0)
kernel /vmlinuz-2.6.27.59 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.27.59.img
5 用2.6.32.43内核编译时候发现的几个注意点
注意1,在用2.6.32.43编译内核,启动的时候报错:insmod: error inserting ‘/lib/dm-region-hash.ko’
解决方法如下:
1,解压initrd文件
[root@bogon ~]# cp /boot/initrd-2.6.30.4.img /tmp
[root@bogon ~]# cd /tmp/
[root@bogon tmp]# ls
initrd-2.6.30.4.img
[root@bogon tmp]# mkdir newinitrd
[root@bogon tmp]# cd newinitrd/
[root@bogon newinitrd]# zcat ../initrd-2.6.30.4.img |cpio -i
11537 blocks
释放之后看到如下内容
[root@bogon newinitrd]# ls
bin dev etc init lib proc sbin sys sysroot
2下边就是编辑init,删掉其中重复的四行中的两行
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
3,重新打包initrd
[root@bogon newinitrd]# find .|cpio -c -o > ../initrd
11538 blocks
[root@bogon newinitrd]# cd ..
[root@bogon tmp]# gzip -9 < initrd > initrd.img
[root@bogon tmp]# ls
initrd-2.6.30.4.img initrd initrd.img newinitrd
好了,initrd.img就是重新打包的initrd了,然后把initrd.img拷贝到/boot,更改grub.conf里边的initrd-2.6.30.4.img为initrd.img就可以了, 这样“insmod: error inserting ‘/lib/dm-region-hash.ko’ : -1 File exists” 就不会有了
注意2:在用2.6.32.43内核源码编译的时候发现一个问题,就是 
[*]Create deprecated sysfs layout for older userspace tools(NEW)
这个选项在该版本内核源码中没有。后来用2.6.27.59的源码编译,有这个选项并把它选上,编译之后启动就没问题。
注意3(同2)
setuproot: moving /dev failed: No such file or directory
解决方法:
修改.config
CONFIG_SYSFS_DEPRECATED_V2=Y
然后重新编译即可。