linux 編譯內核

整理了一下Linux內核編譯的方法,原始內核版本爲Linux-2.4.20.8,新內核版本爲Linux-2.4.22,其它內核版本編譯方法類似。
一 準備工作
首先當然是獲得內核了,可以到[url]http://www.kernel.org/[/url]下載。
獲得內核壓縮包後(假設爲linux-2.4.22.tar.gz),先將其複製到/usr/src目錄下,然後轉到/usr/src目錄並進行解壓操作,命令如下(假設當前目錄爲內核包所在目錄)
                cp linux-2.4.22.tar.gz /usr/src
                cd /usr/src
               tar -zxvf  linux-2.4.22.tar.gz
二 生成編譯所需要的配置文件
首先進入解壓後的內核文件,命令如下
              cd /usr/src/linux-2.4.22
然後輸入make menuconfig,可以調出內核配置界面,在該界面上可以以圖形的方式生成編譯內核所需要的配置文件,非常方便!
下圖是它的主界面
一般選擇默認值即可,即按Esc鍵退出,選擇yes保存設置,如下圖所示:
到此,所有準備工作完畢,下面進入實際編譯階段了。
三  開始編譯
主要包括以下幾步操作。
1.輸入make dep,這行命令的意思是讓系統對內核代碼進行預處理。
2.輸入make bzlmage後開始編譯,可能需要比較長的時間完成該過程,視具體機器性能而定。
3.輸入make modules開始編譯模塊
4.輸入make modules_install開始安裝模塊
5.輸入make install將編譯好的內核進行安裝。
一般來說,以上過程不會遇到什麼異常情況
四.編譯完成
編譯完成後的內核是這個文件
    /usr/src/linux-2.4.22/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
文件內容如下圖所示:
可見,boot loader已經可以加載兩種版本的內核了,在該文件中可以很容易修改一些信息,如默認加載的內核版本,引導程序停留時間,修改內核在引導界面的名稱等等。
重新啓動機器,可以看到,此時在引導界面可以有兩種版本的內核進行選擇了,如下圖所示。
我們選擇linux-2.4.22,也就是剛剛編譯好的內核,正常進入後可以通過/proc/version文件以確定當前啓動的內核版本確實爲2.4.22,命令如下
                      cd /proc
                      vi version
version文件內容如下:
可見,內核編譯成功!
 
注:
初次練習時,可以在虛擬機上進行,如VMware (推薦)或者virtual PC, 以免造成系統崩潰。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章