How-To : Recompiling Linux Kernel

LastUpdate - 06 / 03 / 2005 By DarkRanger .

環境 :

Fedora Core 3

Kernel = 2.6.9-1.667 & 2.6.10-1.770


1. 安裝 Kernel 原始碼

以下提供一個快速重編 Linux Kernel ( 核心 ) 的方法 : 首先以 Fedora Core 來說  , DR 建議使用 Fedora 的 SRPM 來安裝 , 而安裝方式如下 :

# rpm -ivh kernel-2.6.10-1.770_FC3.src.rpm
# rpmbuild -bp --target=noarch  /usr/src/redhat/SPECS/kernel-2.6.spec

如此一來就會產生像下面這樣的路徑 :

/usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10/

2. 設定 Kernel

接下來的步驟也很簡單 , 跟著做即可 :

# cd /usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10/
# make mrproper ( 去除編譯過的檔案 - 很重要, 每次重編時都要記得做 )

Kernel 的設定檔是放在 /usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10/.config , 如果將舊 Kernel的設定檔覆蓋上去 , 你可以執行下列指令來對 Kernel 的新增元件做設定 :

# make oldconfig

設定 Kernel 的工具有下列 :

# make config ( 文字介面 )
# make menuconfig ( 文字樣式的圖形介面 )
# make gconfig ( GTK 圖形介面 )
# make xconfig ( Qt 圖形介面 - 建議使用 )

Xconfig 的樣式如下 :

ppp

注意 : 你可以在設定工具中另存 / 讀取設定檔 , 這裡有提供一個 DR 自己做的AMD K7 平台設定檔下載 .

3.編譯 & 安裝 Kernel

依序執行下列指令 :

# make all ( 需花一段時間 )
# make modules_install
# make install

安裝完成後 , 新 Kernel 的開機選項應該會寫入 /boot/grub/grub.conf 裡 .

4. 執行 & 測試 新 Kernel .

重開機後選新 Kernel 即可 , 如果新 Kernel 在使用上有問題  , 就使用舊 Kernel 進入系統並重新編輯 , 然後非 Kernel 內建的驅動程式要記得重灌 ( 例如 NVIDIA 驅動程式 ) , 還有一點 , /usr/src/redhat 底下的檔案必須留著 (安裝 module 會用到 )  .

5. 移除 Kernel .

通常自訂 Kernel 只要留一個就好了 , 所以當你安裝了一個更新的自訂 Kernel 後 , 就可以考慮把舊的移除掉了 , 例如以下的檔案與目錄 :

/lib/modules/2.6.10-prep
/boot/initrd-2.6.10-prep.img
/boot/System.map-2.6.10-prep
/boot/vmlinuz-2.6.10-prep


這個目錄底下的原始檔案也要記得移除掉 .

/usr/src/redhat

最後修改 /boot/grub/grub.conf 即可 .

參考網站 :

http://www.mjmwired.net/resources/mjm-kernel-fc3.shtml

http://linux.vbird.org

http://fedora.redhat.com


Back to DarkRanger.no-ip.org