2.6核心的安裝(轉)

post0發表於2007-08-10
2.6核心的安裝(轉)[@more@]

第一部分,準備

  要使用新的核心首先當然要取得新核心的原始碼,核心的官方網站是 在上面可以得到最新的核心。2.6的更新是相當快的,你可以在命令列下使用finger @kernel.org命令來快速得到當前最新的核心列表。在這篇文章中我將以2.6.0為準。

  下載了核心原始碼之後,我們要使用tar jxvf linux-2.6.0.tar.bz2來提取原始碼,如果你下載的是以tgz結尾的壓縮包就使用zxvf引數來解壓。我強烈建議你不要使用 /usr/src/linux這個目錄來存放原始碼,因為使用這個目錄你需要手工在/usr/include目錄下作一些符號連結,這實在不是一個好主意。所以我建議你為原始碼單獨建一個目錄,這裡我們的目錄是/src/linux-2.6.0。

  要編譯與正常執行新的核心你需要升級一些軟體包,這些資訊在原始碼目錄下的Documentation/Changes檔案中,請根據你的實際情況選擇升級。這其中我強調一下你應該升級Module-Init-Tools,不要被你當前系統中depmod -V輸出的版本號迷惑(在RH9中它的輸出是2.4.22,感覺好象要比Changes中所要求的要高,實際上它們使用不同的版本規則)。新的 Module-Init-Tools在下面的網址中取得:http: //

  我使用的是0.9.14。如果你下載的是原始碼使用如下步驟進行編譯

./configure --prefix=/

make moveold

#這一步會將你以前的insmod, modprobe, rmmod和 lsmod

#重新命名為insmod.old, modprobe.old, rmmod.old lsmod.old

make

make install

  然後使用 ./generate-modprobe.conf /etc/modprobe.conf (將原來的/etc/modules.conf轉換到/etc/modprobe.conf )

  如果你使用devfs系統你還需要複製modprobe.devfs 到/etc目錄下。

  當你升級完相關軟體包之後,準備工作就算完成了,下面我們將進入到編譯階段。

第二部分 編譯

  2.6的build系統與2.4有很大的不同,實際上是更加簡單與方便了。第一步我們要進入原始碼目錄

cd /src/linux-2.6.0

make mrproper

make menuconfig (基於文字選單的配置介面)

  在閃過幾行字之後就出現瞭如圖的介面

  在介面的上部是配置工作的使用說明,使用箭頭鍵在各選項間移動,使用enter進入下一層選單,每個選項上的高亮字母是鍵盤快捷方式,使用它可以快速的到達你想設定的選單項上。在括號中按y將這個專案編譯進核心中,按M編譯為模組,按N為不選擇。按?將列印這個選項的幫助資訊,按esc將返回到上層選單。 GUI工具的基本概念也與之類似我們就不詳細討論了。在後面我將主要使用menuconfig來設定各個選項,選項的次序以它為準,其它工具中各選項也基本與之對應。切記把音效卡的模組編譯進核心不然無法發聲!!

編譯和安裝核心

#make

#make install

編譯和安裝模組

#make modules(編譯選擇的模組)

#make modules_install(將編譯後的模組轉移到系統標準位置)

  完成後reboot就會發現啟動選項就會多出一個2.6核心的選項。

介紹一下新核心中的圖形介面配置工具

  新核心中有兩個GUI配置工具,過去的make xconfig現在是一個使用QT庫作為介面方案的配置工具了,所以你要使用它必需先安裝QT庫。一般的發行版光碟中都包含了這個軟體包。

  另一個是make gconfig這是一個使用GTK庫作為介面方案的工具,同樣你要使用它就要先安裝GTK庫。這兩個工具與原來的GUI工具在介面上有很大的變化,更加符合一般圖形介面程式的使用習慣。

  而傳統的控制檯配置工具menuconfig則沒什麼太大的變化基本上保持了原來的樣子,不喜歡花裡糊哨的GUI工具的兄弟還是用這個吧:)

  在2.6中還新增了幾個以除錯為目的的make選項,它們是allyesconfig、allnoconfig、allmodconfig分別表示將所有選項載入為y、將所有選項載入為n、將所有選項載入為m。它們是為核心開發人員與測試人員準備的,與我們的關係不大。

  make menuconfig (部分)選項說明

第一項 Code maturity level options (程式碼成熟度選項)

  按enter進入後選項如下

[*] Prompt for development and/or incomplete code/drivers

  預設情況下是選擇的,這將會在設定介面中顯示還在開發或者還沒有完成的程式碼與驅動.你應該選擇它,因為有許多裝置可能必需選擇這個選項才能進行配置,實際上它是安全的。

