注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

瘋人院

lunatic asylum

 
 
 

日志

 
 

Linux内核配置文档  

2009-09-14 14:44:18|  分类: 操作系統 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、       引言:

本文档的内容大部份内容都是从网上收集而来,然后配合一些新的截图(内核版本:V2.4.19)。在每一配置项后会有一个选择指南的部份,用来指导大家怎么样根据自己的情况来做相应的选择;还有在每一个大项和文档的最后会有一个经验谈,它是一些高手们在应对问题和处理特有硬件时的一些经验(这个还得靠各位)。文档最后会发到网上,到时会根据网友们的回复随时进行更新。

二、       配置内核:

Linux内核配置文档 - 堕落天使HE - 堕落Linux内核配置文档 - 堕落天使HE - 堕落

Code maturity level options:代码成熟等级。

1.1.prompt for development and/or incomplete code/drivers.

如果要试验现在仍处于实验阶段的功能,比如khttpd、IPv6等,就必须把该项选择为Y了;否则可以把它选择为N。在Linux的世界里,每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。这个问题是说,有一些drive还在做测试中,问您是否要选择这些drive或支持的程序码。                                       如果键入Y,往后将会出现一些还在测试中的东西给您做选择。(像Java的程序码和PCI bridge),台则就键入N。

       经验谈:

General setup

[*] Support for paging of anonymous memory (swap)

这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空间用来执行很大的程序。默认是选择的。

[*] System V IPC

为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。

有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。

[*] POSIX Message Queues 应该选择

[*] BSD Process Accounting

这里选择Y将会让内核为用户层的进程建立一个帐目(进程通过一个特殊的系统调用来通知内核),

当程序退出时内核会将进程的相关信息记录到帐目文件中,主要包括进程的创建时间、 创建者内存占用等信息。如果你需要就Y吧

[*] Sysctl support

这将提供一个接口让你可以动态的更改一些核心参数与变量,

而不需要重新启动系统。打开这个选项将会增加内核的体积至少8KB。

如果你的内核仅用制作安装与恢复系统系统盘那么可以不选,以减少对内存的占用。

[*] Auditing support 审核的,一般不用选择了

[*] Enable system-call auditing support 不用选择了

(17) Kernel log buffer size (16 => 64KB, 17 => 128KB) 不用选择了

[*] Support for hot-pluggable devices 支持热插拔的,最好选择

[*] Kernel .config support 不用选择

这会把内核的配置信息与相关的文档说明编译进内核中,

以后可以使用一些工具来提取它用来重新构建内核,一般不用选它。

[*] Enable access to .config through /proc/config.gz 不用选择

这个和上面的那个一样把说明文档放在/proc中,所以可以不用选它

[*] Configure standard kernel features (for small systems) --->

为小系统设计的,不用选择了吧

--- Configure standard kernel features (for small systems)

[*] Load all symbols for debugging/kksymoops (NEW) 不用选择

[*] Enable futex support (NEW) 不用选择

Futex(fast user space mutex) 不用选择

[*] Enable eventpoll support (NEW) 不用选择

[*] No-op I/O scheduler (NEW) 不用选择

 [*] Anticipatory I/O scheduler (NEW) 不用选择

[*] Deadline I/O scheduler (NEW) 不用选择

[*] CFQ I/O scheduler (NEW) 不用选择

[*] Optimize for size 内核尺寸最优化,一般不用选择吧

1.      Loadable module support:对模块的支持。

预备知识:

       模块就像你特意插入核心中的某些东西,如果办公室有一个小网络并且有时想用一下(但并不经常),也许你想把网卡编译成一个模块。使用这个模块,机器必运行和存取/libs下的模块,意思是驱动程序(IDE,SCSI等但必须是NFS支持的网卡),文件系统(通常是ext2但也可以是nfs)和核心类型(最好是elf)必须编译在内核并且不能是模块,模块只有核心引导时才起作用,驱动程序(来网络)的存取,和文件系统安装。这些文件必须编译在核心内否则将能安装启动分区。如果安装启动分区和网络,你需要网络系统文件,和己经编译的网卡。为什么要使用模块? 模块化使核心变的更简捷,它减少核心释放大量的受保护的空间。模块的安装和卸载使用的空间是可重复分配利用的。如果你打开机器有90%以上的时间用到一个模块,编译它。运用这类模块是浪费内存的,原因是一旦你编译了模块它们同样将占用大量的内存,核心需要一些代码来挂上模块。记住,核心在保护空间运行,但模块并不是。这么说,并不经常使用我的设备,把它编译成只支持ext2,ide和elf。而一直使用的网卡,把其它的编译成模块:如a.out, java, floppy, iso9960, msdos, minix, vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它们许多只是在这或那用上那么几分钟。严格的说,这样做会使核心增大许多而降低它的执行速度。这时我们就可以把这些可能会用的驱动程序编译成一个—个的模块,在需要用的时候才用insmod这个指令加入核心,不用的时候也能rmmod把它从核心移除,或是用lsmod察看目前所载入的模块。

2.1.Enable loadable module support.

       除非准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。

2.2.Set version information on all module symbols.

通常,我们更新核心版本之后,模块耍重新的编译。这个选项使您不必更新编译模块而能使用以前的模块。可以不选它。但如果您选y,则按照它的说明,您必须有genksyms这个程序(可用whereis指令查看有无此程序)。

2.3.Kernel module loader.

让内核在启动时有自己装入必需模块的能力,建议选上。注意:在开机就会 mount 上来的 partition 的 FS 、device driver 记得要 compiler 进 kernel,不能把它弄成 modules。请不要夸张到为了完全模组化而忘了把ext2fs和IDE dirver compiler 进 kernel 里。

       经验谈:

a.       可加载模块是指内核代码(kernel code)的一些片断,比如驱动程序,当编译内核的时候它们也被单独编译。 因此,这些代码不是内核的一部分,但是当你需要它的时候,它可以被加载并使用。 通常的建议是如果可能,将内核代码编译成可加载模块,因为这样可以使内核更小,而且更稳定。 警告!千万不要将文件系统(File System)部分的代码编译为可加载模块,如果你犯了这个错误,将文件系统(File System)部分的代码编译为可加载模块,结果将是内核无法读取它自己的文件系统。 然后内核无法加载它自己的配置文件——一些很明显是在正常启动Linux时所必需的东西。 我很少使用可加载模块:我喜欢我的内核能够直接和硬件对话,但这只是我自己的偏好。

2.      Processor type and features:处理器类型和特色。

Linux内核配置文档 - 堕落天使HE - 堕落

3.1.Processor family.

它会对每种CPU做最佳化,让它跑得快又好。一般来说,没有选择正确的CPU并不会有重大的影响(特别是选择386 ,这样编译出来的核心也许会比较小但它的速度可能就会变慢了)。所以,最好要知道您的CPU是哪一种。不过,如果您的gCC编译器是2.7.0版以前的。那么只能选择386或是486。通常“/dev/cpu”选项更高级,多数用户并不需要选择它。

3.2.High Memory Support.

只有当你的计算机有超过1GB内存(不是磁盘空间)时才是必须的。 多数计算机的内存从64到512MB(并且拥有8到60GB硬盘空间),因此“High Memory Support”通常并不使用。

3.3.Math emulation.

这项询问是否需L1nux核心模拟数学浮点运算器。如果有486Dx、AMD以及Pentium机器的话,这个选项就不必选了,因为它们都有内建的浮点运算器。协处理器是在386时代的宠儿,现在早已不用了。不过,对于有内建浮点运算器的人来说,选了这个选项并不会因此让内建的浮点运算器失效。但它会增大核心约45KB。

3.4.MTTR (memory type range register)support.

这项允许在PCI或者AGP总线众进行更快速的通讯。 由于现在所有系统都将它们的显卡接在PCI或AGP总线上,你通常需要选择“MTRR”:无论如何,打开这个选项通常都是安全的——即使你的机器没有使用PCI或AGP总线的显卡

3.5.Symmetric multi-processing support.

选项保证内核能够以最佳方式加载多处理器。除非有多个CPU,否则就不用选了。

3.6.Mutiquad NUMA system.

通常也需要多处理器,但它通常是关闭的。

       经验谈:

3.      General setup:常规内核选项。

 

4.1. Networking supporLinux内核配置文档 - 堕落天使HE - 堕落t.

通常每个人都会选择“Networking support”,因为你通常需要它,比如Internel。 Linux有很重的Internet偏向,而且它在没有联网的情况下无法充分发挥优势。 另外,许多其他的操作也网络支持——即使它们看上去跟网络没多大关系。 内核在没有网络支持选项的情况下甚至无法编译。简而言之:一定要打开“Networking support”选项。

              4.2. PCI support.

                     现在的所有系统都使用PCI总线,所以你应该选择相关选项。

              4.3. PCI access mode.

                     PCI存取模式。可供选择的有BIOS、Direct和Any,选Any吧。

              4.4. Support for hot-pluggabel devices.

                     热插拔设备支持。支持的不是太好,可不选。

              4.5. PCMCIA/CardBus support------>PCMCIA/CardBus support.

                     有PCMCIA就必选了。

              4.6. System V IPC.

如果将来想编译dosemu(DOS模拟器),则这个选项一定要选,它是一个让各个程序(process)同步且能彼此交换数据的函数库和一些系统的调用,没它,很多的程序将会无法执行。

              4.7. BSD Process Accounting.

              4.8. Sysctl support.

除非你的内存少的可怜,否则你应该启动这个功能,启用该选项后内核会大8K,但能让你直接改变内核的参数而不必重新开机。以上三项是有关进程处理/IPC调用的,主要就是System V和BSD两种风格。如果你不是使用BSD,就按照缺省吧。

              4.9. Kernel core (/proc/kcore/) format.

                     现在的Linux发行版以ELF格式作为它们的“内核核心格式”。

              4.10. Kernel support for A.OUT binaries.

a.out的执行文件是比较古老的可执行码,用在比较早期的UNIX系统上。Linux最初也是使用这种码来执行程序,一直到ELF格式的可执行码出来后,有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码。将来势必完全取代a.out格式的可执行码。但目前由于沿有许多的程序还没有取代过来,所以只好选择Y,等将来有一天,全部的程序都变成了ELF的天下时,那时再disable掉。

              4.11. Power Management support.

                     电源管理支持。

              4.12. Advanced Power Management BIOS support.

高级电源管理BIOS支持。这通常是用在笔记本电脑上的东西,如果您有APM的BIOS,支持省电的设备的(有电池的那种),那么您可以选上这项,一般人这一项是选n,以避免一些可能会发生的问题。后有8个选项。ATX主板需要这两个选项来自动关闭计算机(turn off the computer,包括关闭电源)。

       经验谈:

4.      Memory Technology Devices (MTD):配置存储设备。

5.1. Memory Technology Devices (MTD) support.

