1.安装必要的工具包
包有:libncurses5-dev(menuconfig需要的)和essential
sudo aptitude install build-essential bin86 kernel-package
sudo aptitude install libqt3-headers libqt3-mt-dev
sudo aptitude install make
sudo aptitude install gcc //即使已经安装了gcc最好也更新一下
另外,在终端输入 sudo mki 然后连按两次“Tab”键看一下终端是否显示
mkinitramfs mkisofs
这两个工具在编译内核时用来生成 *.img文件的,没有的话安装一下
第二步 下载内核
到www.kernel.org下载新内核到/home
下载的是linux-2.6.21.1.tar.bz2(原来的内核是2.6.21.1)
第三步 编译前的准备
察看当前内核的版本
uname -a
2.6.15-26-server
如果下载的内核版本和当前的内核版本一样的话:
cd /lib/modules
将其下的文件夹改名
同时将/boot下一些东西也要改,改了以后还要修改/boot/grub/menu.lst
比较麻烦,建议最好下载比当前已安装版本高的内核
解压linux-2.6.16.2.tar.bz2得到的linux-2.6.16.2文件夹放到/usr/src下
sudo ln -s linux-2.6.16.2 linux //如果该文件夹下已经有名为linux的链接请先把它改为linux.old
第四步 开始编译
cd /usr/src/linux //以下所有的工作都在/usr/src/linux下完成
sudo make mrproper //去除.o的已编译文件
sudo make menuconfig //用menuconfig的话还需要另外两个工具包支持,叫什么名字我忘了,Ncurses?或者用
sudo make xconfig
接下来你就慢慢配置吧,配置完以后保存(系统中保存的一份内核配置文件是在/usr/src/linux 下名为.config,你也可以自己在别的地方另存一份)
sudo make dep //也许系统会提示现在不必要进行make dep,那就下一步
sudo make clean //清除旧数据
sudo make bzImage //编译内核,bzImage是你给该新内核起的名字,将保存到/usr/src/linux/arch/i386/boot/下
sudo make modules //编译模块
sudo bzImage install //安装内核
sudo make modules_install //安装模块
sudo mkinitramfs -o /boot/initrd.img-2.6.16.2 2.6.16.2
安装完后/boot下将增加以下几个文件(用ls -l 查看)
lrwxrwxrwx 1 root root 19 Aug 18 14:33 System.map -> System.map-2.6.16.2
lrwxrwxrwx 1 root root 15 Aug 18 14:33 config -> config-2.6.16.2
-rw-r--r-- 1 root root 40323 Aug 18 14:33 config-2.6.16.2
-rw-r--r-- 1 root root 6775383 Aug 18 16:39 initrd.img-2.6.16.2
lrwxrwxrwx 1 root root 16 Aug 18 14:33 vmlinuz -> vmlinuz-2.6.16.2
给/boot/grub/menu.lst中添加一个新的启动项,如我的menu.lst增加了如下一段文字
title Ubuntu, kernel 2.6.16.2
root (hd0,0)
kernel /boot/vmlinuz-2.6.16.2 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.16.2
boot
jklyekai 于 2007-05-17 10:00:01发表:
:0L