2012-06-24

Linux Kernel 編譯前置的 make *config 分別

編譯 Kernel 是一件非常神聖,亦非常艱巨的任務
編譯 Kernel 前一大堆選項,若要認真選擇 Kernel 的功能
單是查看選項,都已經要一小時或以上,編譯也有機會用上一小時
即使譯編成功,更新新的 Kernel 也不代表重新開機後 Kernel 能夠正常運作
因此編譯 Kernel 前必須審慎選擇每一個項目

Kernel 的編譯主要是透過
1
make config
這指令進行
但 make config 這指令非常不人性化
它是以 shell script 一般的形式,以串連形式,逐項單行顯示,不能略過
而且選擇錯誤,必須由頭重選
由於選項達 300 多項 (由於科技進步,Kernel 的選項越來越多及複雜),緊按 ENTER 鍵,也要數分鐘才能完成
見下文

由於編譯 Kernel 大多時候都希望能繼承原來的 Kernel 上增加功能
因此可利用
1
make oldconfig
來進行
透過 make oldconfig 指令
會將 Kernel 資料夾中 .config 的訊息讀取,並將在 Kernel 的選項上自動填妥,但仍然是一種串連形式選項
見下文

若果有安裝 ncurses5 這種 TUI (Text-based User Interface)
可以利用
1
make menuconfig
DEB 系列及RPM 系列分別可使用
1
apt-get install libncurses5-dev
1
yum install libncurses5-devel
安裝

make menuconfig 最大好處是可以在互動情況下,選擇 Kernel 項目
不需要因,錯誤選項而重新選擇
同樣 make menuconfig 亦與 make oldconfig 相同地能夠繼承 Kernel 資料夾中 .config 的訊息
將原來 Kernel 設定資料設成預設,而且離開會提供儲存提問
還有這種設定可以在沒有 GUI 的情況下運作,適合任何沒有 GUI 的作業系統
見下文

最後一種為
1
make gconfig
這種 config 必須在 GUI 下,才能執行
而且必須安裝 gtk+-2.0、glib-2.0 及 libglade-2.0 這三種函式庫
DEB 系列及RPM 系列分別可使用
1
apt-get install libgtk2.0-dev libglib2.0-dev libglade2-dev
1
yum install libgtk2.0-devel libglib2.0-devel libglade2-devel
安裝
make gconfig 唯一最大好處是可以將所有子項目展開,一次過顯示,不用經常進出子項目
見下文
(注意:現在使用 Qt 的 KDE 都統一使用 make gconfig 來執行,而不再分 make kconfig 及 make xconfig)

沒有留言 :

張貼留言