2.6内核的配置与编译2

发表于:2007-07-04来源:作者:点击数: 标签:
作者:阿锐 2.6内核的配置与编译(5) 电源管理, Power management options (ACPI, APM) --- [*] Power Management support [] Power Management Debug Support [] Software Suspend (E XP ERIMENTAL) ACPI (Advanced Configuration and Power Interface) Supp
作者:阿锐

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”。“Y”表示将该选项包括在内核中,menuconfig中以“*”表示。“N”表示不使用此选项的功能,“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设备的信息。现在的系统多数都使用lspci工具来得到这样的信息。

PCI device name database,如果你不打算使用lspci工具,就把这项和上面的一项选上。lspci和hotplug都不需要内核中的设备信息库了。

ISA support,是否使用工业总线。如果你没有老式的ISA设备,可以不选这项。现在基本上都没有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设备只持。现在很少有这样的设备了,除非你买这样的设备时带了张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加速总线的热插拔设备的支持。现在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。因此对这一部份应该很熟悉。硬件设备部份将放到最后讲,下一篇将讲文件系统部份。


原文转自:http://www.ltesting.net