你需要这个选项来使Linux可以读取闪存卡(Flash Card)之类的存储器。 闪存卡通常用于数码相机。 通过这个选项,Linux可以读取闪存卡(从特殊的设备中,比如读卡机),并且将图片保存为.jpg格式。 除非你确定你需要它,否则不必打开它:如果你发现自己需要,你可以在以后加上。

5.      Parallel port support:配置并口。

6.1. Parallel port support.

如果不打算使用,就别选了。

6.      Plug and Play configuration:即插即用支持。

7.1. Plug and Playsupport.

几乎所有人都有即插即用设备,因此需要这个选项的支持。 打开这个选项使内核能够自动配置即插即用设备并且使它们在系统中能够使用。 有时需要在BIOS中打开“Plug & Play OS”,否则Linux(当然Windows也一样)无法配置即插即用设备。

7.2. ISA Plug & Play support.

       选项需要以即插即用模式运行的ISA卡(ISA Card)。 例如AWE64声卡。ISA总线(ISA bus)从来都没有即插即用标准,这增加了配置这些板卡的难度。 在2.4.x内核之前的早些时候,Linux用户在启动时必须呼叫(call)“isapnp”程序(isapnptools包,使用rpm qil isapnptools查看包含的所有文件)。 “isapnp”读取“/etc/isapnp.conf”文件。 这个文件包含不同板卡使用的所有端口,地址和中断。 如果/etc/isapnp.conf中的信息不正确,或者“isapnp”没有被激活,即插即用设备就无法使用,甚至网卡、modem、声卡也无法工作。 打开“ISA Plug & Play support”选项来代替以前的工序:不再需要/etc/isapnp.conf文件。 检测和配置工作都自动进行。 在SuSE 7.1中,在编译2.4.x内核后我必须重命名/etc/isapnp.conf为“/etc/isapnp.conf.old”之类的名称。因为内核和“isapnp”使用相同的资源,造成很惨的后果。 问题在于SuSE 7.1(以及更老的版本)在启动时自动激活“isapnp”,即使内核已经包括了对即插即用的必要支持。 这只是对于老Linux系统而言,新的系统默认不使用“isapnp”。

7.      Block devices:块设备支持。

8.1. Normal PC floppy disk support.

       普通PC软盘支持。每个人都要使用软盘(floppy),所以这个选项要打开(或者,象我这样,作为一个可加载模块)。倘若/etc/modules.conf或者/etc/conf.modules文件在你的Linux发行版中已经被适当配置了,当需要访问软盘的时候,内核会自动加载必须的模块。其他的选项在你使用并口链接IDE存储设备的时候是必需的,但是它们通常是关闭的。“loopback device support”选项可能例外。在Linux下,刻录(burn)光盘之前你通常需要制作一个光盘镜像,在查看镜像文件的内容时需要“loopback device”。 我选择了这个选项作为可加载模块。

8.2. XT hard disk support.

       支持XT的古董硬盘,这是IBM电脑时代的东西,如果您还有这种很旧很旧的硬盘。那么,您可以把它编进核心或是编成一个模块。大部分的人这个选项都是选择N的。

8.3. Loopback device support.

       这个选项的意思是说,可以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。不过,如果您 想做到这点的话,您必须有最新的mount程序,版本是在2.5X版以上的。而且如果您希望对这个文件系统加上保护,则您必须有des.1.tar.gz这个程序。注意:此处与网络无关。

8.      Multiple devices driver support:多设备驱动支持。

9.1. Multiple devices driver support.

       普通Linux用户通常不需要RAID(廉价冗余磁盘阵列)或者LVM支持。 “RAID”的意思是系统使用两块或两块以上硬盘存储并行信息。 当一块磁盘出现问题的时候另一块可以继续工作,系统不停顿。 LVM让使用增加一块硬盘来扩展一个分区成为可能。。 在实际应用中,这意味着你不必重新分区或将一个小的分区复制到一个大分区中。 路径名也不会改变。 这可能会十分方便,但是普通用户并不需要它。

9.      Networking options:网络选项。

10.1. Packet Socket.

       选择“Y”,你需要这个选项来与网卡进行通信而不需要在内核中实现网络协议。 在这里我可以简捷一些:一般情况下,打开这个选项。 大多数选项是关闭的,除非你需要特殊的支持。

10.2. TCP/IP networking.

       选择“Y”,内核将支持TCP/IP协议。这个选项无论如何请您选择Y,即使没有网络卡,或是没有连到网络上的设备,在linux上仍有所谓的lookback设备而且有些程序需要这个选项。在说明文件中提到,如果您没有打开这个设定,则X-window system可能会有问题(回为它也需要 TCP/IP)。

10.3. IP:multicasting.

       所谓的multicasting是群组广播,它是用在视频会议上的协议,如果想送一个网络封包(网络的数据),同样的一份数据将送往十部机器上。您可以连续送十次给十台机器(点对点的传送),也可以同时送一次,然后让十台机器同时接收到。当然后者比前者好,由于视频会议要求是最好每个人都能同时收到同一份信息,所以如果您有类似的需要,这个选项就要打开。同时您还必须去找相关的软件。

       经验谈:

a. 我选择了“Network packet filtering (replaces ipchains)”,因为我使用了SuSE的标准防火墙(Standard Firewall)。 防火墙可以保护你的机器不受来自外部Internet的攻击——至少当你正确配置了防火墙的时候是如此。 内核级的防火墙保护显然是十分优越的。为了使防火墙能够正常工作,SuSE Linux需要对ipchains的兼容支持(Backwards Support)。 因此,我为我的SuSE Linux打开了这个选项。 如果你也在其他发行版中使用了防火墙,请参考它们的手册。你需要“Unix domain sockets”来进行网络链接,但也可以使用其他的东西: XWindow要自动使用Unix sockets,所以如果没有打开这个选项,XWindow将无法启动。 通常这个选项是打开的。 “TCP/IP networking”选项包括了Internet和内部网络所需要的协议。 通常你会希望激活TCP/IP支持。 如果你不确定是否应该打开一个选项,参考一下帮助文档。 如果你还是不知道是否应该打开它,一般来说,就把它打开,然后通过试用来决定是否保留。 将某些特定的选项编译为模块也是一个很好的办法。

10.  Telephony Support:电话支持。

11.1.Linux Telephony Support.

       这个选项只有当你在计算机中使用电话卡的时候才有用,比如在Internet上打电话。 大多数普通用户没有电话卡,因此不需要这个选项。

11.  ATA/IDE/MFM/RLL support:配置对ATA,IDE,MFM和RLL的支持。

12.1. ATA/IDE/MFM/RLL support.

       几乎每个人都需要这些协议,除非你的机器只有SCSI硬盘而没有其他任何类型的硬盘。 因此,大多数用户都应该把它打开。 点击它下面的那一栏将会出现一个有更详细配置选项的菜单。仔细填写它们:它们极为重要!

12.2.Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support.

       选项是每个使用IDE/ATAPI界面的人都需要的。 包括硬盘,磁带机,ZIP盘,光驱(CDROM)和刻录机(CD-R(W))。 基本上现在的所有计算机(译者注:这里指的是PC)都使用IDE/ATAPI界面,因此这个选项必须打开。

12.3. Include IDE/ATA-2 DISK support.

       选项在支持硬盘的时候需要。 因此这个选项也必须打开,除非你的机器是一个纯粹的SCSI系统。

其它的就使用缺省的选项吧,如果你使用了比较特殊的设备,比如PCMCIA等,就到里面自己找相应的选项吧。

       经验谈:

a.       如果你有ATAPI CDROM的话,应该打开“include IDE/ATAPI CDROM support”选项。 ATAPI的CD-R(W)需要仿真为SCSI的才能被访问。SCSI仿真可以用来访问CDROM和CD-R(W)。 如果你使用仿真SCSI的方式来访问CDROM,你将会遇到问题,比如当你挂载(mount)CD的时候出现错误信息(Error Message),或者使用CDROM播放CD唱片(Audio CD) 最好的办法是象图这样,将“include IDE/ATAPI CDROM support”和“SCSI emulation support”选项都打开。 需要SCSI仿真的设备通常是CD-R(W),可以在/etc/lilo.conf中加入“append="hdd=ide-scsi":”行进行定义,这将在“配置lilo”中进行讨论。 因为我有一个使用ATAPI界面的内置ZIP驱动器,所以我把“include IDE/ATAPI FLOPPY support”选项打开。 如果你有软盘类的驱动器(译者注:包括ZIP盘、LS-120等大容软驱,但不包括MO磁光盘)。 大部分主板使用“PCI IDE”(译者注:就是指通过占用PCI总线带宽进行通信的IDE接口)对硬盘、CDROM和软驱进行访问,因此这个选项必须打开。 同样的有两种开启DMA的可能性。 DMA使你的硬件直接访问内存,而不需要处理器的干预。 因此,正如你所希望的,IDE磁盘的访问速度会加快。 “sharing PCI IDE interrupts support”是关闭的,因为你通常不需要它。 的确,某些IDE控制器允许和其他设备共享中断,比如网卡。 不幸的是,共享IDE中断会使磁盘性能下降,因此通常你不需要共享中断,除非这是解决硬件问题的唯一办法。

Linux内核配置文档 - 堕落天使HE - 堕落

b.      我的主板有一颗Pentium II CPU,而且使用的是Intel的芯片组,因此我希望能够对该芯片组提供特殊支持。 当你选择你自己的内核选项时,你应该看看图没有显示的其他芯片组。

Linux内核配置文档 - 堕落天使HE - 堕落

12.  SCSI support:SCSI设备的支持。

13.1. SCSI support.

       如果你有一块SCSI卡,你当然需要打开相关选项。这张截图只显示了当你为你的CD-R(W)选择“SCSI emulation support”

Linux内核配置文档 - 堕落天使HE - 堕落

              13.2. SCSI disk support.

                     指硬盘而言,如果有SCSI硬盘,那么就要选这个选项。

              13.3. SCSI tape support.

                     指磁带机而言,如果您有SCSI的磁带机,那么就要选这个选项。

              13.4. SCSI CDROM support.

                     指CDROM,如果您有SCSI光驱,这一项一定要选。

              13.5. SCSI generic support.

指其他有关SCSI的东西,也许您有一台SCSI的扫描器或是烧录机,或是其他有关SCSI的配备,您就要选这一项。而且,除此之外,您还必须准备关于这些配备的软件。

              13.6. Probe a11 LUNs on each SCSI device.

通常这个选项大部分的人都不会选。我们举个例子来说,如果您的SCSI光驱是那种多片装的,就是一台光驱,但可以一次放好几片光盘片的那种。这种我们叫做Lun。I2O Device Support:配置I2O设备支持。

              13.7. Verbose SCSI error reporting(kernel size+=12K).

如果认为您的SCSI硬件配备有些问题,想了解一下它出现的错误信息。那么您可以把这个选项选y,Linux核心会告诉您有关于您的SCSI配备的问题(如果有的话)。不过,它会增加核心约 12KB左右。

              13.8. SCSI low—level drivers.

                     下面总共有接近30张的SCSI卡,您可以依需求做选择SCSI卡牌子。

