歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 將CentOS 5.4內核升級到2.6.38.5

將CentOS 5.4內核升級到2.6.38.5

日期:2017/2/28 16:15:30   编辑:Linux教程

Linux內核升級是學習內核的基本條件。如果自已編譯的內核跑不起來,那談linux內核學習就是鏡花水月了。其實網上有很多相關的

內核編譯升級教程。我這個純粹是多余的,但是為什麼很多同志升級還是老失敗呢?其實網上有很多教程,撞到相關的問題問一下

google或百度就基本是可以解決的。雖然網上的解決方法很多時候不是很好,但是要編譯成功並運行起來是沒有太大問題的。
好了,言歸正傳,把我的方法奉獻給大家吧。
首先我的linux是CentOS5.4版的,內核版本是2.6.18。其實linux內核的學習和linux發行版的關系不是太大,大家喜歡哪個版本都

沒問題。然後我是在WINDOWSXP上裝的vmware7,然後再在vmware上面安裝的cnetos。首先你要保證你的虛擬機上有gcc、makefile等

工具,如果沒有這些工具我們就編譯不了內核。如果你不是老手,對linux不是很熟你就直接按默認選項安裝就是了,裡包含這些基

本工具的,如果是玩過的同志,就可以定制一下。我是喜歡定制,要的東西就裝上,不要的東西就不裝。
我們先從www.kernel.org上下載一份源碼,本文下載的是目前最新穩定版的2.6.38.5 。地址如下:

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.5.tar.bz2

有了源碼後,我們就將源碼拷到我們的linux的/opt目錄下。我建議大家在裝linux的時候不要選擇裝虛擬機工具,即vmware_tools

。這會在我們後面的編譯中帶來不必要的麻煩。然後再執行解壓縮:
tar jxf linux-2.6.38.5.tar.bz2 //解壓內核
cd linux-2.6.38.5 //進入解壓後的目錄
cp /boot/ config-2.6.18-164.el5 .config //將默認的內核配置文件拷貝過來
make menuconfig //進入的內核配置的界面
保存退出
然後手工打開.config文件
查找# CONFIG_SYSFS_DEPRECATED is not set並將其改為CONFIG_SYSFS_DEPRECATED
保存退出
打開腳本/sbin/mkinitrd
查找到函數:emit_modules。並在其中找到如下字符串:
emit "echo \"Loading $fullmodule module\""
emit "insmod /lib/$fullmodule $options"
找到後改成下面這個樣子:
#add by wwhs for kernel modules load error
if [ "$fullmodule" != "dm-region-hash.ko" ] ; then
if [ "$fullmodule" != "dm-mirror.ko" ] ; then
emit "echo \"Loading $fullmodule module\""
emit "insmod /lib/$fullmodule $options"
fi
fi

接下來就可以進入我們經常用的一堆內核編譯命令了:
cd /opt/linux-2.6.38.5
make
make modules_install
make install
在網上看見有很多同志加了一堆make dep什麼的,其實是不需要的,你從內核官網上拿下來的是很干淨的並且是2.6版的代碼,沒必

要加一些針對於2.4版或者是不干淨代碼的步驟。

Copyright © Linux教程網 All Rights Reserved