第一步、安装必要的工具
因为ubuntu下缺少编译内核所必须的一些软件包,所以首先要安装必要的包,不然就报错!
包有:libncurses5-dev(menuconfig需要的)和essential
lianxi1999@lianxi1999:~$sudo apt-get install build-essential bin86 kernel-package
lianxi1999@lianxi1999:~$sudo apt-get install libqt3-headers libqt3-mt-dev
lianxi1999@lianxi1999:~$sudo apt-get install make
lianxi1999@lianxi1999:~$sudo apt-get install gcc
另外,在终端输入 sudo mki 然后连按两次“Tab”键看一下终端是否显示
mkinitramfs mkisofs
这两个工具在编译内核时用来生成 *.img文件的,没有的话安装一下
第二步、下载内核
注意,下载的新内核应该比系统现在的内核版本高,查看当前内核版本:
lianxi1999@lianxi1999:~$ uname -r
2.6.22-14-generic
一般不建议在高版本的内核下编译低版本的内核。
到www.kernel.org下载新内核linux-2.6.22.19.tar.gz,解压到/usr/src/下。
建立到新内核源码的连接:
lianxi1999@lianxi1999:~$sudo ln -s linux-2.6.22.19 linux
如果该文件夹下已经有名为linux的链接请先把它改为linux.old
第四步、开始编译
lianxi1999@lianxi1999:~$cd /usr/src/linux
以下所有的工作都在/usr/src/linux下完成。
lianxi1999@lianxi1999:~$sudo make xconfig
可以使用其他的config,但务必确定已经安装所需软件包
接下来你就慢慢config吧,配置完以后保存(系统中保存的一份内核配置文件是在/usr/src/linux 下名为.config,你也可以自己在别的地方另存一份)
lianxi1999@lianxi1999:~$sudo make bzImage
bzImage是新内核的名字,将保存到/usr/src/linux/arch/i386/boot/下
lianxi1999@lianxi1999:~$sudo make modules
lianxi1999@lianxi1999:~$sudo make bzImage install
lianxi1999@lianxi1999:~$sudo make modules_install
lianxi1999@lianxi1999:~$sudo mkinitramfs -o /boot/initrd.img-2.6.22.19 2.6.22.19
第五步、完成安装
安装完后/boot下将增加以下几个文件(用ls -l 查看)
lrwxrwxrwx 1 root root 19 Aug 18 14:33 System.map -> System.map-2.6.22.19
lrwxrwxrwx 1 root root 15 Aug 18 14:33 config -> config-2.6.22.19
-rw-r--r-- 1 root root 40323 Aug 18 14:33 config-2.6.22.19
-rw-r--r-- 1 root root 6775383 Aug 18 16:39 initrd.img-2.6.22.19
lrwxrwxrwx 1 root root 16 Aug 18 14:33 vmlinuz -> vmlinuz-2.6.22.19
给/boot/grub/menu.lst中添加一个新的启动项,如我的menu.lst增加了如下一段文字
title Ubuntu, kernel 2.6.22.19
root (hd0,7) ##本行根据自己系统的实际情况添加
kernel /boot/vmlinuz-2.6.22.19 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.22.19
boot