centos5.1下編譯Linux內核

整理了一下Linux內核編譯的方法,原始內核版本爲Linux-2.6.18.8,新內核版本爲Linux-2.6.26,其它內核版本編譯方法類似。

一 準備工作
首先當然是獲得內核了,可以到http://www.kernel.org/下載。

獲得內核壓縮包後(假設爲Linux-2.6.26.tar.gz),先將其複製到/usr/src目錄下,然後轉到/usr/src目錄並進行解壓操作,命令如下(假設當前目錄爲內核包所在目錄)

cp Linux-2.6.26.tar.gz /usr/src
cd /usr/src
tar -zxvf Linux-2.6.6.tar.gz

二 生成編譯所需要的配置文件
首先進入解壓後的內核文件,命令如下
cd /usr/src/Linux-2.6.26

然後輸入make menuconfig,可以調出內核配置界面,在該界面上可以以圖形的方式生成編譯內核所需要的配置文件,非常方便!

到此,所有準備工作完畢,下面進入實際編譯階段了。

三 開始編譯
主要包括以下幾步操作。
1.輸入make dep,這行命令的意思是讓系統對內核代碼進行預處理。
2.輸入make bzlmage後開始編譯,可能需要比較長的時間完成該過程,視具體機器性能而定。
3.輸入make modules開始編譯模塊
4.輸入make modules_install開始安裝模塊
5.輸入make install將編譯好的內核進行安裝。
一般來說,以上過程不會遇到什麼異常情況

四.編譯完成
編譯完成後的內核是這個文件
/usr/src/Linux-2.6.26/arch/i386/boot/bzlmage

五.修改啓動程序配置以及新內核的啓動
編譯完成後可以進入引導程序(boot loader)的配置文件看看,對於不同的引導程序(LILO和GRUB),其配置文件所在路徑不同。

對於LILO,路徑爲:/etc/lilo.conf

對於GRUB,路徑爲:/boot/grub/menu.lst

本系統爲GRUB引導,因此進入/boot/grub/menu.lst,命令如下

cd /boot/grub
vi menu.lst

centos下自動已經爲你配置好了啓動項

重新啓動後可以看見,boot loader已經可以加載兩種版本的內核了,在該文件中可以很容易修改一些信息,如默認加載的內核版本,引導程序停留時間,修改內核在引導界面的名稱等等。

重新啓動機器,可以看到,此時在引導界面可以有兩種版本的內核進行選擇了。我們選擇Linux-6.26,也就是剛剛編譯好的內核,正常進入後可以通過/proc/version文件以確定當前啓動的內核版本確實爲2.6.26,命令如下

cd /proc
vi version

可見,內核編譯成功!

注:在開始時,我們可以在虛擬機上進行,如VMware (推薦)或者KVM, 以免造成系統崩潰。

 

準備工作:

要成功地創建一個內核,需要安裝下列組件:

yum groupinstall “Development Tools”  #這樣做會確定你擁有編譯時所需的一切工具。
yum install ncurses-devel  #這樣才能讓 make *config 這個指令正確地執行。
yum install qt-devel  #如果你用 make xconfig 而不是 make gconfig 或 make menuconfig,才需要這樣做。

YUM命令:

Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE、CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

安裝軟件(以foo-x.x.x.rpm爲例):yum install foo-x.x.x.rpm

刪除軟件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm

升級軟件:yum upgrade foo或者yum update foo

查詢信息:yum info foo

搜索軟件(以包含foo字段爲例):yum search foo

其它參數參見man yum

  

  

發佈了8 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章