[*] Select only drivers expected to compile cleanly

  選擇這個選項你將不會看到一些已知的存在問題的驅動程式選項,預設的情況下也是選擇的。如果你有裝置沒有找到驅動選項,你可以將這一項去掉,或許就可以找到相關驅動了,不過它可能是有BUG的。

[*] Select only drivers that don't need compile-time external firmware

  如果你不需要在核心對一些外部裝置的韌體作map支援就選擇它,這也是預設選項。

第二項 General setup

  其中的選項如下

[*] Support for paging of anonymous memory

  這個選項將使你的核心支援虛擬記憶體,也就是讓你的計算機好象擁有比實際記憶體更多 多的記憶體空間用來執行很大的程式。預設是選擇的。

[*] System V IPC

  為程式提供通訊機制,這將使系統中各程式間有交換資訊與保持同步的能力。有些程式只有在選Y的情況下才能執行,所以不用考慮,這裡一定要選。

[ ] BSD Process Accounting

  這裡選擇Y將會讓核心為使用者層的程式建立一個帳目(程式透過一個特殊的系統呼叫來通知核心),當程式退出時核心會將程式的相關資訊記錄到帳目檔案中,主要包括程式的建立時間、 建立者,記憶體佔用等資訊。如果你需要就Y吧:)

[*] Sysctl support

  這將提供一個介面讓你可以動態的更改一些核心引數與變數,而不需要重新啟動系統。開啟這個選項將會增加核心的體積至少8KB。如果你的核心僅用製作安裝與恢復系統系統盤那麼可以不選,以減少對記憶體的佔用。

[ ] Kernel .config support

  這將會把核心的配置資訊與相關的文件說明編譯進核心中,以後可以使用一些工具來提取它用來重新構建核心,一般不用選它。

[ ] Remove kernel features (for embedded systems) ---&gt

  這個選項將會把一些特性從核心中移除,以減少核心體積。對於桌面使用者來講,這可不是一個好主意,所以不要選它。至於其中的內容我會在以後的補遺中介紹。

第三項 Loadable module support (可載入模組選項)

  其選項如下:

[*] Enable loadable module support

  這個選項可以讓你的核心支援模組,模組是什麼呢?模組是一小段程式碼,編譯後可在系統核心執行時動態的加入核心,從而為核心增加一些特性或是對某種硬體進行支援。一般一些不常用到的驅動或特性可以編譯為模組以減少核心的體積。在執行時可以使用modprobe命令來載入它到核心中去(在不需要時還可以移除它)。

  一些特性是否編譯為模組的原則是,不常使用的,特別是在系統啟動時不需要的驅動可以將其編譯為模組,如果是一些在系統啟動時就要用到的驅動比如說檔案系統,系統匯流排的支援就不要編為模組了,否在無法啟動系統。(當然還有一些變通的方法,我以後會提到)

[ ] Module unloading

  這個選項可以讓你解除安裝不再使用的模組,如果不選的話你將不能解除安裝任何模組(有些模組一旦載入就不能解除安裝,不管是否選擇了這個選項)。不選擇這個選項會讓你的核心體積減小一點

[ ] Module versioning support (EXPERIMENTAL)

  這個選項將讓你可以使用其它版本核心中編譯的模組,不過並不可靠,所以一般我們不選擇它

[*] Automatic kernel module loading

  一般情況下,如果我們的核心在某些任務中要使用一些被編譯為模組的驅動或特性時,我們要先使用modprobe命令來載入它,核心才能使用。不過,如果你選擇了這個選項,在核心需要一些模組時它可以自動呼叫modprobe命令來載入需要的模組,這是個很棒的特性,當然要選Y嘍:)

第四項 Processor type and features

Subarchitecture Type (PC-compatible)

  這是一個比較新的特性,主要的目的是使Linux可以支援多種PC標準,一般我們使用的PC機是遵循所謂IBM相容結構(pc/at)。這個選項可以讓你選擇一些其它架構。我們一般選擇PC-compatible就可以了。

Processor family (Pentium-4/Celeron(P4-based)/Xeon)

  這個不用我講了吧,你是什麼CPU就選什麼吧:)

[ ] Generic x86 support

  這個選項提供了對X86系列CPU最大的相容性,用來支援一些很少見的x86體系的CPU,它可能會降低一些系統效能。所以如果你的CPU能夠在上面的列表中找到就不要選這個吧。

[ ] HPET Timer Support

  這也是一個新的特性,HPET是intel制定的新的用以代替傳統的8254(PIT)中斷定時器與RTC的定時器,全稱叫作高精度事件定時器。如果你有一臺較新的機器就選它吧,一般它是一個安全的選項,即使你的硬體不支援HPET也不會造成問題,因為它會自動用8254替換。

