如要建立一個自訂的核心,請遵照以下步驟(以 root 身份執行所有步驟):
![]() | 請注意 |
---|---|
這個例子使用 2.4.21-1.1931.2.399.ent 當作核心的版本(核心版本也許會不同),如要得知核心版本請輸入 uname -r 指令,並以所傳回的核心版本取代 2.4.21-1.1931.2.399.ent。 |
開啟一個 shell 提示符號並轉換至 /usr/src/linux-2.4/ 目錄,在此以後的所有指令都必須在這個目錄中執行。
在狀況明瞭的原始碼目錄樹中開始核心的建立是很重要的,因此建議您先執行 make mrproper 指令以移除散佈在目錄樹中任何之前的建立所遺留下的設定檔案。 假如一個既有的設定檔案存在於 /usr/src/linux-2.4/.config,請在執行這個指令前將之備份到另一個目錄,然後在完成後再將之複製回來。
建議您使用預設的 Red Hat Enterprise Linux 核心的設定當作一個起點,請從 /usr/src/linux-2.4/configs/ 目錄複製適用系統主機架構的設定檔案到 /usr/src/linux-2.4/.config。 假如系統擁有一個以上的處理器,請複製含有 smp 關鍵字的檔案,假如系統中擁有超過 4GB 的記憶體,也請您複製含有關鍵字 hugemem 的檔案。
下一步便是自訂您的設定,建議您使用 make menuconfig 指令來執行 Linux Kernel Configuration 程式,您並不需要 X 視窗系統
在完成設定後,請選取 Exit 再選取 Yes 來儲存新的 核心設定檔案(/usr/src/linux-2.4/.config)。
即使對任何的設定都沒有做變更,在繼續之前務必要執行 make menuconfig 指令 (或者是用來做核心設定的其中一種方法)。
其他用作核心設定的方法有:
make config — 一個互動式的文字模式程式,元件是以線性的格式呈現,並且一次只能操作一個。 這個方法並不需要 X 視窗系統,而且不允許您改變之前問題的答案。
make xconfig — 這種方法需要 X 視窗系統與 tk 套件。 並不建議您使用這個方法,因為它無法可靠地解析(parse)設定檔案。
make oldconfig — 這是一種讀取既有設定檔案 (.config) 的一個非互動式程式碼,而且只會對之前不存在的任何新問題提示要求答案。
![]() | 請注意 |
---|---|
如要使用 kmod 與核心模組,請在設定過程中回答 Yes 給 kmod support 與 module version (CONFIG_MODVERSIONS) support。 |
在建立 /usr/src/linux-2.4/.config 檔案之後,請使用 make dep 指令來正確地設定相依性。
使用 make clean 指令來準備原始碼目錄以便建立。
建議您使用一個不同的版本號碼在自訂的核心上,以免既有的核心被覆寫。 這裡描述的方法是用來回復不幸事件的最簡單方式。 至於其他的方法,您可以在以下的網站中: http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html 或在 /usr/src/linux-2.4/ 目錄下的 Makefile 檔案中找到。
預設狀況下,/usr/src/linux-2.4/Makefile 附加 custom 在以 EXTRAVERSION 開頭的該行最後面。 藉由附加這個字串將使得系統同時擁有已運作中的舊核心與新的核心(版本 2.4.21-1.1931.2.399.entcustom)。
假如系統中含有一個以上的自訂核心,最好在後面加上一個日期(或其他的標識符)。
對於 x86、AMD64 與 Intel® EM64T 等主機架構,請使用 make bzImage 建置核心,至於 Itanium 主機架構, 請使用 make compressed,對於 S/390 與 zSeries 主機架構,請使用 make image 來建置核心,至於 iSeries 與 pSeries 主機架構,請使用 make boot 來建置核心。
建立使用 make modules 所設定的任何模組。
使用 make modules_install 指令來安裝核心模組(即使並沒有真正建立任何東西),請特別注意指令中的底線符號(_)。 這將會安裝核心模組到 /lib/modules/<KERNELVERSION>/kernel/drivers/ 目錄中(這裡的 KERNELVERSION 就是 Makefile 中所指定的版本)。 在這個例子中,應該是 /lib/modules/2.4.21-1.1931.2.399.entcustom/kernel/drivers/。
使用 make install 以複製新的核心與相關的檔案到適當的目錄中。
除了安裝核心檔案到 /boot 目錄,這個指令也執行 /sbin/new-kernel-pkg 命令稿來建立一個新的 initrd 映像檔,並且在開機管理程式的設定檔案中加入一個新的紀錄。
假如系統有一張 SCSI 控制卡,而且 SCSI 驅動程式已被編譯為一個模組,或者核心已被建立含有 ext3 的模組支援(Red Hat Enterprise Linux 中的預設值),您便需要這個 initrd 映像檔。
即使都已經完成 initrd 映像檔與開機管理程式的修改,請再一次確認設定都是正確的,並且記得使用自訂的核心版本(而不是 2.4.21-1.1931.2.399.ent)。 請參考 第 39.5 節 與 第 39.6 節 以取得關於確認這些修改的指示。