最近一段时间一直在学习编译linux2.6内核直到今天终于编译成功了,把期间经历的快乐过程写出来跟大家一起分享。
首先需要确认机子上安装了gcc等编译工具,还有一个就是一定要确认安装了initrd-tools工具,里面有一个很重要的命令mkinitrd(我就是由于没有装initrd-tools而导致第一次编译的失败,然后上网查找原因才知道要用mkinitrd -o /boot/initrd.img-2.6.19 /lib/modules/2.6.19(针对我的内核系统))
1、sudo make menuconfig配置内核选项,根据自己的要求来选,里面选项很多,慢慢选择。然后可以保存一个文件名,在/boot目录下可以看到,我得为config-2.6.19
2、sudo make,从2.6内核开始直接执行make就可以了,在Makefile文件中把代码的依赖关系都做好了。也不用在象以前bzImage这样的编译方式或独立的编译模块了。
3、sudo make modules_install这样内核就编译好了,可以到/boot目录下看生成的vmlinuz-2.6.19,System.map-2.6.19文件以及/lib/modules/下新内核的文件2.6.19
4、执行sudo mkinitrd -o /boot/initrd.img-2.6.19 /lib/modules/2.6.19生成initrd.img-2.6.19引导文件。
5、修改grub(我得机子装的是grub启动方式)sudo vim /boot/grub/menu.list
把kernel和initrd改为刚才新生成的就可以了,这样重新启动系统进入新内核体验一下吧。