[*] Symmetric multi-processing support

  這個也不用多講了吧,如果你使用多處理器系統就選吧,如果你和我一樣使用一個單CPU系統還是把它請出去吧。

( Maximum number of CPUs (2-255)

  這裡用來配置讓Linux最多支援幾路CPU,根據你的需要選擇。

[*] Preemptible Kernel

  這可是個新特性,幾乎所有介紹2.6的文章都會提到,這就是可搶先式核心。也就是說被一些優先順序很高的程式可以先與一些低優先順序的程式執行,即使這些程式是在核心態下執行(這實際上仍然不是真正的搶先式核心)。從而減少核心潛伏期,提高系統的響應。當然在一些特殊的點的核心是不可搶先的,比如核心中的排程程式自身在執行時就是不可被搶先的。這個特性可以提高桌面系統、實時系統的效能,所以還是選上吧。

[*] Machine Check Exception

  如果你的系統出現一些問題比如CPU過熱,核心將會在螢幕上列印相關資訊來提醒你。這個功能是需要硬體支援的。你可以檢視/proc/cpuinfo 看看是否有mce標誌,有的話就選吧。如果你十分十分的不幸,選了它之後出現問題,可以在啟動時加nomce引數來關閉它。

[*] Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4

  開啟這個選項將會檢查你機器上可能存在的問題,如果有一個非致命錯誤出現將會自動的修復並且記錄,這可以幫助你查出程式出現問題的原因,是一個不錯的選項,當然它只能用在AMD Athlon/Duron / Intel Pentium 4這類CPU上。如果你正好在用它們中的一個你就選吧。

[*] check for P4 thermal throttling interrupt.

  如果開啟這個選項,在P4的CPU溫度過高(也就是P4的溫控裝置起作用)時會在螢幕上顯示出相關的資訊,根據你的情況選擇吧。

< > Toshiba Laptop support

  這個選項是針對Toshiba筆記本的,可以用來訪問Toshiba的系統管理模式,也就是可以直接設定BIOS。不過要注意它只在Toshiba自己的 BIOS中起作用。假如你有一臺Toshiba筆記本,可惜它的BIOS是Phoenix的,那這個選項仍然是梁山軍師----無用:)

< > Dell laptop support

  這個同上面的選項基本相同,自己看著辦吧:)

< > /dev/cpu/microcode - Intel IA32 CPU microcode support

  這個選項將讓你可以更新Intel IA32系列處理器的微程式碼,當然你還必須在檔案系統選項中選擇devfs才能正常的使用它。如果你把它譯為模組你還需要在modprobe.conf中加上這一行alias char-major-10-184 microcode

  核心本身並不帶有微程式碼的二進位制檔案,你可以到這個網址去得到新的資訊

< > /dev/cpu/*/msr - Model-specific register support

  這個選項桌面使用者一般用不到,它主要用在Intel的嵌入式CPU中的,這個暫存器的作用也依賴與不同的CPU型別而有所不同,一般可以用來改變一些CPU原有物理結構的用途,但不同的CPU用途差別也很大。

< > /dev/cpu/*/cpuid - CPU information support

  這會在/dev/cpu中建立一系列的裝置檔案,用以讓過程去訪問指定的CPU。一般不用選。

< > BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)

  這將可以開啟真實模式下BIOS中的增強磁碟裝置服務,以決定從哪個磁碟上啟動。這一般是安全的,不過大多數BIOS提供商都沒有實現這個特性。

High Memory Support (off)

  如果你有大容量的記憶體(超過4G)你要選它,以使核心可以使用這部分記憶體。偶是沒這命啦這部分永遠為OFF,如果你有你就ON吧。

[ ] Math emulation

  在你的CPU上如果沒有數學協處理器的話,開啟這個選項可以讓核心模擬一個,以提升浮點計算能力,不過慢的可以。如果你使用的不是古董CPU的話(486SX以前的)這一項你永遠都不需要。

[*] MTRR (Memory Type Range Register)support

  在Intel p6家族的處理器中(Ppro、 PII和更新的)有一個記憶體型別範圍暫存器,可用來控制處理器訪問的記憶體範圍。開啟它一般可以提升顯示卡的顯示效能,所以我們當然要在這說Y嘍:)

第五項 Power management options (ACPI, APM)(高階電源管理)

[*] Power Management support

  如果你想讓你的Linux支援高階電源管理(也就是平常我們說的軟關機、系統休眠等)需要選擇它。

