Linux内核编译选项-3

来源:互联网 发布:没备案的域名可以用吗 编辑:程序博客网 时间:2024/06/05 02:50
Bus options (PCI etc.)  --->
I/O总线选项,由Interl在1992年初制订. 现在一般的总线类型都是PCI. 使用PCI总线的系统于1993年中期出现,从此成为主流.

[*] PCI support        PCI支持,如果使用了PCI或PCI Express设备就必选

PCI access mode (Any)  ---> 
PCI访问模式,强列建议选"Any"(系统将优先使用"MMConfig",然后使用"BIOS",最后使用"Direct"检测PCI设备)
在PCI系统中,BIOS可以检测PCI设备和确定它们的设置。但是,一些老的PCI主板有BIOS问题,如果这里选上会让系统当机。同时,一些嵌入式的 基于PCI系统没有任何BIOS。LINUX可以在不使用BIOS的情况下尝试直接检测PCI硬件。
选上这个以后,你可以设定LINUX如果检测PCI设备。如果你选择“BIOS”,BIOS会用到。你选 “Direct”, BIOS不会用到。如果你选“MMConfig”,PCI加速的 MMCONFIG 会用到。如果你选“Any” ,内核先用 MMCONFIG ,然后 “Direct”,最后才是“BIOS”如果前面的都无法工作。如果不清楚,选“Any”。
( ) BIOS
( ) MMConfig
( ) Direct
(X) Any 

[ ] Support for DMA Remapping Devices (EXPERIMENTAL)

[*] PCI Express support 
PCI Express支持(目前主要用于显卡和千兆网卡)
这里自动支持 PCI Express 端口总线。用户可以选择 Native Hot-Plug support, Advanced Error Reporting support,Power Management Event support,Virtual Channel support 4个选项来支持 PCI Express 端口(启动或者切换)。
我的板是PCI Express。大家可以用ls hw|less来看看自己的PCI是什么类型。

< >   PCI Express Hotplug driver如果你的主板和设备都支持PCI Express热插拔就可以上

[*]   Root Port Advanced Error Reporting support
由PCI Express AER驱动程序处理发送到Root Port的错误信息


[ ]     PCI Express ECRC settings control

< >     PCIE AER error injector support

[ ]   PCI Express ASPM support(Experimental)

[*] Message Signaled Interrupts (MSI and MSI-X)
PCI Express支持两类中断:INTx使用传统的IRQ中断,可以与现行的PCI总线的驱动程序和操作
系统兼容;MSI则是通过inbound Memory Write触发和发送中断,更适合多CPU系统.
可以使用"pci=nomsi"内核引导参数关闭
MSI信息信号中断
这允许设备驱动开启MSI。MSI允许一个设备用非装订内存写入方式在自己的PCI总线中产生一个中断,而不是常规的IRQ针脚中断。
在内核启动时,用 ‘pci=nomsi’选项可以禁用PCI MSI中断。这将在整个系统禁用MSI。
如果不知道怎么做,选N。

[ ] Enable deprecated pci_find_* API

[ ] PCI Debugging       PCI将PCI调试信息输出到系统日志里 调试,不选

< > PCI Stub driver

[*] Interrupts on hypertransport devices
允许本地的hypertransport设备使用中断 hypertransport是AMD在99年提出的一种总线技术
高速传输设备中断
允许高速传输设备使用中断。
如果不清楚,选Y。

[ ] PCI IOV support

[ ] ISA support ISA(industrial standard architecture)总线标准是IBM 公司
1984年为推出PC/AT机而建立的系统总线标准,所以也叫AT总线。它是对XT总线的扩展

[ ] MCA support MCA总线是IBM公司开发的一种总线,应用在PS/2微机上。
这种总线与ISA总线完全不兼容,但技术上更加先进

< > NatSemi SCx200 support
松下的一种半导体处理器的驱动。在使用AMD Geode处理器的机器上才可能有

[ ] One Laptop Per Child support

<*> PCCard (PCMCIA/CardBus) support  --->不选
PCMCIA(PC机内存卡国际联合会的缩写PCMCIA总线分为两类,一类为16位的PCMCIA,另一类
为32位的CardBus。CardBus是一种用于笔记本计算机的新的高性能PC卡总线接口标准,就像
广泛地应用在台式计算机中的PCI总线一样

[ ]   Enable PCCARD debugging仅供调试

<*>   16-bit PCMCIA support一些老的PCMCIA卡使用16位的CardBus

[*]     Load CIS updates from userspace (EXPERIMENTAL) 
有的PCMCIA卡需要这个功能

[*]     PCMCIA control ioctl (obsolete)
提供PCMCIA的ioctl接口

-*-   32-bit CardBus support
早先的PCMCIA卡是16位的,这里允许使用32位的CardBus, 新的PC-card实际上是CarBus卡
*** PC-card bridges ***
<*>   CardBus yenta-compatible bridge support
< >   Cirrus PD6729 compatible bridge support 
< >   i82092 compatible bridge support

<*> Support for PCI Hotplug  --->
支持PCI的热拔插
< >   Fake PCI Hotplug driver
< >   Compaq PCI Hotplug driver
< >   IBM PCI Hotplug driver
< >   ACPI PCI Hotplug driver
[ ]   CompactPCI Hotplug driver
< >   SHPC PCI Hotplug driver

Executable file formats / Emulations  ---> 
可执行文件格式

[*] Kernel support for ELF binaries选
ELF是开放平台下最常用的二进制文件格式,支持动态连接,支持不同的硬件平台.除非你知道自己在做什么,否则必选
ELF(可执行和可链接格式)是一种用来连接不同架构和操作系统的可执行文件、库函数格式。选Y,你的内核可以运行ELF二进制文件,这也使你的内核增大 13KB。
ELF现在基本代替了传统的 a.out 格式(QMAGIC and ZMAGIC用到),因为它是可移植的(可移植不代表它可以直接运行在不同构架和操作系统上),而且建立相关运行库文件非常容易。很多新的可执行文件都用 ELF格式发布,你在这里当然要选Y。

[*] Write ELF core dumps with partial segments

< > Kernel support for a.out and ECOFF binaries
早期UNIX系统的可执行文件格式,目前已经被ELF格式取代
对 a.out 和 ECOFF 二进制文件的支持
A.out (Assembler.OUTput)是一种二进制文件格式,它用在最早的UNIX版本中。LINUX在QMAGIC 和 ZMAGIC两个镜像中使用A.out,直到它最近被ELF取代。ELF的转变开始于1995年。这个选项主要是给研究历史的人提供感兴趣的信息,或者你 要是有那个年代的文件,你需要这个选项。
大多数人在这可以选N。如果你认为你有可能会用到这个格式,选M编译成模块。模块名为binfmt_aout。如果你系统的关键部件(比如/sbin /init 或者 /lib/ld.so)是 a.out 格式的的,你要在这选Y。

<*> Kernel support for MISC binaries选
允许插入二进制的封装层到内核中,使用Java,.NET,Python,Lisp等语言编写的程序时需要它
内核对 MISC 二进制文件的支持
如果你在这选Y,它将可以将 wrapper-driven 二进制格式嵌入内核。当你使用一些程序的解释器时,比如 Java, Python, .NET或者Emacs-Lisp,或者当你经常通过DOS 仿真器运行DOS程序时,它将非常有用。当你在这个选项选Y,你可以简单地通过在shell打相应命令运行以上的程序,LINUX可以自动匹配正确的格 式。
要使用 binfmt_misc 你可能需要挂载它:
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
你可以选M作为模块,以后再加载,模块名为 binfmt_misc。如果你不知道怎么办,选Y。