2012年6月24日星期日

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

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

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

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

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

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

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

沒有留言 :

發佈留言