整理了一下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