2.6內核的配置與編譯(5)
電源管理,
Power management options (ACPI, APM) --->
[*] Power Management support
[ ] Power Management Debug Support
[ ] Software Suspend (EXPERIMENTAL)
ACPI (Advanced Configuration and Power Interface) Support --->
APM (Advanced Power Management) BIOS Support --->
CPU Frequency scaling --->
Power Management support,電源管理沒什么好說的,不想浪費電就選上。如果不選你可以跳過這部份。
Power Management Debug Support,電源管理的調試信息支持,如果不是要調試內核有關電源管理部份,請不要選擇這項。
Software Suspend (EXPERIMENTAL),休眠到硬盤。也就是將內存寫入交換分區中,下次啟動可以通過參數resume=/dev/swappartition(例如:resume=/dev/hda6)來恢復上次機器運行的狀態。這項功能對于系統引導時啟動許多服務的機器來說很有用,可以節約啟動時間。這項功能根據自己的需要選擇吧,如果你選擇這項功能,記得恢復休眠后重做交換分區。
2.6內核的配置與編譯(6)
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support
[ ] Sleep States (EXPERIMENTAL)
<M> AC Adapter
<M> Battery
<M> Button
<M> Video
<M> Fan
<M> Processor
<M> Thermal Zone
<M> ASUS/Medion Laptop Extras
<M> IBM ThinkPad Laptop Extras
<M> Toshiba Laptop Extras
(0) Disable ACPI for systems before Jan 1st this year
[ ] Debug Statements
[ ] Power Management Timer Support
ACPI Support,這是一種電源管理方式,你可以看看你的BIOS是否支持。如果支持的話建議你選上這項。
Sleep States (EXPERIMENTAL),這項功能可以讓系統進入休眠狀態(不是休眠到硬盤)。休眠是指系統仍然通著電,只是進入最大幅度的省電狀態;而休眠到硬盤是指系統已經斷電。不過如果你不是驅動程序的電源管理部份的開發人員,建議你最好不要選擇這項。相信未來linux下的驅動對電源支持的功能會越來越好,或者也搞個硬件兼容列表,到時就可以放心的使用這項功能了。
AC Adapter,檢測是電源供電還是電池供電,通常只對本本有用。
Battery,通過/proc/acpi/battery得到電池的信息,通常這也是針對筆記本的。
Button,捕獲Power、Sleep、Lid(我也不知道這是什么按鈕)等按鈕是否按下,并做相應的動作。
Video,集成在板上的顯卡的ACPI支持,對有些板卡可能不起作用。
Fan,風扇的支持。這一點很明顯,不選這項我的本本的風扇一直在轉,選上以后風扇只是間斷的轉轉。
Processor,當機器負荷輕時節省處理器的用電,處理器可是電腦中的第一用電大戶(可能老式的CRT顯示器和它有的一比)。
Thermal Zone,這個我也不太清楚是什么,只是據說大部份的臺式機和筆記本都支持,不選還可能把處理器燒掉。javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">如果你不會讓模塊正常工作,還是把它編進內核吧,怪嚇人的。
ASUS/Medion Laptop Extras、IBM ThinkPad Laptop Extras、Toshiba Laptop Extras,這三種本本的擴展支持。你的內核如果只是自己用,選個該選的就行了。
(0) Disable ACPI for systems before Jan 1st this year,輸入四位數的年份,在該年的1月1日前不使用ACPI的功能。0表示一直使用。
Debug Statements,詳細的ACPI調試信息,不搞開發就別選。
Power Management Timer Support,我的本本支持HPET(要是忘了是什么,再看看前面),所以不選它。要是你的機器不支持,應該把它選上。
2.6內核的配置與編譯(7)
APM (Advanced Power Management) BIOS Support --->
<M> APM (Advanced Power Management) BIOS support
[ ] Ignore USER SUSPEND
[*] Enable PM at boot time
[ ] Make CPU Idle calls when idle
[ ] Enable console blanking using APM
[ ] RTC stores time in GMT
[ ] Allow interrupts during APM BIOS calls
[*] Use real mode APM BIOS call to power off
APM (Advanced Power Management) BIOS support,高級電源管理的支持,一般來說筆記本應該選上,臺式機可以不選。
Ignore USER SUSPEND,只有NEC Versa M系列的筆記本需要選擇這一項。
Enable PM at boot time,啟動時支持電源管理,選上這個選項能讓系統自動的進行電源管理,除非在啟動時死機,才不要選這項。
Make CPU Idle calls when idle,系統空閑時調用空閑指令。只有老式的CPU才用這項。其實調用空閑指令還是讓CPU執行了一條指令。這個選項在內核循環中調用空閑指令。
Enable console blanking using APM,支持關閉監視器。據說這項功能對所有的筆記本都無效。如果你都按我的建議配置,系統是能自動休眠的(使用ACPI)。你也不用擔心你的顯示器一直亮著的。
RTC stores time in GMT,按Unix的標準,硬件的時鐘應該設為格林威治時間。還是那句老話,因為我還要用Windows,所以硬件時鐘設成了本地時間,當然就不要選這項了。
Allow interrupts during APM BIOS calls,允許APM的BIOS調用時中斷。多數的機器不需要這項,Thinkpad的一些新機器需要這項。如果休眠時掛機(包括睡下去就醒不來),再把這項選上。
Use real mode APM BIOS call to power off,建議最好選上此項,保證軟件關機。如果你有興趣可以試試你的機器不選這項能不能正常的軟件關機(多數機器不能)。
補充一點,如果既選擇了ACPI又選擇了APM,先加載的將被使用。
通過這么多的例子,大家應該可以看出來在menuconfig中,圓括號內是參數,可以選擇某一選項或者輸入具體的參數。方括號只能選擇“Y”或“N”,尖括號除了選擇“Y”和“N”還可以選擇“M”?!癥”表示將該選項包括在內核中,menuconfig中以“*”表示?!癗”表示不使用此選項的功能,“M”表示將此選項的功能編譯成模塊。
ACPI是為了取代APM而設計的,因此盡量使用ACPI的功能,實在不行再加載apm模塊。
2.6內核的配置與編譯(8) '
[*] CPU Frequency scaling
[ ] Enable CPUfreq debugging
< > /proc/cpufreq interface (deprecated)
Default CPUFreq governor (performance) --->
--- 'performance' governor
<M> 'powersave' governor
<M> 'userspace' governor for userspace frequency scaling
[ ] /proc/sys/cpu/ interface (2.4. / OLD)
<M> 'ondemand' cpufreq policy governor
<*> CPU frequency table helpers
<M> ACPI Processor P-States driver
<M> AMD Mobile K6-2/K6-3 PowerNow!
<M> AMD Mobile Athlon/Duron PowerNow!
<M> AMD Opteron/Athlon64 PowerNow!
<M> Cyrix MediaGX/NatSemi Geode Suspend Modulation
<M> Intel Enhanced SpeedStep
[ ] Use ACPI tables to decode valid frequency/voltage pairs
--- Built-in tables for Banias CPUs
<M> Intel Speedstep on ICH-M chipsets (ioport interface)
<M> Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
<M> Intel Pentium 4 clock modulation
< > nVidia nForce2 FSB changing
<M> Transmeta LongRun
<M> VIA Cyrix III Longhaul
--- shared options
[ ] /proc/acpi/processor/../performance interface (deprecated)
[ ] Relaxed speedstep capability checks
CPU Frequency scaling,這一選項允許改變CPU的主頻,使CPU在低負荷或使用電池時降低主頻,達到省電的目的。
Enable CPUfreq debugging,是否允許調試CPU改變主頻的功能,如果要調試,還需要在啟動時加上參數。cpufreq.debug=<value>
1:變頻技術的內核調試
2:變頻技術的驅動調試
4:變頻技術的調節器調試
/proc/cpufreq interface (deprecated) ,是否允許/proc/cpufreq來調節主頻,建議使用默認的sysfs來調節。
Default CPUFreq governor (performance) --->,默認的主頻調節,圓括號內的是你選擇的結果,這里表示以性能為主。
'powersave' governor,最大限度的節約電能調節器。
'userspace' governor for userspace frequency scaling,用戶自定義調節器。
/proc/sys/cpu/ interface (2.4. / OLD),兼容2.4內核的用戶調節器。
'ondemand' cpufreq policy governor,自動調節主頻。
CPU frequency table helpers,多數的CPU需要這一項來調節主頻。
ACPI Processor P-States driver,報告處理器的狀態。
AMD Mobile K6-2/K6-3 PowerNow!,AMD移動版K6處理器的變頻驅動。
AMD Mobile Athlon/Duron PowerNow!,AMD移動版毒龍、雷烏的變頻驅動。
AMD Opteron/Athlon64 PowerNow!,AMD64處理器的變頻驅動。
Cyrix MediaGX/NatSemi Geode Suspend Modulation,Cyrix處理器的變頻驅動。
Intel Enhanced SpeedStep,Intel的變頻技術支持。
Use ACPI tables to decode valid frequency/voltage pairs,使用BIOS中的主頻/電壓參數。
--- Built-in tables for Banias CPUs,迅馳一代的主頻/電壓參數。
Intel Speedstep on ICH-M chipsets (ioport interface) ,Intel ICH-M南橋芯片組的支持。
Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface),Intel 440BX/ZX/MX南橋芯片級的支持。
Intel Pentium 4 clock modulation,P4處理器的時鐘模塊支持。
nVidia nForce2 FSB changing,nVidia nForce2的支持。
Transmeta LongRun,Transmeta處理器的支持。
VIA Cyrix III Longhaul,VIA Cyrix處理器的支持。
/proc/acpi/processor/../performance interface (deprecated),從/proc/acpi/processor/../performance獲得CPU的變頻信息。
Relaxed speedstep capability checks,不全面檢測Intel Speedstep,有的系統雖然支持Speedstep技術,卻無法通過全面的檢測。
2.6內核的配置與編譯(9)
總線類型,
[*] PCI support
PCI aclearcase/" target="_blank" >ccess mode (Any) --->
[ ] Message Signaled Interrupts (MSI and MSI-X)
[ ] Legacy /proc/pci interface
[ ] PCI device name database
[*] ISA support
[*] EISA support
[*] Vesa Local Bus priming
[*] Generic PCI/EISA bridge
[*] EISA virtual root device
[ ] EISA device name database
[ ] MCA support
< > NatSemi SCx200 support
PCCARD (PCMCIA/CardBus) support --->
PCI Hotplug Support --->
PCI support,沒有人不知道這是什么總線類型吧,實在不知道就去google查吧,這個當然要選上。
PCI access mode (Any),強列建議選Any,系統將優先使用MMConfig,然后使用BIOS,最后使用Direct檢測PCI設備。
Message Signaled Interrupts (MSI and MSI-X),建議你不要選擇這項,設備將使用默認的IRQ中斷。如果選擇這項,充許設備通過PCI總線寫入內存堆棧產生一個中斷。
Legacy /proc/pci interface,是否使用/proc/pci目錄下的信息文件來描述PCI設備的信息?,F在的系統多數都使用lspci工具來得到這樣的信息。
PCI device name database,如果你不打算使用lspci工具,就把這項和上面的一項選上。lspci和hotplug都不需要內核中的設備信息庫了。
ISA support,是否使用工業總線。如果你沒有老式的ISA設備,可以不選這項?,F在基本上都沒有ISA的設備了。不過需要注意的是如果你做嵌入式系統的開發,一些PC104的總線可能會橋接到EISA或者是。VESA總線上。
EISA support,擴展工業總線。
Vesa Local Bus priming,VESA總線,也是擴展工業總線的一種。我的老486DX66的機器上的顯卡就是這種總線,塊板上大概還有2個EISA插槽各3個ISA插槽。
PCI/EISA bridge,PCI、EISA兩種總線的橋。
EISA virtual root device,EISA總線的虛擬根設備。
EISA device name database,內核中的EISA設備信息庫。
MCA support,微通道總線。IBM的臺式機和筆記本上可能會有這種總線,包括它的p系列、e系列、z系列機器上都用到了這種總線。
NatSemi SCx200 support,這個我不知道是什么東西,看幫助是松下的一種半導體處理器的驅動。
總之,只要你的主板沒有ISA插槽,而且你也不是搞嵌入式開發,工業自動化控制的。不要選“ISA support”就是了,如今的ISA設備在x86體系上基本是是見不到了。不過自己制板的話,還是ISA的板子最好做。
2.6內核的配置與編譯(10)
PCCARD (PCMCIA/CardBus) support --->
<M> PCCard (PCMCIA/CardBus) support
[ ] Enable PCCARD debugging
[ ] Enable obsolete PCCARD code
<M> 16-bit PCMCIA support
[*] 32-bit CardBus support
--- PC-card bridges
<M> CardBus yenta-compatible bridge support
<M> Cirrus PD6729 compatible bridge support
<M> i82092 compatible bridge support
<M> i82365 compatible bridge support
<M> Databook TCIC host bridge support
PCCard (PCMCIA/CardBus) support,一般只有筆記本電腦上才會有PCMCIA插槽,如果你是臺式機的話,可以不選這一項,然后跳過這一部份。
Enable PCCARD debugging,通常不需要選擇調試PCMCIA設備,除非你是設備驅動的開發人員。
Enable obsolete PCCARD code,老式的PCMCIA設備只持?,F在很少有這樣的設備了,除非你買這樣的設備時帶了張Linux的驅動光盤才需要選上。而且估計你也只能在二手市場上買到這樣的設備。
16-bit PCMCIA support,16位的PCMCIA總線支持。
32-bit CardBus support,32位的PCMCIA總線支持,通常也叫PCMCIA II總線。
下面的是不同產家的PCMCIA芯片的驅動支持,如果你知道你的本本用的是什么芯片組的話,可以只選它而不選其它的。要是你不知道可以象我一樣的全部選上,然后用modprobe一種一種的試。最后我終于知道我的HP zv5028的本本用的是yenta-compatible的芯片組了。
--- PC-card bridges
<M> CardBus yenta-compatible bridge support
<M> Cirrus PD6729 compatible bridge support
<M> i82092 compatible bridge support
<M> i82365 compatible bridge support
<M> Databook TCIC host bridge support
2.6內核的配置與編譯(11)
PCI Hotplug Support --->
<M> Support for PCI Hotplug (EXPERIMENTAL)
< > Fake PCI Hotplug driver (NEW)
< > Compaq PCI Hotplug driver (NEW)
< > IBM PCI Hotplug driver (NEW)
< > ACPI PCI Hotplug driver (NEW)
[ ] CompactPCI Hotplug driver (NEW)
< > PCI Express Hotplug driver (NEW)
< > SHPC PCI Hotplug driver (NEW)
Support for PCI Hotplug (EXPERIMENTAL),一般來講只有服務器上會有熱插拔的設備,如果你使用的是臺式機,你可以不選擇此項并跳過這一部份。(其實我也沒有選這一項,只是為了講解的方便而選上的。)
Fake PCI Hotplug driver (NEW),選上這一選項能讓你的機器模擬PCI熱插拔。注意,它并不是真正意義上的熱插拔,決對不允許帶電插拔設備除非你的主板上集成了PCI熱插拔芯片并且你的PCI設備本身支持熱插拔。
Compaq PCI Hotplug driver (NEW),Compaq服務器上的熱插拔芯片組的支持。
IBM PCI Hotplug driver (NEW),IBM服務器上的熱插拔芯片組的支持。
ACPI PCI Hotplug driver (NEW),PCI熱插拔設備是否支持ACPI電源管理(一般來說都是支持的)。
CompactPCI Hotplug driver (NEW),精簡PCI總線的熱插拔設備的支持,通常在嵌入式系統中會用到精簡PCI總線。
PCI Express Hotplug driver (NEW),PCI加速總線的熱插拔設備的支持?,F在PCI Express總線的顯卡挺火的。但用于服務器上的PCI加速總線的設備我還沒見過。(我是井底之蛙)
SHPC PCI Hotplug driver (NEW),SHPC熱插拔控制芯片的支持。
2.6內核的配置與編譯(12)
可執行文件格式,
[*] Kernel support for ELF binaries
< > Kernel support for a.out and ECOFF binaries
<*> Kernel support for MISC binaries
Kernel support for ELF binaries,ELF是開放平臺下最常用的二進制文件,它支持不同的硬件平臺。
Kernel support for a.out and ECOFF binaries,這是早期UNIX系統的可執行文件格式,目前已經被ELF格式取代。
Kernel support for MISC binaries,此選項允許插入二進制的封裝層到內核中,當使用Java、.NET、Python、Lisp等語言編寫的程序時非常有用。
接下來應該講硬件設備部份,但考慮到硬件部份是針對具體硬件的,大數Linux玩家都是硬件的DIYer。因此對這一部份應該很熟悉。硬件設備部份將放到最后講,下一篇將講文件系統部份。