转自:http://blog.chinaunix.net/uid-25304914-id-3029140.html
链接:
http://wenku.baidu.com/view/b93917ed5ef7ba0d4a733ba8.html
文档:
Linux kernel 2.6 配置指南
作者:王旭东
QQ:154526147 E-mail:
[email protected]
说明:本配置文档全部由本人查询书籍、网上摘抄和自己经验积累得到,如果出现
和原作者内容相同,请尊重原作者,本文档只限于厦门大学Linux爱好者共享,如
果出现版权问题,请通知作者,马上更正!本文档只适合Linux 2.6内核使用,对
Linux 2.4 内核仅作参考。对Linux 2.6.5以上内核,完全依照本文档配置不会
出现问题,对Linux 2.6.5以下内核可能会出现U盘不能挂载和声卡不能发声问题
对于这种问题,本作者概不负责,如果您在使用本文档过程中出现这种问题,并
解决了问题,请通知作者,本作者立即修改本文档,并将您作为本文档作者之一。
本文档已经过作者多次试用,修改了BUG,可以放心使用!谢谢您的使用和支持!
注: 内核配置选项中关于Frame Buffer的选项不能编译成模块,否则无法使用
Frame Buffer。特此说明!本文档中关于硬件选项请遵照自己电脑的配置选择!
一、内核简介
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。
想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。在Windows下是什么情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。再次,我们可以对内核进行修改,以符合自己的需要。这意味着什么?没错,相当于自己开发了一个操作系统,但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能。在Windows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。
二、内核版本号
由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(developmenttree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。到目前为止,稳定树的最高版本是2.6.5;开发树的最新版本是2.6.12。下载内核版本请访问
http://www.kernel.org/
三、为什么重新编译内核
Linux作为一个自由软件,在广大爱好者的支持下,内核版本不细隆P碌哪诤诵薅┝司赡诤说腷ug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。
为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:
l 自己定制编译的内核运行更快(具有更少的代码)
l 系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
l 不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
l 将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些
四、内核编译模式
要增加对某部分功能的支持,比如网络之类,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module),动态调用。如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,你就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在,这就是Windows惯用的招数,建议经常使用的部分直接编译到内核中,比如网卡。如果编译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。
五、新版本内核的获取和更新
Linu x内核版本发布的官方网站是 http://www.kernel.org 新版本的内核的发布有两种形式,一种是full/ Source版本,另外一种是patch文件,即补丁。完整的内核版本比较大,一般是tar.gz或者是.bz2文件,二者分别是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。patch文件则比较小,一般只有几十K到几百K,但是patch文件是针对于特定的版本的,你需要找到自己对应的版本才能使用。
编译内核需要root权限,以下操作都假定你是root用户。请把你需要升级的内核拷贝到/usr/src/下(下文中以2.6.5的内核的linux-2.6.5.tar.gz为例),命令为
#cp linux-2.6.5.tar.gz /usr/src
让我们先来查看一下当前/usr/src的内容,注意到有一个linux-2.4的符号链接,指向一个linux-2.4.7-10(以REDHAT7.2为例)的目录。这就是你所装linux的kernel源代码,删除这个链接。
现在解压我们下载的源程序文件。如果所下载的是.tar.gz(.tgz)文件,请使用下面的命令:
#tar -zxvf linux-2.6.5.tar.gz.tar.gz
如果你所下载的是.bz2文件,例如linux-2.4.0test8.tar.bz2,请使用下面的命令
#bzip2 -d linux-2.6.5.tar.bz2
#tar -xvf linux-2.6.5.tar
文件将解压到/usr/src/linux目录中,我们把它稍作修改:
#mv linux linux-2.6.5
#ln -s linux-2.6.5 linux
如果下载的是patch文件,就可以进行patch操作(下面假设patch-2.6.5已经位于/usr/src目录下了,否则你需
要先把该文件拷贝到/usr/src下):
#patch -p0 < patch-2.6.5
六、内核编译
通常要运行的第一个命令是:
#cd /usr/src/linux
#make mrproper
该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖。由于我们使用刚下载的完整的源程序包进行编译,
所以本步可以省略。而如果你多次使用了这些源程序编译内核,那么最好要先运行一下这个命令。
确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的。它们分别链向源代码目录下的
真正的、该计算机体系结构(对于PC机来说,使用的体系结构是i386)所需要的真正的include子目录。如:asm指向/
usr/src/linux/include/asm-i386等。若没有这些链接,就需要手工创建,按照下面的步骤进行:
# cd /usr/include/
# rm -r asm linux scsi
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
这是配置非常重要的一部分。删除掉/usr/include下的asm、linux和scsi链接后,再创建新的链接指向新内核源代码
目录下的同名的目录。这些头文件目录包含着保证内核在系统上正确编译所需要的重要的头文件。现在你应该明白为什么我
们上面又在/usr/src下"多余"地创建了个名为linux的链接了吧?
接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下一些主要的且
经常用到的选项的设置。
配置内核可以根据需要与爱好使用下面命令中的一个:
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,那么就推荐你使用这个命令,界面如
下:
如果你不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的
要好多了,下图为make menuconfig的界面:
选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
如果使用的是make xconfig,使用鼠标就可以选择对应的选项。如果使用的是make menuconfig,则需要使用空
格键进行选取。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号。 用空格键选择时可
以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"这表示前者对应的项要么不要,要么编译到内
核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。
在编译内核的过程中,最烦杂的事情就是这步配置工作了,很多新手都不清楚到底该如何选取这些选项。实际上在配置
时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且
不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境
改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。
配置完后,存盘退出,当然你也可以把现在的配置文件保存起来,这样下次再配置的时候就省力气了。
接下来是编译,输入以下命令。
#make dep
#make clean
#make bzImage或make zImage
#make modules
#make modules_install
#depmod -a
第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编
译而那些不需要;第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;make zImage和make
bzImage则实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用
make bzImage可以生成大一点的内核。建议大家使用make bzImage命令。
后面三个命令只有在你进行配置的过程中,在回答Enable loadable module support (CONFIG_MODULES)时
选了"Yes"才是必要的,make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。
严格说来,depmod -a命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用
modprobe命令加载模块时就能正确地定位模块。
更新
经过以上的步骤,我们终于得到了新版本的内核。为了能够使用新版本的内核,我们还需要做一些改动:
#cp /usr/src/linux/System.map /boot/System.map-2.6.5
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.6.5
以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内
核的文件:
#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.6.5 vmlinuz
#ln -s System.map-2.6.5 System.map
七、修改启动管理器
如果用LILO,修改/etc/lilo.conf,添加以下项:
image=/boot/vmlinuz-2.6.5
label=linux240
read-only
root=/dev/hda2
其中root=/dev/hda2一行要根据需要自行加以修改。
运行:
#/sbin/lilo -v
确认对/etc/lilo.conf的编辑无误,现在重新启动系统:
#shutdown -r now
如果是用Grub启动管理器,则添加如下几项即可。
title Red Hat Linux (2.6.5)
root (hd0,0)
kernel /vmlinuz-2.6.5 ro root=/dev/hda2
或者也可以这么写
title Gentoo Linux 2005.0 (2.6.5)
kernel (hd0,0)/kernel-2.6.5 ro root=/dev/hda2
Grub不需再次调用命令,自动生效。
重启以后就可以用新内核了。
---------------------------------------------------------------------------------------------
从这里开始进入内核完全配置选项
1 Code maturity(成熟)level options ---> 应该选择
[*] 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支持就选择它,这也是默认选项。
2 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 Userspace Events 用户空间时间,可以不用选择
[*] 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 内核尺寸最优化,一般不用选择吧(如果是为小系统设计的,就不用选择了)
3 Loadable module support --->
[*]
Enable
loadable module
support 应该选择
这个选项可以
让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。
一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块了,否在无法启动系统。(当然还有一些变通的方法,我以后会提到)
[*] Module unloading 应该选择
这个选项可以让
你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。不选择这个选项会让你的内核体积减小一点
[*] Forced module unloading 这个有点危险,可能导致内核不能启动,不要选择了
[*] Module versioning support (EXPERIMENTAL) 不用选择
这个选项将让你
可以使用其它版本内核中编译的模块,不过并不可靠,所以一般我们不选择它
[*] Source checksum for all modules 可以选择
[*]
Automatic kernel module loading 应该选择
一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。不过,如果你选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块,这是个很棒的特性,当然要选Y喽:)
4 Processor type and features --->
Subarchitecture Type (PC-compatible) --->
这是一个比较新的特性,主要的目的是使Linux可以支持多种PC标准,一般我们使用的PC机是遵循所谓IBM兼容结构
(pc/at)。这个选项可以让你选择一些其它架构。我们一般选择PC-compatible就可以了。
(X) PC-compatible
( ) AMD Elan
( ) Voyager (NCR)
( ) NUMAQ (IBM/Sequent)
( ) Summit/EXA (IBM x440)
( ) Support for other sub-arch SMP systems with more than 8 CPUs
( ) SGI 320/540 (Visual Workstation)
( ) Generic architecture (Summit, bigsmp, default)
( ) Support for Unisys ES7000 IA32 series
Processor family (Pentium-Pro) ---> 这个就不用说了吧,你是什么cpu就选什么了
( ) 386
( ) 486
( ) 586/K5/5x86/6x86/6x86MX
( ) Pentium-Classic
( ) Pentium-MMX
(X) Pentium-Pro
( ) Pentium-II/Celeron(pre-Coppermine)
( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon
( ) Pentium M
( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon
( ) K6/K6-II/K6-III
( ) Athlon/Duron/K7
( ) Opteron/Athlon64/Hammer/K8
( ) Crusoe
( ) Winchip-C6
( ) Winchip-2
( ) Winchip-2A/Winchip-3
( ) CyrixIII/VIA-C3
( ) VIA C3-2 (Nehemiah)
[*] Generic x86 support 不用选择
这个选项提供了对X86系列CPU最大的兼容性,用来支持一些很少见的x86体系的CPU,它可能会降低一些系统性能。
所以如果你的CPU能够在上面的列表中找到就不要选这个吧。
[*] 4 GB kernel-space and 4 GB user-space virtual memory support 应该选择
[*] HPET Timer Support 应该选择
这也是一个新的特性,HPET是intel制定的新的用以代替传统的8254(PIT)中断定时器与RTC的定时器,全称叫作高精度事件定时器。如果你有一台较新的机器就选它吧,一般它是一个安全的选项,即使你的硬件不支持HPET也不会造成问题,因为它会自动用8254替换。
[*] Symmetric multi-processing support 不用选择
这个也不用多讲了吧,如果你使用多处理器系统就选吧,如果你和我一样使用一个单CPU系统还是把它请出去吧。
(8) Maximum number of CPUs (2-255) (NEW) 不用选择
这里用来配置让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 应该选择
打开这个选项将会检查你机器上可能存在的问题,如果有一个非致命错误出现将会自动的修复并且记录,这可以帮助
你查出程序出现问题的原因,是一个不错的选项,当然它只能用在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
0这个选项桌面用户一般用不到,它主要用在Intel的嵌入式CPU中的,这个寄存器的作用也依赖与不同的CPU类型而
有所不同,一般可以用来改变一些CPU原有物理结构的用途,但不同的CPU用途差别也很大。
/dev/cpu/*/cpuid - CPU information support
这会在/dev/cpu中建立一系列的设备文件,用以让过程去访问指定的CPU。一般不用选。
Firmware Drivers --->
BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)
这将可以打开实模式下BIOS中的增强磁盘设备服务,以决定从哪个磁盘上启动。这一般是安全的,不过大多数BIOS提
供商都没有实现这个特性。
EFI Variable Support via sysfs 这个不用选择
High Memory Support (4GB) --->
( ) off
(X) 4GB
( ) 64GB
如果你有大容量的内存(超过4G)你要选它,以使内核可以使用这部分内存。偶是没这命啦这部分永远为OFF,如果你有你
就ON吧。
[*] Allocate 3rd-level pagetables from highmem 为大内存设计的,可以不用选择
[*] Math emulation
在你的CPU上如果没有数学协处理器的话,打开这个选项可以让内核模拟一个,以提升浮点计算能力,不过慢的可以。如
果你使用的不是古董CPU的话(486SX以前的)这一项你永远都不需要。
[*] MTRR (Memory Type Range Register) support
在Intel p6家族的处理器中(Ppro、 PII和更新的)有一个内存类型范围寄存器,可用来控制处理器访问的内存范围。打开
它一般可以提升显卡的显示性能,所以我们当然要在这说Y
[*] Boot from EFI support (EXPERIMENTAL)
EFI规范基本上是一个让PC可以在开机前(preboot)进行扫毒及诊断的执行环境。英特尔已经利用EFI建立一个可以取
代BIOS的开机前软件框架。这个框架名为“EFI平台创新开发框架”,其工程代码为Tiano,这个框架让电脑厂商可以
撰写开机前软件的模组,这种模组很像Windows的驱动程序。
[*] Enable kernel irq balancing (NEW) 红外的,不用选择
[*] Use register arguments (EXPERIMENTAL) 这个可以不用选择了
=============================================================================================
5 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 (NEW)
与上面的选项配合,来指定保存镜象的分区 如果上面那个有开启就要选择用來做suspend to disk用的partition
ACPI (Advanced Configuration and Power Interface) Support ---> 不用选择
从这里进入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,如果没有必要还是不要选它吧。
[*] Power Management Timer Support
APM (Advanced Power Management) BIOS Support ---> 可以选择
高级电源管理BIOS支持。这通常是用在笔记本电脑上的东西,如果您有APM的BIOS,支持省电的设备的(有电池的那
种),那么您可以选上这项,一般人这一项是选n,以避免一些可能会发生的问题。后有8个选项。
<*> APM (Advanced Power Management) BIOS support
[*] Ignore USER SUSPEND 忽略用户延迟 可以选择
[*] Enable PM at boot time 在开机的时候允许PM 这个不用选择
[*] Make CPU Idle calls when idle 当CPU空闲时使系统调用空闲的CPU 可以选择
[*] Enable console blanking using APM 用节电支持来允许控制台空白 可以选择
[*] RTC stores time in GMT 如果您的硬体时钟是使用世界标准时间,可以选择. 如果是本地时则不选
[*] Allow interrupts during APM BIOS calls 当APM BIOS调用的时候允许中断 可以选
择
[*] Use real mode APM BIOS call to power off 可以选择
如果您的系统不能自己切断电源,就选这个吧。不过,对某些 BIOS 而言,选了这个反而不能关机!这样的话,您自己试
试看棉~~我这里没选啦,因为我用的是华硕的旧板 P2L97。另外,我还发现如果您是单 CPU 的机器,前面却将 SMP
选择起来的话,那也不能关机哦~~
CPU Frequency scaling ---> 不用选择
尽管电压缩放是一种潜在的、非常诱人的、降低功耗的方法,但在现实世界的应用中我们对其加以利用时应当小心。降低电压
(进而降低CPU 频率)将改变给定任务的执行时间,从而有可能导最后期限。即便新频率与最后期限兼容,但如果开关频
率及电压的等待时间太长,还是会出现问题。
[*] CPU Frequency scaling 调节CPU的频率的,用来节电的,有必要就选择吧 , 我还是不要选择了
/proc/cpufreq interface (deprecated)
Default CPUFreq governor (userspace) --->
( ) performance
(X) userspace
<*> 'performance' governor 性能管理模式
'powersave' governor 节电管理模式
--- 'userspace' governor for userspace frequency scaling
[*] /proc/sys/cpu/ interface (2.4. / OLD) 这个就不用选择了
<*> CPU frequency table helpers
--- CPUFreq processor drivers
ACPI Processor P-States driver ACPI高级配置与电源接口 没见过的东西,不用选了
[ ] /proc/acpi/processor/../performance interface (deprecated)
AMD Mobile K6-2/K6-3 PowerNow! 用于AMD移动处理器节电技术,如果你有就选上它
<*> AMD Mobile Athlon/Duron PowerNow! 用于AMD移动处理器节电技术,如果你有就选上它
AMD Opteron/Athlon64 PowerNow! 同上
Cyrix MediaGX/NatSemi Geode Suspend Modulation 现在好像这样的CPU很少阿,如果你有,就选择
它
<*> Intel Enhanced SpeedStep
提升笔记本电脑性能的SpeedStep技术,SpeedStep技术是一项创新性的技术,它可以让处理器在2种工作模式之间随
意地切换,即通电状态时的最高性能模式(Maximum Performance Mode)和电池状态时的电池优化模式Battery
Optimized Mode
[*] Use ACPI tables to decode valid frequency/voltage pairs (EXPERIME )
<*> Intel Speedstep on ICH-M chipsets (ioport interface)
Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
Intel Pentium 4 clock modulation 时钟频率调整,不用选择了
[ ] Relaxed speedstep capability checks
<*> Transmeta LongRun
<*> VIA Cyrix III Longhaul 崴盛的东西,不用选择了
==============================================================================================
6 Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
[*] PCI support PCI支持。如果使用了PCI的卡,当然必选
PCI access mode (Any) --->
PCI的存取方式,分三种,有透过BIOS或是直接存取跟任意,照预设值Any就好了
( ) BIOS
( ) MMConfig
( ) Direct
(X) Any
[*] Vector-based interrupt indexing (MSI)
好像是一种新的中断方法,取代原本使用IRQ来做索引的中断方法如果系统上装有MSI(Message Signaled
Interrupt)的patch的话系统似乎就会直接向內存送Memory Write的指令,取代了需要等IRQ讯号的方式(不知道
是干嘛的,先关掉 ...)
[*] Legacy /proc/pci interface 可以选择
传统的/proc/pci介面,就是像我們一般用Linux,都可以/dev下看到目前的硬件狀况,在这个也可以不用(事实上依
help里的说明在2.5.53这个版就有被弄掉)改用一个叫lspci的工具可以达成一样的效果,看个人喜好 ...
[*] PCI device name database 可以选择
开启这个选项,kernel里会放入所有已知PCI device的资料库,而kernel会用这个來造出/proc/pci、/
proc/ioports ... 里的讯息
[*] ISA support 老的ISA槽支持,没有这中插槽不用选
[*] EISA support 增强ISA总线,已经被PCI代替,所以不用选择了
[*] Vesa Local Bus priming 不用选择了
[*] Generic PCI/EISA bridge (NEW) 不用选择了
[*] EISA virtual root device (NEW) 不用选择了
[*] EISA device name database (NEW) 不用选择了
[*] MCA support IBM的东西,我就不选了哦
MCA(microChannel Archtecture)总线是IBM为解决快速微处理器和相对慢的ISA总线之间的差异而开发的一种
总线结构,并被用于IBM的PS/2系统,目前,MCA总线主要用于IBM PS/2 计算机和一些笔记本中
[*] Legacy MCA API Support
[*] Support for the mca entry in /proc
NatSemi SCx200 support
PCMCIA/CardBus support ---> 笔记本用的,台式机不用选了
PCMCIA/CardBus support 不用选了
[*] Enable PCMCIA debugging 不用选了
CardBus yenta-compatible bridge support 不用选了
i82092 compatible bridge support 不用选了
i82365 compatible bridge support 不用选了
Databook TCIC host bridge support 不用选了
PCI Hotplug Support ---> 支持PCI热插拔的,我们很少动,最好选上吧
<*> Support for PCI Hotplug (EXPERIMENTAL) 这个选一下,万一会用到,如插拔网卡
Fake PCI Hotplug driver 伪设备,我不用选择了
Compaq PCI Hotplug driver PCI是intel和Compaq发布的总线,我只选择这个就够了,
[*] Save configuration into NVRAM on Compaq servers 不用选择了
IBM PCI Hotplug driver 不用选择了
ACPI PCI Hotplug driver 不用选择了
[*] CompactPCI Hotplug driver 不用选择了
Ziatech ZT5550 CompactPCI Hotplug driver 不用选择了
Generic port I/O CompactPCI Hotplug driver 不用选择了
PCI Express Hotplug driver 最新的PCI-E,我还没有,不用选择了
[*] Use polling mechanism for hot-plug events (for testing purpose 不用选择了
SHPC PCI Hotplug driver 不用选择了
[*] Use polling mechanism for hot-plug events (for testing purpose 不用选择了
=============================================================================================
7 Executable file formats --->
[*] Kernel support for ELF binaries 一定要选择
这个当然y,因为目前gcc2.7.0以上的都有支持ELF了,如果没有选择这一项,可能会使用相当多的程序因此无法执行。
注意:编译模块成ELF和编译支持ELF二进制。不编译适当的支持’’gotcha’’是明智的,如果机器结构是Pentium
或486你将得到高效的代码,但一个386的核心将运行在32-bit compatible clone;一个Pentium核心将不。为大多
机器制作一张紧急启动盘,最好在386下编译,而386并不能运行在Pentium下编译的核心。
另外一点要注意的,你不能同时把 a.out 和 ELF 支援编译成 modules,否则当你为了能够使用 insmod 而用
insmod 来载入 a.out/ELF modules 时会有 Catch/22 状况发生。如果你的系统主要是 ELF 而你偶尔会需要用到
a.out,你可以把 a.out 支援编译为modules,否则你最好把它直接放入 kernel 之中。如果你还没进入 ELF 的世纪,
在 compiler kernel 时可以直接把 ELF 支援去掉。
Kernel support for a.out and ECOFF binaries 可以选择编成模块
a.out的执行文件是比较古老的可执行码,用在比较早期的UNIX系统上。Linux最初也是使用这种码来执行程序,一直
到ELF格式的可执行码出来后,有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码。将来势必完全取代
a.out格式的可执行码。但目前由于沿有许多的程序还没有取代过来,所以只好选择Y,等将来有一天,全部的程序都变
成了ELF的天下时,那时再disable掉。
Kernel support for MISC binaries 可以选择编成模块
可以让你支援別的种类的binary执行档(如:Java、Python ... etc)丟到kernel或编成module都ok ...
============================================================================================
8 Device Drivers --->
Generic Driver Options --->
<*> Hotplug firmware loading support 热插拔固件加载,应该选择
[*] Driver Core verbose debug messages
Memory Technology Devices (MTD) ---> 通常用在嵌入式系統,可以不用选择了
We use MTD (Memory Technology Devices) system to emulate flash memory as flash disk mounted into
Linux virtual file system. This allows accessing flash memory with standard I/O operations without any
extra effort. MTD system contains, “user” and driver”, two different modules. In driver modules, we use
CFI (Common Flash Interface) to probe the flash chip and then partition it, while we use MTD BLOCK to
emulate the flash partitions as block devices in user modules, and then mount them into Linux’s virtual
file system with JFFS2 (Journaling Flash File System version 2) type, which is a file system type
specifically designed for flash devices according to the features of flash devices.
Memory Technology Device (MTD) support
[*] Debugging
(0) Debugging verbosity (0 = quiet, 3 = noisy) (NEW)
MTD partitioning support
MTD concatenating support
RedBoot partition table parsing
Command line partition table parsing
--- User Modules And Translation Layers
Direct char device access to MTD devices
Caching block device access to MTD devices
Readonly block device access to MTD devices
FTL (Flash Translation Layer) support 和PCMCIA有关,可以不用理睬
NFTL (NAND Flash Translation Layer) support 和PCMCIA有关,可以不用理睬
[*] Write support for NFTL
INFTL (Inverse NAND Flash Translation Layer) support 和PCMCIA有关,可以不用理睬
RAM/ROM/Flash chip drivers ---> 用FLASH内存,可以不用选择
2000年, Axis Communications AB ( www.axis.com),发布了第一版的 JFFS文件系统,也是开源的(Open
Sourced)。这是一个完全为嵌入式Linux系统设计的文件系统, JFFS直接设计在FLASH设备之上,能判断获知可擦除扇区的边界,以及FLASH的大小。
MTD可以看作是原始的FLASH芯片的“翻译层(translation layer)”,也正是由于MTD的存在,使得JFFS在Linux中能快速发展。基于MTD这个硬件抽象层(HAL),JFFS几乎可以被mount在任何可随机访问的设备上(如: RAM,FLASH(各种厂家的))-----只要MTD支持这些设备。
如果遇到新设备且驱动程序不存在,则找一个现存的驱动程序(做模板),然后修改其中的有关“read/write/erase”之函数,之后就可以将JFFS mount到“新设备”上了(关键是你根本不需要知道JFFS是怎么工作的)。换句话说,将JFFS文件系统与设备相关的MTD (Memory Technology Device)(包含了很多“raw FLASH chip”之Linux驱动程序)相结合,你就得到了一个完整的解决方案----即由MTD向JFFS文件系统层提供一个抽象的设备层。
在这种方式下,JFFS不关心任何特定的存储(memory)技术。任何支持随机访问的设备(甚至象NAND FLASH这样的伪随机设备)都可以与MTD接口,从而在之上实现JFFS。在设计方面,JFFS(以及JFFS2)在文件系统层中保证一个“meta-data”(或文件系统的“格式”可靠性--- "formatting" reliability),这意味只要你的 write()系统调用返回了,则可以保证数据一定是“记录”下来的 。换句话说,如果在write()命令的执行期间突然掉电了,而此时数据还没有完全写入FLASH芯片,则芯片内记录的数据要么是older数据、要么是 newer数据,或者是两者的混合,但关键是你的文件不会因此而“坏(corrupted)”了。
最初的JFFS是设计成 "append only"类型的文件系统,即“好”数据重来不会被“覆盖”( overwritten)(如:对一个已打开的文件先做rewind()操作,然后 fwrite(),没用!),新的数据总是被添加在上次“文件系统”(而不是文件)写操作的位置之后。与块数据同时被写入的“meta”数据将保证块数据在“逻辑”上已被写入文件的正确位置。当重启动(或mount)之时,整个文件系统将被扫描,零散的数据块被重新排列,以使得在读取文件之时,最新被“标记(stamped)”数据块----即那些在逻辑上覆盖了“older数据块”----被读出。而“older数据”则被标记为“回收(garbage collection)-----在适当的时候将被删除。这种“ append-only结构”的优点是“natural wear leveling on the FLASH”(译注:减少FLASH的擦除次数)。有关JFFS的“掉电可靠性(Power Down Reliability)”,我已做一些扩展并提交了fixes(已包含在最新版本的 CVS之中),我观察的效果是500多次掉电实验大约10次失败。另外,系统中还存在一些bug,使得JFFS会随机地丢掉一些文件(甚至是静态文件)!我将 NOT推荐在产品中使用该文件系统(至少是当前版本)。
JFFS2是JFFS技术的第二版,它基于JFFS的设计思想,但是由Redhat ( www.redhat.com)实现的。它采用了一种不同的方法实现“可靠性”,所有的 "erase sector"被独立管理,且可以“乱序(out-of-order)”寻址,因而当创建新文件或覆盖老文件之时,可以统一地申请一块“已擦除扇区(erase sector)”。为了保证“掉电可靠性”,在被确认已被成功写入FLASH之前(通过CRC和版本标签),文件的任何部分不会被真正覆盖。之后,老的数据块被标记为“回收”,则待到其所有的邻居(同一个扇区内的)也有相似的标记之时,该扇区被擦除。
好消息,JFFS2还支持压缩。文件数据在被写入时,通过zlib(可调整mod's)压缩;数据在被读出之时在线(on the fly)解压缩;所以事实上你无法感知你的数据是否被压缩了。因而现在你可以采用ASCII文件格式(而不是binary文件)来做日志(log)或配置(config)文件,当然二进制文件也会被压缩的。如果你的文件很“松散(sparse)”(如:其中有很多空格),呵呵,不用担心空间会浪费了。但缺点是,如果你将已经压缩过的数据写入时,系统仍将花费大量时间试图再压缩它。而此时你又无法动态关闭压缩功能。目前有些计划正在试图实现相关功能(即使是基于目录级别,对单个目录实现压缩的开关选项或属性)。
Detect flash chips by Common Flash Interface (CFI) probe 通过通用闪存接口检测闪存,可以不
用选择
Detect non-CFI AMD/JEDEC-compatible flash chips 可以不用选择
[*] Flash chip driver advanced configuration options
Flash cmd/query data swapping (NO) --->
(X) NO
( ) BIG_ENDIAN_BYTE
( ) LITTLE_ENDIAN_BYTE
[*] Specific CFI Flash geometry selection
[*] Support 8-bit buswidth
[*] Support 16-bit buswidth
[*] Support 32-bit buswidth
[*] Support 64-bit buswidth
[*] Support 2-chip flash interleave
Mapping drivers for chip access --->
[*] Support non-linear mappings of flash chips
CFI Flash device in physical memory map
(0x8000000) Physical start address of flash mapping (NEW)
(0x4000000) Physical length of flash mapping (NEW)
(2) Bus width in octets (NEW)
CFI Flash device mapped on Photron PNC-2000
CFI Flash device mapped on AMD SC520 CDP
CFI Flash device mapped on AMD NetSc520
CFI Flash device mapped on Arcom SBC-GXx boards
CFI Flash device mapped on Arcom ELAN-104NC
JEDEC Flash device mapped on Octagon 5066 SBC
JEDEC Flash device mapped on Tempustech VMAX SBC301
Flash device mapped with DOCCS on NatSemi SCx200
BIOS flash chip on AMD76x southbridge
BIOS flash chip on Intel Hub Controller 2
BIOS flash chip on Intel SCB2 boards
CFI flash device on SnapGear/SecureEdge
CFI Flash device mapped on DIL/Net PC
(0x80000) Size of DIL/Net PC flash boot partition (NEW)
BIOS flash chip on Intel L440GX boards
PCI MTD driver
Flash device mapped with DOCCS on NatSemi SCx200
BIOS flash chip on AMD76x southbridge
BIOS flash chip on Intel Hub Controller 2
BIOS flash chip on Intel SCB2 boards
CFI flash device on SnapGear/SecureEdge
CFI Flash device mapped on DIL/Net PC
(0x80000) Size of DIL/Net PC flash boot partition (NEW)
BIOS flash chip on Intel L440GX boards
Self-contained MTD device drivers --->
Ramix PMC551 PCI Mezzanine RAM card support
[*] PMC551 256M DRAM Bugfix
[*] PMC551 Debugging
Uncached system RAM
Test driver using RAM
(4096) MTDRAM device size in KiB
(128) MTDRAM erase block size in KiB
MTD emulation using block device
--- Disk-On-Chip Device Drivers
M-Systems Disk-On-Chip 2000 and Millennium
M-Systems Disk-On-Chip Millennium-only alternative driver (see he
M-Systems Disk-On-Chip Millennium Plus
[*] Advanced detection options for DiskOnChip
(0x0000) Physical address of DiskOnChip (NEW)
[*] Probe high addresses
[*] Probe for 0x55 0xAA BIOS Extension Signature
NAND Flash Device Drivers ---> Flash设备,不用选择了
NAND Device Support
[*] Verify NAND page writes
Parallel port support ---> 没有打印机,可以不用选择
Parallel port support 如果要使用Parallel port的话,就打开吧!(打印机用那个)
PC-style hardware 就是跟IBM PC相容的Parallel port,需要用Parallel port的话,就开着
Multi-IO cards (parallel and serial) 不用选择
这好像是指说在PCI上裝Parallel跟Serial Port扩充的支援,沒有的话就別理他
[*] Use FIFO/DMA if available (EXPERIMENTAL)
[*] SuperIO chipset support (EXPERIMENTAL)
Support for PCMCIA management for PC-style ports 不用选了
[*] Support foreign hardware 如果要让Parallel port支援一些非标准的Parallel port装置就选吧
不用选择
[*] IEEE 1284 transfer modes 不用选择
开启IEEE1284传输模式支援,如果要用ECP、EPP等模式就必需要开启如果要用Parallel port的話就選吧,可以增加效能
Plug and Play support ---> 热插拔支持,当然要选择了
[*] Plug and Play support 热插拔支持,当然要选择了
[*] PnP Debug Messages 热插拔硬件的调试,可以不用选择
--- Protocols
[*] ISA Plug and Play support ISA的,好老的东西了,可以不用选择
[*] Plug and Play BIOS support (EXPERIMENTAL) 这个可以选择,热插拔的BIOS支持
[*] Plug and Play BIOS /proc interface 这个可以选择
Block devices --->
Normal floppy disk support 软驱支持,可以选择,编译成模块
PS/2 ESDI hard disk support 这种硬盘恐怕现在找不到了,不用选择
XT hard disk support 石器时代的XT硬盘,IBM在很早时开发的东西,不用选择了
Parallel port IDE device support 一般硬盘都是并行ATA接口的40针连接器连接到总线的
--- Parallel IDE high-level drivers LINUX是支持这种很新的并口的IDE设备的,如果你有的话就用上吧
Parallel port IDE disks 并口连接的IDE设备,一般硬盘通过硬盘IDE控制器直接连接到总线,不用选择
Parallel port ATAPI CD-ROMs ATAPI用的是ATA接口,SCSI的命令集,后来只用于cdrom,不用选
Parallel port ATAPI disks 同上,不用选了
Parallel port ATAPI tapes 磁带机,不用选择
Parallel port generic ATAPI devices 同上,当然不用选择了
--- Parallel IDE protocol modules 不用选择
ATEN EH-100 protocol 不用选择
MicroSolutions backpack (Series 5) protocol 不用选择
MicroSolutions backpack (Series 6) protocol 不用选择
DataStor Commuter protocol 不用选择
DataStor EP-2000 protocol 不用选择
FIT TD-2000 protocol 不用选择
FIT TD-3000 protocol 不用选择
Shuttle EPAT/EPEZ protocol 不用选择
[*] Support c7/c8 chips (EXPERIMENTAL) 不用选择
Shuttle EPIA protocol 不用选择
Freecom IQ ASIC-2 protocol 不用选择
FreeCom power protocol 不用选择
KingByte KBIC-951A/971A protocols 不用选择
KT PHd protocol 不用选择
OnSpec 90c20 protocol 不用选择
OnSpec 90c26 protocol 不用选择
Compaq SMART2 support 給Compaq Smart Array controllers用的driver,一般人不会用吧?不
选
Compaq Smart Array 5xxx support 同上
[*] SCSI tape drive support for Smart Array 5xxx SCSI接口的磁带机,不用选择了
Mylex DAC960/DAC1100 PCI RAID Controller support 不用选择了
Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL) 不用选择了
用來支援Mylex DAC960, AcceleRAID跟eXtremeRAID這些RAID控制器,沒用的話,就免了 ...
Loopback device support
大部分的人这一个选项都选N,因为没有必要。但是如果你要mount iso文件的话,你得选上Y。这个选项的意思是说,可
以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合
IS09660的文件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。不过,如果您 想做到这点的话,
您必须有最新的mount程序,版本是在2.5X版以上的。而且如果您希望对这个文件系统加上保护,则您必须有
des.1.tar.gz这个程序。注意:此处与网络无关。建议编译成模块
Cryptoloop Support 一般不用选择
Network block device support 可以不用选择
Promise SATA SX8 (carmel) support SATA接口的16位I/O CPU支持,不用选了
<*> RAM disk support
(16384) Default RAM disk size 不用选了
如果使用过DOS下的ramdrive程序,应该能了解这个选项的意义。它可以把内存当成硬盘来做存取就如同一般的硬盘一
样,可以format它,或是放一些文件在里头。然后,当您关机这些数据也随着之而去了。如果的RAM够大,可以考虑玩
玩这选项,但一般人都不需要。
[*] Initial RAM disk (initrd) support 在用IDE装置开机的系統上利用load initrd挡來开机的动作可有可
无,若是用SCSI装置开机的話,这个选项必要打开,因为SCSI裝置要靠這才能开机
[*] Support for Large Block Devices 不太需要,比2TB大,上哪找这么大的Storage??
ATA/ATAPI/MFM/RLL support --->
<*> ATA/ATAPI/MFM/RLL support 一定要选择
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support 增强型设备支持的设备,除非你不需要
MFM/DLL/IDE硬盘的的支持,否则就应该回答Y,但如果你只有SCSI的硬盘,关掉这个选项会比较安全。
--- Please see Documentation/ide.txt for help/info on IDE drives
[*] Use old disk-only driver on primary interface 除非你的装置真的很古老,不然这选項不用理他
<*> Include IDE/ATA-2 DISK support 除非你都用SCSI裝置,不然就开这项,也可以提升效能
[*] Use multi-mode by default 使用Multi-mode,预设开启,現今的硬盘应该也都支持才是
[*] Auto-Geometry Resizing support
如果是用Award的BIOS,同時你的裝置大於32GB而且不能开机,就需要这选项
PCMCIA IDE support 笔记本的东西,可以不用选择
<*> Include IDE/ATAPI CDROM support CDROM的支援,除非你沒用CDROM,不然就选吧
Include IDE/ATAPI TAPE support (EXPERIMENTAL) 磁带机,好老的东西,不用选择了
<*> Include IDE/ATAPI FLOPPY support 除非有LS-120、ZIP一类的IDE FLOPPY裝置,不然不需要选
这个 SCSI emulation support 可以选择
软件模拟SCSI功能,好像可以用來支援一些IDE上无法识别,但可用SCSI找到类似的Driver來驱动用的 ... 通常应
该沒什么用,不用理他
[*] IDE Taskfile Access 好像是对IDE设备的稳定性跟安全比较有帮助,不用选择
[*] IDE Taskfile IO (EXPERIMENTAL)
--- IDE chipset support/bugfixes
<*> generic/default IDE chipset support 普通IDE芯片组支持,应该选择
[*] CMD640 chipset bugfix/support 通常电脑上都有,选择吧 ...
很多 486和 586的主机板都是用 CMD640的芯片,它是Neptune芯片和 SIS芯片的结合。不过,这种芯片有它的缺
点,在许多的情形下,它会造成数据的流失和错误。如果您选了这一项,则Linux核心会为您小心的寻找这些 错误并修正
它。而且,它会打开对二个IDE界面的支持。不过,在它的说明文件中提到,如果您的主机板没有PCI界面只有VESA总
线界面却希望有这项功能的话,则您必须传一些 参数给核心(ideo=cmd640_vlb)。如果不确定上面所说的,选择Y。
[*] CMD640 enhanced support 一般不需要,不选
一般来说,对于硬盘的存取速度来说,有所谓的 PIO MODES值设定,现今的 IDE界面及 BIOS应该都能侦测到正确的硬盘PIO MODE值了。此值愈高表示硬盘的存取的速度愈快。可是,有些主机板的B10S还是旧式的,不能抓到比较高的 PIO MODE值,如此一来,便不能发挥整台硬盘的效率。这个设定告诉读者说:如果您的IDE界面是CMD640为基础*1*7和586的主机板都在使用它。可以查查主机板的说明书或是 IDE接口卡的说明书做确定。文件上提到,选择这个将会降低一些速度,但是数据能百分之百的正确。
[*] PNP EIDE support 支援EIDE的即插即用卡,如果系統上有的話,就选吧
[*] PCI IDE chipset support 如果你的PCI系統中有用到IDE设备就选,通常是选上
[*] Sharing PCI IDE interrupts support 这个可以选择
支援IDE Chipset分享IRQ的支援,純用主板上的应该是沒差这选项
[*] Boot off-board chipsets first support 不用选择
如果你想利用非主板上內建的晶片所控制之裝置开机,才需要这个选项
[*] Generic PCI IDE Chipset Support 支援一般的IDE晶片,通常都会选择
OPTi 82C621 chipset enhanced support (EXPERIMENTAL) 好老的芯片组,不用选了
<*> RZ1000 chipset bugfix/support 通常都有,应该选择
[*] Generic PCI bus-master DMA support 是否支援DMA,現在的硬盘都支援了,选吧,可以增加不少效
能 [*] Force enable legacy 2.0.X HOSTS to use DMA 强使开启老设备DMA的,不用选了
[*] Use PCI DMA by default when available 让系統自动开启支援DMA的裝置的DMA 应该选择
[*] Enable DMA only for disks 这个不用选择
<*> AEC62XX chipset support
<*> ALI M15x3 chipset support
[*] ALI M15x3 WDC support (DANGEROUS)
<*> AMD and nVidia IDE support AMD和nVidia的IDE设备支持,不用选择
<*> ATI IXP chipset IDE support 大牌显卡厂商的IDE支持,不用选择了
<*> CMD64{3|6|8|9} chipset support 应该选择
<*> Compaq Triflex IDE support 好早的IDE设备,不用选择了
<*> CY82C693 chipset support
<*> Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTA
<*> Cyrix/National Semiconductor CS5530 MediaGX chipset suppo
<*> HPT34X chipset support
[*] HPT34X AUTODMA support (EXPERIMENTAL)
<*> HPT36X/37X chipset support
National SCx200 chipset support
<*> Intel PIIXn chipsets support
< > NS87415 chipset support
<*> PROMISE PDC202{46|62|65|67} support
[ ] Special UDMA Feature 可以不用选择
<*> PROMISE PDC202{68|69|70|71|75|76|77} support
[*] Enable controller even if disabled by BIOS 不用选择
<*> ServerWorks OSB4/CSB5/CSB6 chipsets support
<*> Silicon Image chipset support 不知道,还是选上吧
<*> SiS5513 chipset support 不知道,还是选上吧
<*> SLC90E66 chipset support
Tekram TRM290 chipset support
<*> VIA82CXXX chipset support
[*] Other IDE chipset support 可以选择,
--- Note: most of these also require special kernel boot parame
[*] Generic 4 drives/port support 可以选择
ALI M14xx support
DTC-2278 support
DTC-2278 support
Holtek HT6560B support
PROMISE DC4030 support (EXPERIMENTAL)
QDI QD65xx support QDI的产品?不用选择
UMC-8672 support
[*] IGNORE word93 Validation BITS
SCSI device support ---> 没有这个设备可以不用选择了
SCSI device support
[*] legacy /proc/scsi/ support
--- SCSI support type (disk, tape, CD-ROM)
SCSI disk support
SCSI tape support
SCSI OnStream SC-x0 tape support
SCSI CDROM support
[*] Enable vendor-specific extensions (for SCSI CDROM)
SCSI generic support
--- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
[*] Probe all LUNs on each SCSI device
[*] Build with SCSI REPORT LUNS support
[*] Verbose SCSI error reporting (kernel size +=12K)
[*] SCSI logging facility
SCSI Transport Attributes --->
--- Parallel SCSI (SPI) Transport Attributes
--- FiberChannel Transport Attributes 光纤分布式数据接口,技术还不成熟,还没用到呢,等有了再
选吧
SCSI low-level drivers --->
PCMCIA SCSI adapter support ---> 笔记本的 SCSI支持,不用选择了
Adaptec AHA152X PCMCIA support
Future Domain PCMCIA support
NinjaSCSI-3 / NinjaSCSI-32Bi (16bit) PCMCIA support
Qlogic PCMCIA support
Old CD-ROM drivers (not SCSI, not IDE) ---> 还没见过这种cd-rom
Multi-device support (RAID and LVM) ---> 里面选择raid一般人没有把
[*] Multiple devices driver support (RAID and LVM)
<*> RAID support
Linear (append) mode
RAID-0 (striping) mode
RAID-1 (mirroring) mode
RAID-4/RAID-5 mode
RAID-6 mode (EXPERIMENTAL)
Multipath I/O support
Device mapper support
Crypt target support
Fusion MPT device support ---> 采用了Fusion-MPT架构的SCSI控制器,不用选择了
Fusion MPT (base + ScsiHost) drivers
(40) Maximum number of scatter gather entries
Enhanced SCSI error reporting
Fusion MPT misc device (ioctl) driver
Fusion MPT LAN driver
IEEE 1394 (FireWire) support ---> 好像只有笔记本才有,那我就不用选了哦
Apple 称之为 FireWire(火线),Sony 称之为 i.Link,Texas Instruments 称之为 Lynx。尽管各自厂商注册的商标名称不同,但实质都是一项技术,那就是 IEEE-1394。作为一种数据传输的开放式技术标准,IEEE-1394被应用在众多的领域。当然,目前来说,IEEE-1394技术使用最广的还是数字成像领域,支持的产品包括数字相机或摄象机等。总体上说,IEEE-1394具有以下特点: 廉价 - 占用空间小 - 速度快 - 开放式标准 - 支持热插拔 - 可扩展的数据传输速率 - 拓扑结构灵活多样 - 完全数字兼容 - 可建立对等网络 - 同时支持同步和异步两种数据传输模式,虽然IEEE-1394可以通过串联线为接驳设备供电,但是对于各种连接设备来说只靠连接线供电还是远远不够的。例如,象硬盘这种对于电量要求较高的设备就很难从所接入的设备中得到充足的电力供应。以Evergreen推出的HotDrive为例,该硬盘如果与PC连接的话,不需
要任何的外部电源供应;但是如果与笔记本电脑连接的话,就需要使用一个外接电源。
IEEE-1394支持两种不同的连接器。最为常用的一种是直接与6条铜质导线进行连接。不过,Sony推出了一种只包含4条数据线的小型线缆,并专门设计了与之搭配的新型连接器。这种连接器如果要与标准的6导线线缆连接的话,需要使用转换器。
因为小型线缆不提供电源线,所以与之连接的设备只能使用外部电源供电。
I2O device support ---> 没有啊,不用选了
I2O,是英文“Intelligent Input & output”的缩写,中文意思是“智能输入输出”, 它是用于智能I/O系统的标准接口。
由于PC服务器的I/O体系源于单用户的PC台式机,而不是为处理大吞吐量任务的专用服务器而设计的,一旦成为网络中心设备后,数据传输量大大增加,因而I/O数据传输经常会成为整个系统的瓶颈。I2O智能输入/输出技术把任务分配给智能I/O系统,在这些子系统中,专用的I/O处理器将负责中断处理、缓冲存取以及数据传输等烦琐任务,这样系统的吞吐能力就得到了提高,服务器的主处理器也能被解放出来去处理更为重要的任务。因此,依据I2O技术规范实现的PC服务器在硬件规模不变的情况下能处理更多的任务,作为中小型网络核心的低端PC服务器可以从中获得更多的性能提高。它能够在不同的操作系统和软件版本下工作,旨在满足更高的I/O吞吐量需求。I2O允许服务请求从PCI上的一个设备进入,而无需通过主处理器。I2O主机处理器将识别该服务请求并在本地进行处理。当主处理器正在执行其它任务时,它还允许服务请求在I20处理器处进行排队。1降低主处理器的工作负载,从而提高系统性能②增强I/O吞吐能力③提供一个标准的I/O设备
接口④减少外围设备所需的驱动程序数量。
Networking support ---> 这个下面是选网卡驱动,一定要选
[*] Networking support 网卡驱动,肯定要选
Networking options --->
<*> Packet socket 让kernel支援packet的传输,当然要选
[*] Packet socket: mmapped IO 让传输加速用的,要开启MapleBBS內的MMIO也需要这东西,当然要选
<*> Netlink device emulation 最好编译成模块(也可以不用选择)
<*> Unix domain sockets
syslogd、x-windows等都是用socket來传输,即便电脑没网路,也需要他,所以是一定要选的 ...
PF_KEY sockets 和IP Sec有关,可以编译成模块
[*] TCP/IP networking 最基本的组网工具,一定要选
[*] IP: multicasting 可以同时定制数个网路位址的东东,建议开启
[*] IP: advanced router 不用选择
[*] IP: policy routing
[*] IP: use netfilter MARK value as routing key
[*] IP: fast network address translation
[*] IP: equal cost multipath
[*] IP: use TOS value as routing key
[*] IP: verbose route monitoring 以上7项是关于路由器设置的,不用选了
[*] IP: kernel level autoconfiguration 让kernel可以自动设定IP地址,选上吧
[*] IP: DHCP support
[*] IP: BOOTP support
[*] IP: RARP support 如有需要用DHCP取IP地址或是有用NFS一类的FS才需要用这三个 选上吧
IP: tunneling 一般人用不上,是让Linux可以在不同网域间移动且不需改变ip的东东 不用选择
IP: GRE tunnels over IP 可以不用选择
[*] IP: broadcast GRE over IP 不用选择
[*] IP: multicast routing 以上三个主机不拿来当路由器的話,沒什么用
[*] IP: PIM-SM version 1 support 一般都要选择,
[*] IP: PIM-SM version 2 support 一般都要选择
[ ] IP: ARP daemon support (EXPERIMENTAL) 可以不用选择
[*] IP: TCP syncookie support (disabled per default) 一种避免被用大量packet攻击用的东东
IP: AH transformation (可以不用选择)
IP: ESP transformation (可以不用选择)
IP: IPComp transformation 以上三个是 IP Sec用的,可以編成module (也可以不用选择)
IP: Virtual Server Configuration ---> Virtual Server Configuration中的选项设定都用M,按
默认
负载均衡集群是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务
响应;而LVS就是实现这一功能的技术,它通过使内核支持ipvs来实现LVS/Direct Routing (DR)、LVS/IP Tunnel、
LVS/NAT的功能
IP virtual server support (EXPERIMENTAL)
[*] IP virtual server debugging
(12) IPVS connection table size (the Nth power of 2)
--- IPVS transport protocol load balancing support
[*] TCP load balancing support
[*] UDP load balancing support
[*] ESP load balancing support
[*] AH load balancing support
--- IPVS scheduler
round-robin scheduling
weighted round-robin scheduling
least-connection scheduling
weighted least-connection scheduling
locality-based least-connection scheduling
locality-based least-connection with replication scheduling
destination hashing scheduling
source hashing scheduling
shortest expected delay scheduling
never queue scheduling
--- IPVS application helper
FTP protocol helper
The IPv6 protocol (EXPERIMENTAL) (可以不用选择)
[*] IPv6: Privacy Extensions (RFC 3041) support
IPv6: AH transformation
IPv6: ESP transformation
IPv6: IPComp transformation
IPv6: IPv6-in-IPv6 tunnel
[*] Network packet filtering (replaces ipchains) ---> 网路封包过滤,可用来取代ipchains 可以选择
--- Network packet filtering (replaces ipchains)
[*] Network packet filtering debugging 这个不用选择了
[*] Bridged IP/ARP packets filtering 可以选择
IP: Netfilter Configuration ---> 这就是防火墙机制里头的 iptables 啦!按默认都编成模
块 Connection tracking (required for masq/NAT)
FTP protocol support
IRC protocol support
TFTP protocol support
Amanda backup protocol support
Userspace queueing via NETLINK
IP tables support (required for filtering/masq/NAT)
limit match support
IP range match support
MAC address match support
Packet type match support
netfilter MARK match support
Multiple port match support
TOS match support
recent match support
ECN match support
DSCP match support
AH/ESP match support
LENGTH match support
TTL match support
tcpmss match support
Helper match support
Connection state match support
Connection tracking match support
Owner match support
Physdev match support
Packet filtering
REJECT target support
Full NAT
MASQUERADE target support
REDIRECT target support
NETMAP target support
SAME target support
[*] NAT of local connections (READ HELP)
Basic SNMP-ALG support (EXPERIMENTAL)
Packet mangling
TOS target support
ECN target support
DSCP target support
MARK target support
CLASSIFY target support
LOG target support
ULOG target support
TCPMSS target support
ARP tables support
ARP packet filtering
ARP payload mangling
ipchains (2.2-style) support
ipfwadm (2.0-style) support
NOTRACK target support
raw table support (required for NOTRACK/TRACE)
IPv6: Netfilter Configuration ---> 和iptables有关,按默认编成模块就可以了(也可以不用
选择)
Userspace queueing via NETLINK
IP6 tables support (required for filtering/masq/NAT)
limit match support
MAC address match support
Routing header match support
Hop-by-hop and Dst opts header match support
Fragmentation header match support
HL match support
Multiple port match support
Owner match support
netfilter MARK match support
IPv6 Extension Headers Match
AH/ESP match support
Packet Length match support
EUI64 address check
Packet filtering
LOG target support
Packet mangling
MARK target support
raw table support (required for TRACE)
DECnet: Netfilter Configuration ---> 不用选择
Routing message grabulator (for userland routing daemon)
Bridge: Netfilter Configuration --->
Ethernet Bridge tables (ebtables) support
ebt: broute table support
ebt: filter table support
ebt: nat table support
ebt: 802.3 filter support
ebt: among filter support
ebt: ARP filter support
ebt: IP filter support
ebt: limit match support
ebt: mark filter support
ebt: packet type filter support
ebt: STP filter support
ebt: 802.1Q VLAN filter support
ebt: arp reply target support
ebt: dnat target support
ebt: mark target support
ebt: redirect target support
ebt: snat target support
ebt: log support
<*> IPsec user configuration interface IP Sec的使用者控制介面,可以直接编成模组
SCTP Configuration (EXPERIMENTAL) ---> 流控制传输协议 。可以不用选择
The SCTP Protocol (EXPERIMENTAL)
[*] SCTP: Debug messages
[*] SCTP: Debug object counts
SCTP: Cookie HMAC Algorithm (HMAC-MD5) --->
( ) None
( ) HMAC-SHA1
(X) HMAC-MD5
Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) 异步传输模式,可以不用选择
Classical IP over ATM (EXPERIMENTAL) 可以不用选择
[*] Do NOT send ICMP if no neighbour (EXPERIMENTAL) 可以不用选择
LAN Emulation (LANE) support (EXPERIMENTAL) LAN设备的,不用选择
Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL) 可以不用选择
RFC1483/2684 Bridged protocols 一种以太网桥接方式, 不用选择了
[*] Per-VC IP filter kludge 不知道是什么东西,不用选择了
802.1d Ethernet Bridging IEEE 802.1 X是一种标准,基于用户ID或者设备来鉴定网络客户(或端
口)的身份。这个流程称为"端口层次的身份鉴别"。它采用了远程身份鉴别拨号接入用户服务(RADIUS)的方法,并将其
划分到三个不同的组中:申请者、认证者以及认证服务器。
802.1Q VLAN Support
DECnet Support 现在很少这种传输模式,不用选择
[*] DECnet: SIOCGIFCONF support
[*] DECnet: router support (EXPERIMENTAL)
[*] DECnet: use FWMARK value as routing key (EXPERIMENTAL)
ANSI/IEEE 802.2 LLC type 2 Support 802.2可以不用选择
The IPX protocol 这个一般来說是Novell系统用的,不用选他
[*] IPX: Full internal IPX network
Appletalk protocol support 除非你真的要跟apple的电脑通讯,不然用不上
[*] Appletalk interfaces support
Apple/Farallon LocalTalk PC support
COPS LocalTalk PC support
[*] Dayna firmware support
[*] Tangent firmware support
Appletalk-IP driver support
[*] IP to Appletalk-IP Encapsulation support
[*] Appletalk-IP to IP Decapsulation support
CCITT X.25 Packet Layer (EXPERIMENTAL) 不用选择
LAPB Data Link Driver (EXPERIMENTAL) 不用选择
[*] Frame Diverter (EXPERIMENTAL) 不用选择
Acorn Econet/AUN protocols (EXPERIMENTAL) 不用选择
[*] AUN over UDP 不用选择
[*] Native Econet 不用选择
WAN router 广域网路由器用的,不用选择了
[*] Fast switching (read help!)
[*] Forwarding between high speed interfaces
QoS and/or fair queueing ---> 一般不用选择(也可以按默认编译成模块)
QoS :Qulity of Service 好多选项没有用
[*] QoS and/or fair queueing
CBQ packet scheduler
HTB packet scheduler
HFSC packet scheduler
CSZ packet scheduler
ATM pseudo-scheduler
The simplest PRIO pseudoscheduler
RED queue
SFQ queue
TEQL queue
TBF queue