1. 下載內核源代碼
apt-cache search linux-source
其中顯示的有:linux-source-2.6.20, 沒有和我的內核版本完全匹配,不過也沒關系,直接下載就可以了:
apt-get install linux-source-2.6.20
2. 下載後,在/usr/src/ 目錄下有壓縮包解壓
tar -jxvf linux-source-2.6.20.tar.bz2
3 配置,編譯內核
進入/usr/src/linux--source-2.6.20 目錄下,可以看到Makefile 文件,它包含了整個內核樹編譯信息。該文件最上面四行是關於內核版本的信息。對於整個Makefile 可以不用做修改,采用默認的就可以了。
4.make menuconfig
重新配置,選項很多,一時也搞不清楚狀況
主要是保證內核啟動模塊可動態加載的配置
Loadable module support ----->
下的默認就行拉,可以看到已經支持模塊加載編譯內核image
5.make
可以看點內核編譯選項的介紹,要等一個小時左右
6.make bzImage("I" 大寫) 然後編譯模塊
7.make modules
8.make modules_install
make install 一切就緒後,查看/boot/ 下已經有vmlinuz-2.6.20.3 了,但是沒有對應的initrd.img 。查了查資料,要mkinitrd.
可是竟然沒有這個命令,又少了東西
apt-get install initrd-tools 安裝initrd-tools 然後執行
mkinitrd -o /boot/initrd.img.2.6.20.3 /lib/modules/2.6.20.3 生成新的initrd.img
9. 再修改 /boot/grub/menu.lst 用新的內核啟動
title gnuser,:)
root (hd0,1)
kernel /boot/vmlinuz-2.6.20.3 root=/dev/sdb1 ro quiet splash
initrd /boot/initrd.img-2.6.20.3
savedefault
boot
重啟後,成功進入新配