13.  I2O Device Support:I20设备支持。

14.1. I2O Device Support.

       如果你有I2O界面,你必须选择这个选项。大多数人没有,如果你也没有的话,可以直接将它关闭。

14.  Network Device Support:网络设备支持。

15.1. Network Device Support.

       网络设备支持。上面选好协议了,现在该选设备了,可想而知,内容肯定多得很。还好还好,里面大概分类了,有ARCnet设备、Ethernet(10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support几大类。我用的是10/100M的以太网,看来只需要选则这个了。还是10/100M的以太网设备熟悉,内容虽然多,一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support,为了免得麻烦,编译到内核里面好了,不选M了,选Y。耐心点,一般说来你都能找到自己用的网卡。如果没有,你只好自己到厂商那里去要驱动了。

15.2. Dummy net driver support.

       如果有SLIP或PPP的传输协议,那么要把这一项打开。因为一来它不会让您的Linux核心增大。二来,对某些应用程序来说,它可以让我们模拟出来的TCP/IP环境更像TCP/IP环境。如果您没有SLIP或PPP协议,就不用打开了。#EQL(serial line load balancing) support------如果有两个MODEM,两条电话线而且用SLIP或PPP协议,可以用这个Driver以便让您的MODEM有两倍的速度。当然,在网络的另一端也要有同样的设备。

15.3. PPP(point-to-point)support.

       点对点协议,近年来,PPP协议已经慢慢的取代SLIP的规定了,原因是PPP协议可以获取相同的IP地址,而SLIP则一直在改变IP地址,在许多的方面,PPP都胜过SLIP协议。

15.4. SLIP(serial line) support.

       这是MODEM族常用的一种通讯协议,必须通过一台Server(叫ISP)获取一个IP地址,然后利用这个IP地址,可以模拟以太网络,使用有关TCP/IP的程序。

15.5.1. Ethernet(10 or 100Mbit).

       如果您使用网络卡,那么这个选项一定要选y,否则以下对网络卡的选择将不会出现。或是您有网络卡,这时您同样的也要选y。之后,下面会列出许多网络卡让您选择。像我们平常用的都是NE2000相容卡。

15.5.2. EISA, VLB, PCI and on board controllers.

       选择网络卡,包括直接附在主机板上的那种。如果选择y,则底下会列出其他的网络卡让您做选择,这些卡对于一般人来说很少会去用到。所以大部分的人这项是选N的。

15.5.3. Pocket and portable adaptors.

       通常用在可携式的电脑上,这类型的网络卡(口袋型的),由于体积很小在安装和取下方面很方便,因此笔记本相关电脑上便常常采用这种网络卡。

15.5.4. Token Ring driver support.

       Token Ring是 IBM电脑上的网络。它叫令牌环网络,和以太网络是很类似的东西。如果您希望使用的Token Ring网络卡以便连接到这种网络,那么选Y,一般人都选N。

15.5.5. ARCnet support.

       这也是一种网络卡,通常一般人用不到,所以选n。如果您有这样的网络卡,请看Documentation/networking/arcnet.txt的说明。

       经验谈:这一般是新手难办的一个地方。

a.       我从来都没有在没有网卡支持的情况下将Linux内核编译成功过。 因此,你应该打开这个选项。 你还应该打开虚拟驱动(Dummy Driver),作为内核的一部分或者一个可加载模块。 当没有物理网卡的时候,Linux需要一块虚拟网卡(Dummy Network)。即使已经有了物理网卡,Linux仍然经常使用虚拟网卡。 在图所示的菜单中,你可以选择网络类型和网卡。 注意,如果你想要通过modem来访问Internet的话,你需要进行更多的设置: 你必须打开“PPP support for async serial ports”(用于COM端口)或者“PPP support for sync tty ports”(用于通过诸如SyncLink adapter进行的高速连接)选项以提供PPP支持。 如果你没有打开它们,内核将会告诉你PPP模块(PPP Module)不存在——即使你已经编译了,错误信息(Error Message)对于查找真正问题的所在几乎没有作用。 你可以将它们都选上,这样可以避免一些问题:如果内核需要它们,就会使用它们,如果不需要,就不用。

Linux内核配置文档 - 堕落天使HE - 堕落

我的以太网卡是一块使用3c509/3c529芯片的3COM百兆网卡。 因为我并不需要与网络进行物理连接(我有网卡,但是我并不通过modem来访问网络),因此我将这个趋同编译成一个可加载模块,以便万一要需要网卡的时候可以使用。 你当然需要选择与你机器的情况相符的网络类型和网卡。另外,你必须使用诸如SuSE Linux下的“yast2”之类的配置程序配置网络链接。

Linux内核配置文档 - 堕落天使HE - 堕落

15.  Amateur Radio support:配置业余广播支持。

16.1. Amateur Radio support.

       如果你希望使用业余广播支持,应该打开这个选项,并且打开相应的驱动。 多数人不需要这个选项。

16.  IrDA(infrared)support:配置红外线(无线)通讯支持。

17.1. IrDA(infrared)support.

       如果你有无线设备,比如无线鼠标或无线键盘,你应该打开这个选项。 多数桌面机器不需要这个选项。

17.  ISDN subsystem:配置ISDN。

18.1. ISDN support.

       如果使用ISDN上网,这个就必不可少了。ISDN(Integrated Services Digital Network),它的中文名称是综合数字服务网络,是一个利用电话线,把声音,影片信息以数字的方式传送的数字网络,它需要电话交换机设备有支持ISDN,这通常需要电信局来做安装,对于在家工作的人来说,ISDN可能是最舒适最便宜的一种方式,因此有愈来愈多的人使用它。不过,除非是公司,不然一般人很少会使用到ISDN的,所以这部分的选项大都选N。如果您选择Y,则下面会出现一些有关ISDN的问题。如果需要用到ISDN,可以去看看杂志的介绍。只要是有关网络的杂志应该都会有介绍。还需要启用Support synchronous PPP选项(参考PPP over ISDN)。

18.  Old CD-ROM drivers(not SCSI、not IDE):配置老CDROM。

在486和386机器中,CDROM并不是通过硬盘IDE(ATAPI)控制器连接的,而是通过声卡或一块特殊的板卡。 使用这些老CDROM需要选择对应的驱动。 这个选项在现在的系统中显得多余。

19.  Input Core Support:

这个选项提供了2.4.x内核中最重要的特性之一的USB支持。 Input core support是处于内核与一些USB设备之间的层(Layer)。如果你拥有其中一种USB设备,你必须打开“input core support”选项。 现在所有的主板都有USB接口,所以,原则上你应该打开它。

20.  Character devices:字符设备。

21.1. Virtual terminal.

       选择“y”,内核将支持虚拟终端。

21.2. Support for console on virtual terminal.

       选择“y”,内核可将一个虚拟终端用作系统控制台。

21.3. Standard/generic (dumb) serial support.

       选择“y”,内核将支持串行口。标准序列接口的选定。如果您是用serial的鼠标(大部分的人都是用这个),或是MODEM的话,则这一项一定要选。大部分的人这一项都选y。

21.4. Support for console on serial port.

       选择“y”,内核可将一个串行口用作系统控制台。

21.5. I2C support.

       I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For Linux,该项必选。

21.6. Mice.

       鼠标。现在可以支持总线、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad------根据需要选择。非串行的鼠标,支持象PS/2。看一看你鼠标的键。许多双键鼠标是PS/2,即使它们的连接看起来象串行的。

21.6.1. PS/2 mouse (aka "auxiliary device") support.

       如果用户使用的是PS/2鼠标,则该选项应该选择“y”。

21.7. Joysticks.

       手柄。即使在Linux下把手柄驱动起来意义也不是太大,游戏太少了。

21.8. Watchdog Cards.

       虽然称为Cards,这个可以用纯软件来实现,当然也有硬件的。如果你把这个选中,那么就会在你的/dev下创建一个名为watchdog的文件,它可以记录你的系统的运行情况,一直到系统重新启动的1分钟左右。有了这个文件,你就可以恢复系统到重启前的状态了。

       经验谈:

a.        

Linux内核配置文档 - 堕落天使HE - 堕落

最上面的选项(“virtual terminal”)允许在XWindow中打开xterm和使用字符界面登录。 通常这个选项是打开的。 第二个选项(“support for console on virtual terminal”)告诉内核将诸如模块错误、内核错误启动信息之类的警告信息发送到什么地方, 在XWindow下,通常设置一个专门的窗口来接收内核信息,但是在字符界面下,这些信息通常被发送到第一个虚拟终端(Virtual Terminal)(CTRL+ALT+F1)。 将这个选项打开。 你还可以选择将信息发送到串口(Serial Port)设备,比如打印机或其他的终端(第四个选项)。 如果将信息发送到打印机,你还必须使用选项三激活串口。 同样,如果你使用串口鼠标(Serial Mouse),你也必须激活串口。 再说一遍,选项三(“standard/generic (8250/16550 and compatible UARTs) serial support”)通常是打开的。 在我的系统中,我将它编译为一个可加载模块。原因是在启动的时候SuSE老抱怨“serial support”丢失,而如果确定模块的确存在,将其编译为可加载模块是避免上述抱怨的的好办法。 配置字符型设备是极为重要的工作。 如果你的配置不正确,你有可能得到一个根本不能工作的系统。

如果你想使用远程使用自己机器上的xterm,比如通过telnet或者ssh,你必须打开“unix98 PTY support”选项。 桌面系统看上去似乎不需要这个选项,但是许多后台进程需要使用这个选项。 因此,无论如何,将它打开是个好主意,至少可以避免启动时显示错误信息(至少SuSE是这样)。 所有拥有并口打印机的人当然需要“Parallel printer support”。 不过,并不是所有人都需要并口:USB打印机就不需要。 内核信息可以通过打开“Support for console on line printer”选项传送到并口:通常,你并不需要它。 如果你有某些设备需要占用并口,你需要“support for user-space parallel port device drivers”选项,但是通常不必。 同样,你通常不需要“I2C support”选项:这是视频处理卡所需要的,但是如果你发现你需要它,你通常可以在以后加入到内核中——只要你觉得内核运行得好。 如果你使用鼠标和游戏杆,你需要打开相应的支持,但是并不是所有鼠标都使用这个驱动。 现在的CD-R(W)使需要“QIC-02 Tape support”的磁带机(Tape Drives)大量闲置,因此这个选项通常是关闭的。

Linux内核配置文档 - 堕落天使HE - 堕落

如果你使用串口鼠标,你根本不需要这个选项的任何项目,但是所有其他类型的鼠标则需要在这里进行参数配置。 如果你使用最初的总线鼠标(ORIGINAL Bus Mouse)你需要打开最上面的选项。 现在的许多计算机使用另外一种鼠标,通常(而且是错误的)称作“busmouse”或者“PS/2鼠标”。 这些鼠标通常连接到/dev/aux,并且插在一个与键盘相同的小接口中。 通常,这种鼠标通过键盘来连接到计算机。 要让这些鼠标正常工作,你必须打开如图29所示的选项,“mouse support (not serial and bus mice)”和“PS/2 mouse (aka "auxiliary device" support)”。

Linux内核配置文档 - 堕落天使HE - 堕落

这些是上面没有讨论的内核选项。 它们通常是关闭的。 “Ftape, the floppy tape device driver”选项需要对连接到软驱控制器的磁带机的支持。 甚至即使你有一个那样的磁带机,这个选项都不是必须的,至少不是首要的。 其他选项需要3D显卡。 如果你有一块连接到AGP总线(AGP Bus)的显卡,你需要打开AGP支持,还需要相应的驱动(在/dev/agpgart(AGP支持))。 注意,你可以编译一个不包含这些选项,但是能够正常工作的内核,但那没必要! 如果没有这些选项,XWindow 4.0或者更高版本(被现在的多数发行版使用)将无法工作。 我的机器有一块AGP显卡,nVidia TNT2,但是内核的相应模块并不支持这块显卡(nVidia拒绝透露开发驱动所必须的技术细节)。 很不幸,打开AGP支持对于我来说没有多大意义。 虽然有这个问题,我仍然可以在不需要内核驱动的情况下使用XWindow 4.0。 “Direct rendering support”是为XWindow 4.0提供的图形加速选项。 要想使用这个选项,你的显卡必须能够被支持,而且你必须使用XFree86 4.0及以上版本。 另外,你还需要打开“AGP support”选项。 你可以编译一个不包含这些选项的内核,它照样可以正常工作。

21.  Multimedia Devices:配置多媒体设备。

如果你有一块视频处理卡或者广播卡,需要打开这个选项。 跟前面一样,这个选项不是必需的。

22.  File System:配置文件系统。

23.1. Kernel automounter support.

       选择“y”,内核将提供对automounter的支持,使系统在启动时自动 mount远程文件系统。

23.2. DOS FAT fs.

       DOS FAT文件格式的支持,可以支持FAT16、FAT32。这个选项是DOS的文件系统,如果您没有选y,则下面的MSDOS,VFAT,umsdos将不会出现。

23.3. MSDOS fs support.

       如果你想要在 linux 下使用你硬盘中的 MS-DOS 分割区,或是想将用 MS-DOS 格式化的磁盘挂进来的话,回答y 。

23.4. FAT(Windows95) fs support.

       windows95所支持的文件系统,是我们常说的vfat文件系统,如果您的系统中装有windows95,那么选择这个文件系统将对以让您看到windows95的长文件名。

23.5. umsdos: UNIX like fs on top of std MSDOS FAT fs.

       如果把Linux装进DOS的一个目录下那么您则要选择这一项。不建议这样做,因为如此一来,就不能看到长文件名了。而且效率上不是很好。

23.6. Quota support.

       Quota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同使用一台主机的情况中十分有效。

23.7. /proc file system support.

       这是最 slick 的文件系统之一。它不是你硬盘分割区里的任何东西,不占用硬盘的空间,而是核心与程序之间的文件系统介面,它表示的只是内存里头的状况和各个程序执行的情形,它也记录了您硬件上配备。。许多程序工具(像″ps ″)都会用到它。如果已经将它安装好了,有空不妨试试看″cat /proc/meminfo ″或者是″ cat /proc/devices ″。有些 shells ,像是 rc ,会用 proc/self/fd(在其它系统上为 /dev/fd )来处理输出入。几乎可以确定你在这里得要回答y ,有许多重要的 Linux标准工具是靠它来运作的,否则有些指令会出问题。

23.8. ISO 9660 CD-ROM file system support.

       光盘使用的就是ISO 9660的文件格式。

23.9. NTFS file system support.

       ntfs是NT使用的文件格式。

23.10. UFS filesystem support.

       这是BSD,SunoS,FreeBSD,NetBSD或Nextstep所使用的文件系统。如果您在电脑上有这些操作系统的话,那么可以选这一项。否则一般人都选n。

23.11. Network File Systems:网络文件系统。

23.11.1. NFS file system support.

       如果你在网络环境下而且想要分享档案,回答 y 。如果希望挂上别的电脑的文件系统,那么这个选项一定要选进去。它可以让您利用网络把别人的硬盘当成自己的来使用(把它变成一个目录)。对于一般人来说,这个选项是选y。

23.11.2. SMB filesystem support.

       这个文件系统让您可以挂上windows95或windowsNT的文件系统,也就是您也可以抓到在windows下,网上邻居上的电脑。

23.12. Partition Types.

分区类型,该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。

              23.13. Native Language Support:本地语言支持。

       经验谈:

a.        

Linux内核配置文档 - 堕落天使HE - 堕落

在这里,你可以指定Linux能够访问的文件系统。 或许你希望制作一个能够访问Windows分区和Windows软盘的内核,但是你必须保证内核可以访问Linux自己的ext2文件系统,或者是更新的ReiserFS文件系统。 如果你没有这样做,Linux会无法启动,因为内核无法读取它自己的启动盘。要想访问DOS/Windows软盘和分区,你需要打开“DOS FAT support”选项:但是要想访问Windows NT/2000的分区,你需要另外一个只读(Read-only)驱动,这将在后面进行选择。 要想读写DOS/Windows分区和软盘,你需要打开“MSDOS fs support”选项(注意,“DOS FAT support”并不提供读写功能)。 事实上,每个人都希望这样,因此通常这个选项是开着的。 “VFAT”需要Windows95/98的长文件名支持。我的机器是一个可以通过lilo启动Windows 98和Linux的双重启动系统(dual boot system)。 因此,我需要激活“VFAT”。 你需要加入对ISO 9660的支持来读取标准格式的光盘(CD)。 “Joliet extensions”选项允许在ISO 9660标准中使用长文件名。 多数人都希望能够读取现在的光盘,因此这些选项通常也是打开的。 图详细讲述了一些附加选项,其中包括包括Linux的ext2文件系统。

Linux内核配置文档 - 堕落天使HE - 堕落

/proc目录中的文件包含了关于系统状态的许多重要信息,比如那些中断正在使用。 一般来说,你应该把这个选项(“/proc file system support”)打开。。 “Second extended fs support”选项针对Linux的标准文件系统(Ext2 FS) 你必须打开这个选项,并且编译进内核(不是作为可加载模块)! 图32和33没有显示“ReiserFS”选项,它也可以在这里打开:Ext2文件系统的继承者,ReiserFS能够更好的对付由于断电或者类似情况而带来的对文件系统的破坏。 目前ReiserFS仍然处于开发阶段,因此被标志为试验代码。 即使是这样,多数发行版现在都已经支持ReiserFS,但是,虽然ReiserFS被认为会在将来取代Ext2,我现在并不推荐将它作为所有分区的文件系统。 如果你(在Windows下)使用一个叫“packetCD”的将光盘虚拟成低速磁盘的软件,你需要打开“UDF file system support”选项 这对在与其他PC交换数据时十分方便。 在Linux下通过将这些被封包的光盘挂载(mount)为UDF文件系统也可以进行读取,比如使用命令“mount -t udf /dev/scd0 /cdrom”。 这一部分还包括“Network file systems”、“partition types”和“Native language support”选项。 你不必选择“Network file systems”,除非你的计算机处于一个需要使用“Network file systems”选项的大型网络之中,“SMB file support”选项也是一样,对于普通的单机(Standalone Computer)来说,并不需要这些选项。 “Partition Types”选项是一个很高级但对于有效的使用Linux内核来说并不必要的选项。 最好是关闭它。

b.      不知道需要那些文件系统怎末办?

键入″ mount ″它看起来会像这样:

      sunlyy% mount       

      /dev/hda1 on / type ext2 (defaults)         

 /dev/hda3 on /usr type ext2 (defaults)        

      none on /proc type proc (defaults)        

      /dev/fd0 on /mnt type msdos (defaults)    

仔细看看每一行;在” type ”后面的那个字就是文件系统的格式。在这个例子中,我的 / 和 /usr 分割区是 second extended 格式,我使用 /proc ,而且挂有一张以msdos (bleah) 为文件系统格式的磁片。如果你有使用 /proc ,可以试试″cat /proc/filesystems ″。它会给你一份目前使用的核心所支援的文件系统列表。

23.  Console drivers:配置控制台驱动。

24.1. VGA text console.

       选项在VGA模式下启动字符模式。 多数人都需要它,因此这个玄学爱你跟通常是开着的。 只有一些386计算机没有VGA兼容显卡,选择这个选项对于现在的多数计算机来说都没有问题。

24.2. video mode selection support.

       使启动的时候能够使用字符模式的分辨率。 如果你希望一行能够有更多的字的话,这通常会给你提供方便,不过通常你不必打开它们。 下面两个选项是试验性质的,我建议你关闭它们。

24.  Sound sound:声卡驱动。

在这部分,你可以配置声卡。 如果你的Linux发行版使用ALSA的声卡驱动(比如SuSE 6.3及以上版本),将“sound card support”作为可加载模块就足够了。 ALSA驱动将会在待会儿被编译并连接进来(见“SuSE和ALSA声卡驱动”)。 如果你的发行版使用的是内核的标准声卡驱动,你必须正确选择你使用的声卡。 事实上,这里列出了所有牌子的声卡,因此,理论上选择声卡不成问题。 如果你的声卡在你的发行版的标准内核下工作的很正常,你也可以使用配置程序(比如SuSE的“yast2”)来找出你的声卡使用什么驱动。 请放心,声卡并不是十分关键的:如果某些地方出错,你将会失去音效,但是内核仍然可以正常工作。

25.  USB support:配置USB支持。

26.  kernel hacking:配置“kernel hacking”选项.这很简单:不要打开!

 

附:(随时更新)

(1).参考文档:

       http://www.linuxfocus.org/ChineseGB/July2002/article252.shtml

 

 

 

 

 

 

Linux 2.6.20.x内核编译配置选项简介收藏

说明1:

文字中的Y表示选择进内核。M表示编成模块。N表示不选择。有的只能选Y,有的只能选M。

在make menuconfig 下,*表示Y,M表示M,空白表示N。

make xconfig下,√ 表示Y,? 表示M,空白表示N。

说明2:

菜单中,有的选项你选了Y才出现,有的选了Y,它反而不会出现。有的选项根本不会提供选择。所以我提供的菜单项应该不是最完整的设置选项。如果你碰到了新的选项,你可以认真看它的英文说明,或者通过上网搜索、在论坛提问等方式来了解它。

1. Code maturity level options 代码完成等级选项

1.1. Prompt for development and/or incomplete code/drivers

对开发中的或者未完成的代码和驱动进行提示。

LINUX 下的很多东西,比如网络设备、文件系统、网络协议等等,它们的功能、稳定性、或者测试等级等等还不能够符合大众化的要求,还处于开发之中。这就是所谓的阿尔法版本:最初开发版本;接下来的是BETA版本,公开测试版本。如果这是阿尔法版本,那么开发者为了避免收到诸如“为何这东西不工作”的信件 的麻烦,常常不会让它发布出去。但是,积极的测试和使用阿尔法版本对软件的开发是非常好的。你只需要明白它未必工作得很好,在某些情况有可能会出问题。汇报详细的出错情况对开发者很有帮助。

这个选项同样会让一些老的驱动的可用。很多老驱动在将来的内核中已经被代替或者被移除。除非你想要帮助软件的 测试,或者开发软件,或者你的机器 需要这些特性,否则你可以选N,那样你会在配置菜单中得到较少的选项。如果你选了Y,你将会得到更多的阿尔法版本的驱动和代码的配置菜单。

2. General setup 常规安装选项

2.1. Local version - append to kernel release

在你的内核后面加上一串字符来表示版本。这些字符在你使用uname -a 命令时会显示出来。你的字符最多不能超过64位。

2.2. Automatically append version information to the version string (LOCALVERSION_AUTO)

自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl的支持。

由于在编译的命令make-kpkg 中我们会加入- - append-to-version 选项来生成自定义版本,所以这里选N。

2.3. Support for paging of anonymous memory (swap)

这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多的内存空间用来执行很大的程序。这个虚拟内存在LINUX中就是SWAP分区。除非你不想要SWAP分区,否则这里必选Y。

2.4. System V IPC (IPC:Inter Process Communication)

中间过程连接是一组功能和系统调用,使得进程能够同步和交换信息。这通常来说是好事,有一些程序只有你选择了Y才能运行 。特别地,你想在LINUX下运行 DOS仿真程序,你必须要选Y。

你可以用info ipc 命令来了解IPC。

一定要选Y。

2.4.1. IPC Namespaces (IPC_NS)

IPC命名空间,命名空间的作用是区别同名的东西,就比如李宁和张宁,都叫“宁”,加个姓才能区分。这个选项也是为不同的服务器提供IPC的多命名,达到一个IPC提供多对象支持的目的。不清楚的话选N。

2.5. POSIX Message Queues 可移植操作系统接口信息队列

可移植操作系统接口信息队列是IPC的一部分,在通信队 列中有较高的优先权来保持通信畅通。如果你想要编译和运行在Solaris操作系统上写的 POSIX信息队列程序,选Y,同时你还需要 mqueue 库来支持这些特性。它是作为一个文件系统存在(mqueue),你可以mount它。为保证以后的不同程序的协同稳定,如果不清楚,选Y。

2.6. BSD Process Accounting BSD进程统计

如果你选Y,用户级别的程序就可以通过特殊的系统调用方式来通知内核把进程统计信息记录到一个文件,当这个进程存在的时候,信息就会被内核记录进文件。信息通常包括建立时间、所有者、命令名称、内存使用、控制终端等。这对用户级程序非常有用。所以通常选Y是一个好主意。

 2.6.1. BSD Process Accounting version 3 file format

选Y,统计信息将会以新的格式(V3)写入,这格式包含进程ID和父进程。注意这个格式和以前的 v0/v1/v2 格式不兼容,所以你需要升级相关工具来使用它。

2.7. Export task/process statistics through netlink (EXPERIMENTAL)

处于实验阶段的功能。通过通用的网络输出工作/进程的相应数据,和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD类似,数据将在进程结束时送入用户空间。如果不清楚,选N。

2.8. UTS Namespaces

通用终端系统的命名空间。它允许容器,比如Vservers利用UTS命名空间来为不同的服务器提供不同的UTS。如果不清楚,选N。

2.9. Auditing support 审计支持(AUDIT)

允许审计的下层能够被其他内核子系统使用,比如SE-Linux,它需要这个来进行登录时的声音和视频输出。没有 CONFIG_AUDITSYSCALL 时(即下一个选项)无法进行系统调用。

2.9.1. Enable system-call auditing support (AUDITSYSCALL)

允许系统独立地或者通过其他内核的子系统,调用审计支持,比如SE-Linux。要使用这种审计的文件系统来查看特性,请确保 INOTIFY 已经被设置。

上一项的子选项,两项要选就都选。我并不清楚审计的意义,可能是为了调用其他内核的东西吧。所以就都选了,因为我机器上还有个官方2.6.15-27内核。

2.10. Kernel .config support

这个选项允许.config文件(即编译LINUX时的配置文件)保存在内核当中。

它 提供正在运行中的或者还在硬盘中的内核的相关配置选项。可以通过内核镜像文件 kernel image file 用命令 script scripts/extract-ikconfig 来提取出来,作为当前内核重编译或者另一个内核编译的参考。如果你的内核在运行中,可以通过/proc/config.gz文件来读取。下一个选项提供这 项支持。

看起来好像是一个不错的功能,可以把编译时的 .config文件保存在内核中,以供今后参考调用。用来重编译和编译其他的内核的时候可以用上。你是一个编译内核的狂人的话,这项要选上(比如我,不过我总是会备份所有的 .config 文件)。 2.10.1. Enable access to .config through /proc/config.gz

上一项的子项,可以通过/proc/config.gz 访问当前内核的.config 。新功能,上一项选的话这个就选上吧。

2.11. Cpuset support

多CPU支持。这个选项可以让你建立和管理CPU集群,它可以动态地将系统分割在各个CPU和内存节点中,在各个节点是独立运行的。这对大型的系统尤其有效。

如果不清楚,选N。

2.12. Kernel->user space relay support (formerly relayfs)

内核系统区和用户区进行传递通讯的支持。这个选项在特定的文件系统中提供数据传递接口支持,它可以提供从内核空间到用户空间的大批量的数据传递工具和设施。

如果不清楚,选N。

2.13. Initramfs source file(s)

没有可选项。

2.14. Optimize for size (Look out for broken compilers!)

这个选项将在GCC命令后用 “-Os” 代替 “-O2″参数,这样可以得到更小的内核。警告:某些GCC版本会导致错误。如果有错,请升级你的GCC。

如果不清楚,选N。

这是优化内核大小的功能,没必要选。一个编译好的内核才7-10多M,大家不会少这么点空间吧。选上了可能会出一些问题。最好不选。

2.15. Configure standard kernel features (for small systems)

这个选项可以让内核的基本选项和设置无效或者扭曲。这是用于特定环境中的,它允许“非标准”内核。你要是选它,你一定要明白自己在干什么。

这是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常你可以不选择这一选项,你也不用关心他的子选项。

3. Loadable module support 引导模块支持

3.1. Enable loadable module support

这 个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种 硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可 以移除它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块,否则无法启动系统。在启动时不用到的功能,编成模块是最有效的方式。你可以查看MAN手册来了解: modprobe, lsmod, modinfo, insmod 和 rmmod.

如果你选了这项,你可能需要运行 “make modules_install” 命令来把模块添加到/lib/modules/目录下,以便 modprobe 可以找到它们。

如果不清楚,选Y。

3.2. Module unloading

这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。

如果不清楚,选Y。

3.2.1. Forced module unloading

这个选项允许你强行卸除模块,即使内核认为这不安全。内核将会立即移除模块,而不管是否有人在使用它(用rmmod -f 命令)。这主要是针对开发者和冲动的用户提供的功能。

如果不清楚,选N。

3.3. Module versioning support (MODVERSIONS)

有时候,你需要编译模块。有时候,你需要编译模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。这有时可能会有点用。

如果不清楚,选N。

3.4. Source checksum for all modules

这个功能是为了防止你在编译模块时不小心更改了内核模块的源代码但忘记更改版本号而造成版本冲突。

如果不清楚,选N。

3.5. Automatic kernel module loading

允许内核自动加载模块。一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。不过,如果你选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块。

如果不清楚,选Y。

4. Block layer 块设备。

4.1. Enable the block layer (BLOCK)

这选项使得块设备可以从内核移除。如果不选,那么 blockdev 文件将不可用,一些文件系统比如 ext3 将不可用。这个选项会禁止 SCSI 字符设备和 USB 储存设备,如果它们使用不同的块设备。

选Y,除非你知道你不需要挂载硬盘和其他类似的设备。不过此项无可选项。 4.1.1. Support for Large Block Devices (LBD)

如果你要用大于2TB的硬盘,选这个。

4.1.2. Support for tracing block io actions

对块设备进行跟踪和分析的功能。

4.1.3. Support for Large Single Files (LSF)

大文件支持。如果你准备建的文件大于2TB,选这个。

4.1.4. IO Schedulers 磁盘I/O调度器

I/O是输入输出带宽控制,主要针对硬盘,是核心的必須的东西。这里提供了三个IO调度器。 4.1.4.1. Anticipatory I/O scheduler

抢先式 I/O 调度方式是默认的磁盘调度方式。它对于大多数环境通常是比较好的选择。但是它和Deadline I/O 调度器相比有点大和复杂,它有时在数据调入时会比较慢。

4.1.4.2. Deadline I/O scheduler

Deadline I/O调度器简单而又紧密,在性能上和抢先式调度器不相上下,在一些数据调入时工作得更好。至于在单进程I/O磁盘调度上,它的工作方式几乎和抢先式调度器相同,因此也是一个好的选择。

看介绍这个好像比上面的更好,可以试试。不过按照我的平衡观点,好东西都会带来问题。

4.1.4.3. CFQ I/O scheduler

CFQ调度器尝试为所有进程提供相同的带宽。它将提供平等的工作环境,对于桌面系统很合适。

4.1.4.4. Default I/O scheduler 选择默认的I/O调度器

我选了Anticipatory I/O scheduler。

我这样理解上面三个IO调度器:抢先式是传统的,它的原理是一有响应,就优先考虑调度。如果你的硬盘此时在运行一项工作,它也会暂停下来先响应用户。

期限式则是:所有的工作都有最终期限,在这之前必须完成。当用户有响应时,它会根据自己的工作能否完成,来决定是否响应用户。

CFQ则是平均分配资源,不管你的响应多急,也不管它的工作量是多少,它都是平均分配,一视同仁的。

5. Processor type and features 处理器类型及特性

5.1. Symmetric multi-processing support (SMP) 对称多处理器支持。

这将支持有多CPU的系统。如果你的系统只有一个CPU,选N。反之,选Y。

如果你选N,内核将会在单个或者多个CPU的机器上运行,但是只会使用一个CPU。如果你选Y,内核可以在很多(但不是所有)单CPU的机器上运行,在这样的机器,你选N会使内核运行得更快。

注意如果你选Y,然后在Processor family选项中选择”586″ or “Pentium” ,内核将不能运行在486构架的机器上。同样的,多CPU的运行于PPro构架上的内核也无法在 Pentium 系列的板上运行。

使用多CPU机器的人在这里选Y,通常也会在后面的选项“Enhanced Real Time Clock Support”中选Y。如果你在这选Y,”Advanced Power Management” 的代码将不可用。

如果不清楚,选N。

5.2. Subarchitecture Type 子构架类型 5.2.1. PC-compatible

选这个如果你的机器是标准PC

5.2.2. AMD Elan

注意,如果你是 K6/Athlon/Opteron处理器不要选这个

5.2.3. Voyager

5.2.4. NUMAQ (IBM/Sequent)

5.2.5. Summit/EXA (IBM x440)

5.2.6. SGI 320/540 (Visual Workstation)

5.2.7. Generic architecture (Summit, bigsmp, ES7000, default)

5.2.8. Support for Unisys ES7000 IA32 series

5.3. Processor family

处理器类型。针对自己的CPU类型,选取相应的选项。

这里是处理器的类型。这里的信息主要目的是用来优化。为了让内核能够在所有X86构架的CPU上运行(虽然不是最佳速度),在这你可以选386。

内核不会运行在比你选的构架还要老的机器上。比如,你选了Pentium构架来优化内核,它将不能在486构架上运行。

如果你不清楚,选386。 5.3.1. - “386″

5.3.2. - “486″

5.3.3. - “586″

5.3.4. - “Pentium-Classic”

5.3.5. - “Pentium-MMX”

5.3.6. - “Pentium-Pro”

5.3.7. - “Pentium-II”

5.3.8. - “Pentium-III”

5.3.9. - “Pentium-4″

5.3.10. - K6, K6-II and K6-III

5.3.11. - “Athlon” K7 (Athlon/Duron/Thunderbird).

5.3.12. -Opteron/Athlon64/Hammer/K8

5.3.13. - “Crusoe”

5.3.14. - “Efficeon”

5.3.15. - “Winchip-C6″

5.3.16. - “Winchip-2″

5.3.17. - “Winchip-2A”

5.3.18. - “GeodeGX1″

5.3.19. - “Geode GX/LX”

5.3.20. - “CyrixIII/VIA C3″

5.3.21. - VIA C3-2 “Nehemiah”.

5.4. Generic x86 support

通用X86支持。

除了对上面你选择的X86 CPU进行优化,它还对更多类型X86 CPU的进行优化。这将会使内核在其他的X86 CPU上运行得更好。

对于供应商来说,他们非常需要这些功能,因为他们需要更通用的优化支持。

这个选项提供了对X86系列CPU最大的兼容性,用来支持一些少见的x86构架的CPU。如果你的CPU能够在上面的列表中找到,就里就不用选了。

5.5. HPET Timer Support

HPET时钟支持

允许内核使用 HPET 。HPET 是代替当前8254的下一代时钟,全称叫作高精度事件定时器。你可以安全地选Y。但是,HEPT只会在支持它的平台和BIOS上运行。如果不支持,8254将会激活。

选N,将继续使用8254时钟。

5.6. Maximum number of CPUs (2-255)

设置最高支持的CPU数,无法选择。我的显示为8。

5.7. SMT (Hyperthreading) scheduler support

超线程调度器支持

超线程调度器在某些情况下将会对 Intel Pentium 4 HT系列有较好的支持。

如果你不清楚,选N。

5.8. Multi-core scheduler support

多核调度机制支持,双核的CPU要选。

多核心调度在某些情况下将会对多核的CPU系列有较好的支持。

如果你不清楚,选N。

5.9. Preemptible Kernel 抢先式内核。

一些优先级很高的程序可以先让一些低优先级的程序执行,即使这些程序是在核心态下执行。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能。

下面有三个选项: 5.9.1. No Forced Preemption (Server) 非强迫式抢先。

这是传统的LINUX抢先式模型,针对于高吞吐量设计。它同样在很多时候会提供很好的响应,但是也可能会有较长的延迟。

如果你是建立服务器或者用于科学运算,选这项,或者你想要最大化内核的原始运算能力,而不理会调度上的延迟。

5.9.2. Voluntary Kernel Preemption (Desktop) 自动式内核抢先

这个选项通过向内核添加更多 的“清晰抢先点”来减少内核延迟。这些新的抢先点以降低吞吐量的代价,来降低内核的最大延迟,提供更快的应用程序响应。这通过允许低优先级的进程自动抢先来响应事件,即使进程在内核中进行系统调用。这使得应用程序运行得更“流畅”,即使系统已经是高负荷运转。

如果你是为桌面系统编译内核,选这项。

5.9.3. Preemptible Kernel (Low-Latency Desktop) 可抢先式内核(低延迟桌面)

这个选项通过使所有内核代码(非致命部分)编译为“可抢先”来降低内核延迟。

这通过允许低优先级进程进行强制抢先来响应事件,即使这些进程正在进行系统调用或者未达到正常的“抢先点”。这使得应用程序运行得更加“流畅”即使系统已经是高负荷运转。代价是吞吐量降低,内核运行开销增大。

选这项如果你是为桌面或者嵌入式系统编译内核,需要非常低的延迟。

如果你要最快的响应,选第三项。我认为万物是平衡的,低延迟意味着系统运行不稳定,因为过多来响应用户的要求,所以我选第二个。

5.10. Preempt The Big Kernel Lock

抢先式大内核锁(早期Linux用于支持SMP系统时所采用的非细粒度锁)

这个选项通过让大内核锁变成“可抢先”来降低延迟。

选Y如果你在构建桌面系统。如果你不清楚,选N。

5.11. Machine Check Exception 机器例外检查

机器例外检查允许处理器在检测到问题(比如过热、组件错误)时 通知内核。内核根据问题的严重程度来决定下一步行为,比如在命令行上打印告警信息, 或者关机。你的处理器必须是 Pentium或者更新版本才能支持这个功能。 用cat /proc/cpuinfo来检测你的 CPU是否有mce 标志。

注意一些老的 Pentium 系统存在设计缺陷,会提供假的MCE事件,所以在所有P5处理器上MCE被禁用,除非在启动选项上明确 “mce”参数。同样地,如果MCE被编译入内核并在非标准的机器上导致错误,你可以用”nomce”启动参数来禁用MCE。

MCE功能会自动忽视非MCE处理器,比如386和486,所以几乎所有人都可以在这里选Y。 5.11.1. Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4

检测AMD Athlon/Duron / Intel Pentium 4的非致命错误

允许这项特性,系统将会启动一个计时器,每5秒进行检测。非致命问题会自动修正(但仍然会记录下来),如果你不想看到这些信息,选N。这些信息可以让你发现要损坏的硬件,或者是非标准规格硬件(比如:超频的)。

这个功能只会在特定的CPU上起作用。

5.11.2. check for P4 thermal throttling interrupt.

检测P4节能器中断

当P4进入节能状态时,打印信息。

5.12. Toshiba Laptop support 东芝笔记本支持。

这个选项是针对Toshiba笔记本的,可以用来访问Toshiba的系统管理模式,可以直接设置BIOS。不过要注意它只在 Toshiba自己的 BIOS中起作用。假如你有一台Toshiba笔记本,而它的BIOS是Phoenix的,那这个选项仍然是无用的。

5.13. Dell laptop support

DELL笔记本支持。功能同上

5.14. Enable X86 board specific fixups for reboot

X86板的重启修复功能。

这将打开芯片或者主板上的重启修复功能 ,从而能够使之正常工作。这功能仅仅在一些硬件和BIOS的特定组合上需要。需要这项功能的征兆是重启时使系统卡死或者挂起。

目前,这个修复功能仅仅支持Geode GX1/CS5530A/TROM2.1.的组合。

选Y如果你需要这项功能,目前,选Y是安全的,即使你不需要它。否则,选N。

5.15. /dev/cpu/microcode - Intel IA32 CPU microcode support

是否支持 Intel IA32架构的CPU。这个选项将让你可以更新Intel IA32系列处理器的微代码,显然你需要到网上去下载最新的代码,LINUX不提供这些代码。当然你还必须在文件系统选项中选择/dev file system support才能正常的使用它。如果你把它译为模块 ,它将是 microcode。

IA32主要用于高于4GB的内存。详见下面的“高内存选项”。

5.16. /dev/cpu/*/msr - Model-specific register support

是否打开CPU特殊功能寄存器的功能。这个选项桌面用户一般用不到,它主要用在Intel的嵌入式CPU中的,这个寄存器的作用也依赖与不同的CPU类型而有所不同,一般可以用来改变一些CPU原有物理结构的用途,但不同的CPU用途差别也很大。

5.17. /dev/cpu/*/cpuid - CPU information support

是否打开记录CPU相关信息功能。这会在/dev/cpu中建立一系列的设备文件,用以让过程去访问指定的CPU。

5.18. High Memory Support (4GB) 高容量内存支持

LINUX能够在X86系统中使用64GB的物理内存。但是,32位地址的X86处理器只能支持到4GB大小的内存。这意味着,如果你有大于4GB的物理内存,并非都能被内核“永久映射”。这些非永久映射内存就称为“高阶内存”。

如 果你编译的内核永远都不会运行在高于1G内存的机器上,选OFF(默认选项,适合大多数人)。这将会产生一个”3GB/1GB”的内存空间划 分,3GB虚拟内存被内核映射以便每个处理器能够“看到”3GB的虚拟内存空间,这样仍然能够保持4GB的虚拟内存空间被内核使用,更多的物理内存能够被 永久映射。

如果你有1GB-4GB之间的物理内存,选4GB选项。如果超过4GB,那么选择64GB。这将打开 Intel 的物理地址延伸模式(PAE)。PAE将在IA32处理器上执行3个层次的内存页面。PAE是被LINUX完全支持的,现在的Intel处理器 (Pentium Pro 和更高级的)都能运行PAE模式。注意:如果你选64GB,那么在不支持PAE的CPU上内核将无法启动。

你机器上的内存能够被自动探测到,或者你可以用类似于”mem=256M”的参数强制给内核指定内存大小。 5.18.1. off 如果不清楚,选OFF。

5.18.2. 4GB 选这项如果你用的是32位的处理器,内存在1-4GB之间。

5.18.3. 64GB 选这项如果你用的是32位的处理器,内存大于4GB。

5.19. Memory model 内存模式

5.19.1. Flat Memory 平坦内存模式。

这个选项允许你改变内核在内部管理内存的一些方式。大多数用户在这只会有一个选项:Flat Memory。这是普遍的和正确的选项。

一 些用户的机器有更高级的特性,比如 NUMA 和内存热拔插,那将会有不同的选项。Discontiguous Memory(非接触式内存模式)是一个更成熟、更好的测试系统。但是对于内存热拔插系统不太合适,会被”Sparse Memory”代替。如果你不清楚”Sparse Memory”和”Discontiguous Memory”的区别,选后者。

如果不清楚,就选Flat Memory。

5.19.2. Sparse Memory 稀疏内存模式。

这对某些系统是唯一选项,包括内存热拔插系统。这正常。

对于其他系统,这将会被Discontiguous Memory选项代替。这个选项提供潜在的更好的特性,可以降低代码复杂度,但是它是新的模式,需要更多的测试。

如果不清楚,选择”Discontiguous Memory” 或 “Flat Memory”。

我的机器上只有这两个选项,我选Flat Memory。

5.20. 64 bit Memory and IO resources (EXPERIMENTAL)

64位内存和IO资源

这个选项将使内存和IO资源变成64位的。

实验选项,可以让内存和I/O变为64位。我的总线是32位的,所以还是不选了。选了不知道会不会出错。

5.21. Math emulation

数学仿真

LINUX可以仿真一个数学协处理器(用来进行浮点运算),如果你没有的话。486DX 和 Pentium 处理器内建有数学协处理器。486SX和386的没有,除非你专门加过487DX 或者387协处理器。所有人都需要协处理器或者这个仿真。

如果你没有数学协处理器,你需要在这选Y。如果你有了协处理器还在这选Y,你的协处理器仍然被用到。这意味着如果你打算把编译的内核用在不同的机器上,选Y是明智的选择。

如果不清楚,选Y,这将使内核增加66KB,无伤大雅。

5.22. MTRR (Memory Type Range Register) support

内存类型区域寄存器

在 Intel P6 系列处理器(Pentium Pro, Pentium II 和更新的)上,MTRR将会用来规定和控制处理器访问某段内存区域的策略。

如 果你在PCI或者AGP总线上有VGA卡,这将非常有用。例如可将MTTR设为在显存的地址范围上使用“write-combining”策 略,这样CPU可以在PCI/AGP总线爆裂之前将多次数据传输集合成一个大的数据传输,这样可以提升图像的传送速度2.5倍以上。选Y,会生成文件 /proc/mtrr,它可以用来操纵你的处理器的MTRR。典型地,X server 会用到。

这段代码有着通用的接口,其他CPU的寄存器同 样能够使用该功能。Cyrix 6×86, 6×86MX和 M II处理器有ARR ,它和 MTRR有着类似的功能。AMD K6-2/ K6-3有两个MTRR, Centaur C6有8个MCR允许复合写入。所有这些处理器都支持这段代码,你可以选Y如果你有以上处理器。

选Y同样可以修正SMP BIOS的问题,它仅为第一个CPU提供MTRR,而不为其他的提供。这会导致各种各样的问题,所以选Y是明智的。

你可以安全地选Y,即使你的机器没有MTRR。这会给内核增加9KB。

5.23. Boot from EFI support

EFI启动支持

这里允许内核在EFI平台上使用储存于EFI固件中的系统设置启动。这也允许内核在运行时使用EFI的相关服务。

这个选项只在有EFI固件的系统上有用,它会使内核增加8KB。另外,你必须使用最新的ELILO 登录器才能使内核采用EFI的固件设置来启动(GRUB和LILO完全不知道EFI是什么东西)。即使你没有EFI,却选了这个选项,内核同样可以启动。

大家应该用的是GRUB,所以选上这个也没什么用。

5.24. Enable kernel irq balancing (IRQBALANCE) 中断平衡。

这个选项使系统进行中断平衡。

如果你是双核CPU,如果不选这项,那么中断负荷都在第一个CPU上,其他的CPU可能得不到中断。

5.25. Use register arguments (REGPARM) 寄存器参数使用。

使用寄存器参数

用‘-mregparm=3’的参数编译内核。这使 gcc 使用更高效的应用程序二进制接口(ABI)来跳过编译时的前三个调用寄存器参数。这使得代码编译更精巧更快速。

如果你不选这个选项,默认的ABI将会使用。

如果不清楚,选Y。

5.26. Enable seccomp to safely compute untrusted bytecode (SECCOMP)

允许SECCOMP(快速计算)安全地运算非信任代码。

这个内核特性在程序出现数码错误,需要重新对非信任的代码进行运算时非常有效。它使用管道或者其他传输方式,使文件描述进程支持读/写的系统调用,这样可以利用SECCOMP隔离那些程序本身的空间。

一旦 seccomp 通过/proc/ /seccomp运行,它将不能停止,任务也只能进行一些安全的被seccomp认证的系统调用。

如果不清楚,选Y。只有嵌入式系统选N。

5.27. Timer frequency 时钟频率

允许设置时钟频率。

这是用户定义的时钟中断频率 100HZ-1000 HZ ,不过 100 HZ 对服务器和NUMA系统更合适,它们不需要很快速的响应用户的要求,因为时钟中断会导致总线争用和缓冲打回。注意在SMP环境中,时钟中断由变量 NR_CPUS * Hz定义在每个CPU产生。

其实和前面的抢先式进程差不多,就是多少频率来响应用户要求。我选了250HZ的。要快点的可以选1000HZ的。但是还是那句话,一切是平衡的。机器过快响应你,它自己的活就不知道做得好不好了。 5.27.1. 100 HZ (HZ_100)

100 HZ是传统的对服务器、SMP 和 NUMA的系统选项。这些系统有比较多的处理器,可以在中断较集中的时候分担中断

5.27.2. 250 HZ (HZ_250)

250 HZ对服务器是一个好的折衷的选项,它同样在SMP 和 NUMA 系统上体现出良好的反应速度。

5.27.3. 1000 HZ (HZ_1000)

1000 HZ对于桌面和其他需要快速事件反应的系统是非常棒的。

5.28. kexec system call (KEXEC) 快速重启调用。

kexec 系统调用

kexec是一个用来关闭你当前内核,然后开启另一个内核的系统调用。它和重启很像,但是它不访问系统固件。由于和重启很像,你可以启动任何内核,不仅仅是LINUX。

kexec这个名字是从 exec 系统调用来的。它只是一个进程,可以确定硬件是否正确关闭,所以如果这段代码没能正确为你进行初始化工作,请不要奇怪。它对设备的热拔插会有点帮助。由于它对硬件接口会乱写点东西,所以我没什么好的建议给你。

Linus本人都没话说,估计是受害不浅。我们当然不能上当,选N!

5.29. Support for hot-pluggable CPUs (EXPERIMENTAL)

对热拔插CPU的支持

选Y,可以做个实验,把CPU关闭和打开,也可以中止SMP系统。CPU可以通过/sys/devices/system/cpu 来进行控制。

5.30. Compat VDSO support (COMPAT_VDSO)

Compat VDSO 支持

如果你运行的是最新的glibc(GNU C函数库)版本( 2.3.3 或更新),选N,这样可以移除高阶的VDSO 映射,使用随机的 VDSO。

如果不清楚,选Y。

5.31. Firmware Drivers 固件驱动。

固件就是你板上的BIOS、各种显卡芯片之类的已经固化好的记录某些特定数据的东西。 5.31.1. BIOS Enhanced Disk Drive calls determine boot disk

BIOS加强磁盘功能,确定启动盘。

选y或M,如果你要使用BIOS加强磁盘服务功能来确定BIOS用哪个磁盘来启动。启动后这个信息会反映在系统文件中。

这个选项是实验性的,而且已经被确认在某些未测试选项下会启动失败。很多磁盘控制器的BIOS供应商都不支持这个特性。

5.31.2. BIOS update support for DELL systems via sysfs

用于DELL机器的BIOS升级支持。

5.31.3. Dell Systems Management Base Driver (DCDBAS)

DELL系统管理器的基本驱动。

6. Power management options (ACPI, APM)

电源管理选项(ACPI、APM) 6.1. Power Management support

电源管理支持

电源管理意味着你电脑上的某一部分在不用的时候可以关闭或者休眠。这领域有两个竞争对手:APM和ACPI。如果你需要两者之一,请把这里选上,再把下面的相关内容选上。

电源管理对于使用电池的笔记本相当重要。如果你有笔记本,请参照几个网站上的说明。

注意,即使你在这选N,在X86构架的机器上,LINUX会发出 hlt 指令如果没有任务,因此会让处理器休眠,达到节电的目的。

6.1.1. Legacy Power Management API (PM_LEGACY)

电源管理继承接口

为pm_register() (电源管理寄存器)和同类寄存器提供支持。

如果不清楚,选Y。

6.1.2. Power Management Debug Support

电源管理调试支持

这个选项提供详细的电源管理调试信息。当你调试和报告电源管理漏洞的时候非常有用,有点像电源管理的“中断”支持。

6.1.3. Driver model /sys/devices/…/power/state files (DEPRECATED)

驱动模式文件 /sys/devices/…/power/state (不赞成使用)

这个驱动模式通过系统文件类型启动,试图来给电源管理设备提供用户空间连通装置。这个特性从来没有能很好地工作过,除非是用来进行测试,否则它处在被移除之列。我们不清楚用通用的方法能否进行各种各样的设备电源管理,目前是专用的总线和驱动来替代相关功能。

6.2. ACPI Support 高级电源配置接口支持

高级电源设置接口(ACPI)支持需要整合了ACPI的平台(固件/硬件),并且这个平台要支持操作系统和电源管理软件的设置。这个选项会给你的内核增加70KB。

LINUX ACPI提供了相当强大的电源接口,甚至可以取代一些传统的设置和电源管理接口,包括PNP BIOS(即插即用BIOS)规范,MPS(多处理器规范),和APM(高级电源管理)规范。如果ACPI和APM同时被选上,先被系统调用的起作用。

6.2.1. AC Adapter AC 交流电源适配器

这个驱动给AC 交流电源适配器提供支持,它指示出系统是否在AC下工作。如果你的系统可以在AC和电池状态下切换,选Y。

6.2.2. Battery 电池

这个驱动通过/proc/acpi/battery 提供电池信息。如果你有使用电池的移动系统,选Y。

6.2.3. Button 按钮

这个驱动通过电源、休眠、锁定按钮来提交事件。后台程序读取/proc/acpi/event 来运行用户要求的事件,比如关机。这对软件控制关机是必要的。

6.2.4. Video (ACPI_VIDEO) 视频

提供ACPI对主板上的集成显示适配器的扩展支持驱动。详见ACPI2.0驱动范例,附录B,它提供了基本支持,比如定义视频的启动设备、返回EDID信息或者设置视频传输等等。

注意这仅仅是文字上的信息而已。它可能(或许不可能)在你的集成显卡设备上运行。

6.2.5. Generic Hotkey (EXPERIMENTAL) 通用热键。

实验中的整合式热键驱动。

如果不清楚,选N。

6.2.6. 05.03.05、<*> Fan 风扇

这个驱动对ACPI风扇设备提供支持,允许用户模式的程序进行风扇的基本控制(开、关、状态显示)

6.2.7. Dock

提供ACPI Docking station支持

Docking station是笔记本的扩展坞,就是用来扩展笔记本电脑功能的底座,通过接口和插槽,它可以连接多种外部设备(驱动器、大屏幕显示器、键盘、打印机、扫描仪……)。可以弥补轻薄笔记本电脑本身携带附件较少的缺陷,这种设计让用户在办公室里能够享受到台式机一样的便利和舒适,在移动办公时又能发挥笔记本的便携性。

6.2.8. Processor 处理器

这个驱动以空闲管理者方式给LINUX安装ACPI,使用ACPI C2 和 C3处理器状态来节约电能,如果你的系统支持的话。一些CPU频率调节的驱动需要这个功能。

6.2.8.1. Thermal Zone

温控区域

ACPI温控区域驱动。大多数笔记本和台式机支持ACPI温控区域。强烈要求你选Y,否则你的处理器可能会坏掉。

6.2.9. ASUS/Medion Laptop Extras

华硕笔记本扩展支持

6.2.10. IBM ThinkPad Laptop Extras

IBM笔记本扩展支持

6.2.11. Toshiba Laptop Extras

Toshiba笔记本扩展支持

6.2.12. (0) Disable ACPI for systems before Jan 1st this year 千年虫

6.2.13. Debug Statements

调试语句

ACPI驱动可以自定义报告详细的错误信息。选Y开启这项功能,这将让你的内核增加50KB。

6.2.14. ACPI0004,PNP0A05 and PNP0A06 Container Driver

ACPI0004,PNP0A05 和PNP0A06 容器驱动

这里允许物理上对CPU和内存的插入和移除。这对一些系统,比如NUMA,非常有用,这些系统支持ACPI基本的物理拔插。

如果选择M,这个驱动可以通过命令:”modprobe acpi_container”加入。

6.2.15. Smart Battery System

袖珍电池系统

这个驱动对袖珍电池系统提供支持,依赖于I2C (在选项Device Drivers —> I2C support) 。袖珍电池非常古老,也非常稀少,对于今天的ACPI支持的电池规范来说。

6.3. APM (Advanced Power Management) BIOS Support

高级电源管理BIOS支持。(APM)

ACPI和APM就好比XP和LINUX。我用了ACPI,这个就只编成模块放着,万一要用到再加模块。不清楚的可以先在机器上用ps -A|less看看有没有这个相关的进程。我的只有ACPID。

没有认真研究过下面的选项,也不列出来糊弄人了。要是用到APM的可以自己研究。

6.4. CPU Frequency scaling 6.4.1. CPU Frequency scaling

CPU变频控制

CPU变频控制允许你在运行中改变CPU的时钟速度。这是对于节约电能来说是一个不错的主意,因为CPU频率越低,它消耗的电能越少。

注意这个驱动不会自动改变CPU的时钟速度,你要么允许动态的频率调节器(看下面),要么使用用户工具。

如果不清楚,选N。

6.4.2. Enable CPUfreq debugging

是否允许调试CPU改变主频的功能,如果要调试,还需要在启动时加上参数。cpufreq.debug= 1:变频技术的内核调试 2:变频技术的驱动调试 3:变频技术的调节器调试

6.4.3. CPU frequency translation statistics CPU频率统计功能

6.4.4. CPU frequency translation statistics details CPU频率统计功能(详细)

6.4.5. Default CPUFreq governor (performance) 默认的主频调节,圆括号内的是你选择的结果,这里表示以性能为主。 6.4.5.1. performance 性能优先

6.4.5.2. userspace 用户定义,可以设定频率。

6.4.6. ‘performance’ governor性能调节器

6.4.7. ‘powersave’ governor 节约电能调节器。

6.4.8. ‘userspace’ governor for userspace frequency scaling 用户自定义调节器。

6.4.9. ‘ondemand’ cpufreq policy governor 自动调节主频。

6.4.10. ‘conservative’ cpufreq governor 传统方式调节

6.4.11. CPUFreq processor drivers 变频驱动模块

6.4.12. ACPI Processor P-States driver 报告处理器的状态。

6.4.13. AMD Mobile K6-2/K6-3 PowerNow! AMD移动版K6处理器的变频驱动。

6.4.14. AMD Mobile Athlon/Duron PowerNow! AMD移动版毒龙、雷乌的变频驱动。

6.4.15. Cyrix MediaGX/NatSemi Geode Suspend Modulation Cyrix处理器的变频驱动。

6.4.16. Intel Enhanced SpeedStep Intel的移动变频技术支持。

6.4.16.1. Use ACPI tables to decode valid frequency/voltage pairs 使用BIOS中的主频/电压参数。

6.4.16.2. Built-in tables for Banias CPUs 迅驰一代的主频/电压参数。

注:

笔记本 : 什么是迅驰技术

2003 年3月英特尔正式发布了迅驰移动计算技术,英特尔的迅驰移动计算技术并非以往的处理器、芯片组等单一产品形式,其代表了一整套移动计算解决方案,迅驰的构成分为三个部分:奔腾M处理器、855/915系列芯片组和英特尔PRO无线网上,三项缺一不可 共同组成了迅驰移动计算技术。

奔腾M首次改版叫Dothan

在两年多时间里,迅驰技术经历了一次改版和一次换代。初期迅驰中奔腾M处理器 的核心代号为Bannis,采用130纳米工艺,1MB高速二级缓存, 400MHz前端总线。迅驰首次改版是在2004年5月,采用90纳米工艺Dothan核心的奔腾M处理器出现,其二级缓存容量提供到2MB,前端总线仍 为400MHz,它也就是我们常说的Dothan迅驰。首次改版后,Dothan核心的奔腾M处理器迅速占领市场,Bannis核心产品逐渐退出主流。虽 然市场中流行着将Dothan核心称之为迅驰二代,但英特尔官方并没有给出明确的定义,仍然叫做迅驰。也就是在Dothan奔腾M推出的同时,英特尔更改 了以主频定义处理器编号的惯例,取而代之的是一系列数字,例如:奔腾M 715/725等,它们分别对应1.5GHz和1.6GHz主频。首次改版中,原802.11b无线网卡也改为了支持802.11b/g规范,网络传输从 11Mbps提供至14Mbps.

新一代迅驰Sonoma

迅驰的换代是2005年1月19日,英特尔正式发布基于Sonoma平台的新一 代迅驰移动计算技术,其构成组件中,奔腾M处理器升级为 Dothan核心、 90纳米工艺、533MHz前端总线和2MB高速二级缓存,处理器编号由奔腾M 730—770,主频由1.60GHz起,最高2.13GHz。915GM/PM芯片组让迅驰进入了PCI-E时代,其中915GM整合了英特尔 GMA900图形引擎,让非独立显卡笔记本在多媒体性能上有了较大提高。915PM/GM还支持单通道DDR333或双通道DDR2 400/533MHz内存,性能提供同时也降低了部分功耗。目前Sonoma平台的新一代迅驰渐渐成为市场主流。

6.4.17. Intel Speedstep on ICH-M chipsets (ioport interface) Intel ICH-M移动南桥芯片组的支持

6.4.18. Intel Pentium 4 clock modulation P4处理器的时钟模块支持。

6.4.19. Transmeta LongRun Transmeta处理器的支持。

6.4.20. VIA Cyrix III Longhaul VIA Cyrix处理器的支持。

6.4.21. shared options

6.4.22. /proc/acpi/processor/../performance interface (deprecated) 从/proc/acpi/processor/../performance获得CPU的变频信息。

6.4.23. Relaxed speedstep capability checks

不全面检测Intel Speedstep,有的系统虽然支持Speedstep技术,却无法通过全面的检测。

7. Bus options (PCI, PCMCIA, EISA, MCA, ISA) 总线选项

7.1. PCI support

PCI总线支持(一定要进内核,不能编成模块)

找找你的主板资料,看看你用的是不是PCI主板。PCI是总线系统的名称,是CPU用来与其他设备进行通信的通道。其他总线系统有ISA、EISA、MCA和VESA。如果你有PCI,选Y。否则,选N。 7.1.1. PCI access mode (Any)

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”。 7.1.1.1. BIOS

7.1.1.2. MMConfig

7.1.1.3. Direct

7.1.1.4. Any

7.1.2. 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。大家可以用lshw|less来看看自己的PCI是什么类型。 7.1.2.1. Root Port Advanced Error Reporting support

高级启动错误报告支持。

7.1.3. Message Signaled Interrupts (MSI and MSI-X) 信息信号中断

这允许设备驱动开启MSI。MSI允许一个设备用非装订内存写入方式在自己的PCI总线中产生一个中断,而不是常规的IRQ针脚中断。 在内核启动时,用 ‘pci=nomsi’选项可以禁用PCI MSI中断。这将在整个系统禁用MSI。 如果不知道怎么做,选N。

7.1.4. Interrupts on hypertransport devices

高速传输设备中断

允许高速传输设备使用中断。

如果不清楚,选Y。

7.2. ISA support ISA总线

看看你主板上是否有ISA插槽。ISA是比较老的总线,现已基本被PCI取代。如果你没有老 式的ISA设备,可以不选这项。不过我估计你的主板上应该会有ISA总路。因为我的INTEL 945板都还有一路,接老式打印机用的。选上备用。如果你认为你永远都不会用到那一路的话,可以不选。 7.2.1. EISA support

扩展工业标准架构总线(EISA)是为IBM 微通道开发的项目。EISA总线可以为IBM 微通道提供一些特性,如果你在使用很老的卡。目前EISA很少用到,已经被PCI取代。选Y,如果你为ESIA系统编译内核。否则,选N。

7.2.2. MCA support

IBM PS/2上的总线,现已淘汰,建议关闭。微通道总线IBM的台式机和笔记本上可能会有这种总线,包括它的p系列、e系列、z系列机器上都用到了这种总线。

7.2.3. NatSemi SCx200 support

松下的一种半导体处理器的驱动。

7.3. PCCARD (PCMCIA/CardBus) support

一般只有笔记本电脑上才会有PCMCIA插槽,如果你是台式机 的话,可以不选这一项,然后跳过这一部份。我的IBM机器是办公用的,经常会临时接一些乱七八糟的设备。我自己都不知道哪些设备需要什么模块。所以这里我都搞成模块,免得以后接上用不了,又得切换到XP下。 7.3.1. PCCard (PCMCIA/CardBus) support

PCI Hotplug Support

PCI热插拨支持

选Y,如果你的主板有PCI热拔插控制器,这允许你热拔插PCI卡。

选M,将编译为模块,叫做pci_hotplug。

如果不清楚,选N。

一般来讲只有服务器上会有热插拔的设备,如果你使用的是台式机,你可以不选择此项并跳过这一部份。

8. Executable file formats 可执行文件格式。

8.1. Kernel support for ELF binaries

ELF支持

ELF(可执行和可链接格式)是一种用来连接不同架构和操作系统的可执行文件、库函数格式。选Y,你的内核可以运行ELF二进制文件,这也使你的内核增大13KB。

ELF现在基本代替了传统的 a.out 格式(QMAGIC and ZMAGIC用到),因为它是可移植的(可移植不代表它可以直接运行在不同构架和操作系统上),而且建立相关运行库文件非常容易。很多新的可执行文件都用ELF格式发布,你在这里当然要选Y。

8.2. Kernel support for a.out and ECOFF binaries

对 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。

8.3. Kernel support for MISC binaries

内核对 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。

 

  评论这张
 
阅读(968)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017