[ ] Software Suspend (EXPERIMENTAL)

  選擇這個選項你可以掛起你的計算機(有點象XP中的休眠),開啟這項功能後,你可以使用swsusp或者shutdown -z 來掛起你的計算機。這樣系統會將你當前正在進行的工作(也就是當前記憶體中的內容)作成一個鏡象儲存到你的交換分割槽中,在你下一次啟動時使用啟動引數 “resume=/dev/你的交換分割槽”,核心就會將上一次的工作核心從鏡象檔案中恢復到記憶體,這可以大大提高系統的啟動速度。當你不想恢復上次的工作時向核心傳遞引數“noresume"。不過系統啟動後你的交換分割槽將不可以使用,你可以使用mkswap命令來重新格式化你的交換分割槽。這個功能不需要高階電源管理的支援。很不錯的功能,我一直有用,大家也來試試吧:)

[ ] Suspend-to-Disk Support

  這個選項與上面的功能基本相同,不過更靈活一些,可以透過下面的子選項來指定一個專用的交換分割槽來儲存記憶體鏡象。

() Default resume partition

  與上面的選項配合,來指定儲存鏡象的分割槽。

ACPI (Advanced Configuration and Power Interface) Support ---&gt

  從這裡進入ACPI電源管理的配置介面,要注意ACPI與APM不能同時使用,如果你同時配置了這兩者,那麼在系統啟動時如果發現一個可工作的ACPI裝置那麼APM將被關閉,ACPI會被載入:

[*] ACPI Support

  這個選項應該不用我多說了,要想讓你的系統使用ACPI來管理你的電源就要選上它,另外要想讓它起作用,你還要在系統中安裝acpid守護程式。

[*] Sleep States (EXPERIMENTAL)

  選擇這個選項可以使你的系統具有掛起的功能,也就是說你可以暫時中斷你的工作,讓你的系統處與一種低電能消耗的狀態(sleep state),你此時的系統狀態會儲存在記憶體或者磁碟上(取決於掛起的深度),當你需要時再恢復到正常的工作狀態。但由於各種系統之間的差別,目前這項功能並不完善。只有很少的裝置可以完美的支援這個特性,所以不建議一般使用者使用它。

< > AC Adapter

  這是用來支援移動系統中的交流介面卡的,以指示當前系統是不是在使用交流電,對於桌上型電腦不需要這個選項。

< > Battery

  這個選項用於透過/proc/acpi/battery來向使用者提供移動系統中的電池狀態資訊。同上面那個選項一樣對桌上型電腦沒有作用。

Button

  這個選項用於註冊基於電源按鈕的事件,比如power, sleep等,當你按下按鈕時事件將發生,一個守護程式將讀取/proc/acpi/event,並執行使用者在這些事件上定義的動作比如讓系統關機。

Fan

  這個選項提供對系統風扇的控制支援,可以透過使用者層的程式來對系統風扇進行控制(比如開啟,關閉,讀取當前風扇的執行狀態等,不過只有極少數的硬體支援它)。

Processor

  開啟這個選項將讓你的系統具有處理IDIE狀態的能力,也就是說可以讓你的處理器在空閒時節省電能。個人認為這個選項是一定要選的。

Thermal Zone

  當你的系統溫度過高時,ACPI可以利用這個選項來控制你的系統,及時調整系統的工作狀態以保護你的CPU,非常棒的一個特性一定要選呀,要不然也就不用使用ACPI了。(當然這需要硬體的支援)

< > ASUS/Medion Laptop Extras

  這主要是為ASUS生產的膝上型電腦準備的,以提供對這些系統上那些額外的按鈕們的支援,使用者可以透過它們來開啟或者關閉LCD的背光,調整亮度、定製LED的閃爍指示等功能。使用者可以透過/proc/acpi/asus來改變這些設定。

< > Toshiba Laptop Extras

  這個選項是對Toshiba筆記本提供特別支援的,它的作用同上面的選項基本相同,如果你有一臺這樣的本本的話就選它吧。

[ ] Debug Statements

  如果選擇它當ACPI出現錯誤時會列印出詳細的資訊,這將會增加核心的體積大約50k,如果沒有必要還是不要選它吧。

[ ] Relaxed AML

  選擇它的話ACPI翻譯器將會放鬆對AML的錯誤檢查,一些膝上型電腦可能需要它才能正常的使用ACPI(一些糟糕的桌面機可能也需要它,如果你的系統使用ACPI時出現問題不妨選上它試試)

PM (Advanced Power Management) BIOS Support ---&gt

CPU Frequency scaling ---&gt

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-940118/,如需轉載,請註明出處,否則將追究法律責任。

相關文章