4獲得一份完整的核心原始碼
獲得一份完整的核心原始碼
到www.kernel.org上下載一份你想要的核心,現在最新的穩定版核心是2.6.11.9。
圖1 在kernel.org上下載最新的原代碼
配置前的準備
把下載下來的源碼包複製到任意一個目錄下,在這裡我們把它複製到~/kernelsource/中(這樣可以先暫時避免使用root賬戶)。之後進入~/kernelsource目錄,解壓縮:
tar -jxvf linux-2.6.11.9.tar.bz2
之後我們會得到一個目錄linux-2.6.11.9,裡面就放著要編譯的核心原始碼。進入該目錄。
cd ~/kernelsource/linux-2.6.11.9
在這裡值得說明的是,現在很多書籍上都說一定要把核心解壓縮到/usr/src中,之後還要在
/usr/src中建立一個名為linux的符號連結指向它,實際上這麼做是不必要的,一是編譯核心的時候不一定非要在/usr/src中進行,在哪裡都是可以的;二是/usr/src/linux這個符號連結指向的源碼樹通常會和你系統上的C庫有所關聯,所以出於這個因素,你也不應該改變它。
配置核心
這一步是至關重要的,自己編譯核心的目的就是為了量身定做一個適應自己的CPU和硬體裝置的核心,不過在我們進一步深入之前,我想先提一些關於使用核心組態工具的事情,我們有5種方式來配置核心:(下面的每種配置方式配個圖說明一下)
1. make config
這是一個基於控制台的互動文本程式,系統一個個的向你提問,你一個個的回答,且不能反悔,估計一般人堅持不到最後就退出了,不推薦。
2. make menuconfig
這是一個文字模式、菜單驅動的配置程式,有簡單的圖形介面,配置很方便,是我個人比較比較喜歡的配置方法
圖2 menuconfig
上面這兩種方法的優點是不需要X的支援,當然如果你比較喜歡GUI環境的話,下面的兩種方法可以滿足你的需求:
3. make xconfig
這是一個用qt寫的配置程式,在GUI下配置核心,感覺很直觀和清晰。建議初學者使用。
圖3 xconfig
4. make gconfig
如果你更喜歡gtk的配置風格,就用它吧。
圖4 gconfig
最後,說兩種懶辦法:
5. make defconfig
這是根據你的機器的類型對核心進行預設的配置,免去了你配置核心的煩惱,有人說這是Linus本人在x86機器上的預設配置,但我不敢肯定。而且經過很多人的測試,這個東西幾乎不會配置出一個功能比較完善的核心,尤其是對於非Intel CPU的識別、隨身碟的支援、NTFS分區的支援以及ADSL的使用等問題做的都不是很讓人滿意。所以,不推薦。
6. make oldconfig
這是一個非互動性的指令碼,用你當前核心的設定作為配置標準,重新編譯新核心。如果你只是為了簡單升級的話,是個不錯的選擇。
上面的六種方法,任選一種,就可以開啟核心配置介面了。在這裡,我用的是make xconfig。下面,就進入真正的核心配置部分。
當你開啟xconfig面對一系列的配置選項的時候,你並不用著急,很多配置都是已經預設設定好了的,而我們要做的就是去掉那些自己不想要的,修改那些不符合我們意願的,僅此而已。因為這些預設的選項時面對大多數使用者的,所以有些可能不是很符合你自己的情況,我們只要進行修改就好了。作為一個以案頭應用為主要目的的整個核心的配置過程可以分成幾個大部分:代碼成熟度等級、模組支援、硬體裝置以及通用系統選項。下面我們就來仔細看一下每一個部分。在此要說明的是,由於有些核心的配置是和系統硬體相關的,所以這裡我只能用自己的電腦配置舉個例子,具體的大家要看一下組態工具提供的協助。
1. 代碼成熟度等級選項
這個選項用來告訴配置程式是否顯示那些還處於實驗階段的核心特性,選定該選項,則顯示,反之則隱藏。對於案頭應用的使用者來說,不妨開啟它,實驗一些核心新特性。
(圖5
2 模組的支援
模組的設計是Linux的一大特色,它可以實現核心在運行時的功能擴充,這對於減少核心尺寸和我們將來學習核心編程都是非常有協助的。所以,一定要選上下面的部分。
圖6 模組的支援
在這裡說明一下,凡是組態工具中可以選擇成圓點的項目,就是可以被編譯成模組的部分,如果被選擇成對鉤,則是要編譯進核心的部分,下同。