天天看點

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儲存設定,如下圖所示:

linux 編譯核心

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

三  開始編譯

主要包括以下幾步操作。

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

檔案内容如下圖所示:

linux 編譯核心

可見,boot loader已經可以加載兩種版本的核心了,在該檔案中可以很容易修改一些資訊,如預設加載的核心版本,引導程式停留時間,修改核心在引導界面的名稱等等。

重新啟動機器,可以看到,此時在引導界面可以有兩種版本的核心進行選擇了,如下圖所示。

我們選擇linux-2.4.22,也就是剛剛編譯好的核心,正常進入後可以通過/proc/version檔案以确定目前啟動的核心版本确實為2.4.22,指令如下

                      cd /proc

                      vi version

version檔案内容如下:

可見,核心編譯成功!

注:

初次練習時,可以在虛拟機上進行,如VMware (推薦)或者virtual PC, 以免造成系統崩潰。

出自 51CTO.COM部落格

繼續閱讀