原網址:http://www.ha97.com/2700.html
昨天偶去Linux內核網站(www.kernel.org)上逛時,發現最新的Linux Kernel穩定版已經是2.6.35.1,近來內核版本更新好快哦。下圖中的stable就是穩定版的意思:
于是決定找個時間編譯升級下CentOS 5.5的內核,CentOS 5.5所帶的內核還是2.6.18.x系列,有點老了。因為之前偶編譯過LFS與Gentoo,編譯內核有一些經驗了,所有這次還比較順利。本次編譯的系統是32位的,64位的稍有不同。下面的筆記在虛擬機與物理機中都驗證通過,所有操作全部以root權限在終端進行。
下面是本次編譯升級了到今天為止最新的穩定版內核2.6.35.1版的筆記總結:
編譯前的準備工作:
要成功地創建一個內核,需要安裝下列組件:
yum groupinstall “Development Tools” #這樣做會確定你擁有編譯時所需的一切工具。
yum install ncurses-devel #這樣才能讓 make *config 這個指令正確地執行。
yum install qt-devel #如果你用 make xconfig 而不是 make gconfig 或 make menuconfig,才需要這樣做。
1、下載新內核源碼包:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.1.tar.bz2
tar jxvf linux-2.6.35.1.tar.bz2
cd linux-2.6.35.1
2、下載內核標準配置文件:
wget http://www.ha97.com/code/config
mv config .config
3、編譯內核:
make dep
注:選擇編譯進去內核的模塊,默認回車即可。這一步如果系統時間不正確會提示“警告:檢測到時鐘錯誤。您的創建可能是不完整的。”的警告。解決方法:把時間改正確或者運行下面的命令再makefind . -type f -exec touch {} ;
make bzImage
make modules
make modules_install
make install
4、解壓修改內核:
cp /boot/initrd-2.6.35.1.img /tmp/
cd /tmp/
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.35.1.img |cpio -i
rm -fr /tmp/initrd-2.6.35.1.img
vim init
找到這2段一樣的,去掉其中1段重復的:
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
5、從新打包新內核:
find .|cpio -c -o > ../initrd
cd ../
gzip -9 < initrd > initrd-2.6.35.1.img
rm -fr /boot/initrd-2.6.35.1.img
cp initrd-2.6.35.1.img /boot
rm -fr /usr/src/linux-2.6.35.1.tar.bz2
rm -fr /usr/src/linux-2.6.35.1
6、設置從新內核啟動系統:
vim /boot/grub/grub.conf
把default=1改為default=0
7、重新啟動系統:
reboot
8、如圖所示,啟動成功,OK。