A-A+

debian编译内核2.6.16-1

2012年08月27日 主机域名 debian编译内核2.6.16-1已关闭评论 阅读 2,377 人 次

红色:需要修改的选项紫色:注意的选项 浅蓝色:过时的或用不到的 浅粉色:一大堆

from:Linux内核编译详解
------->为什么重新编译内核
为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:
自己定制编译的内核运行更快(具有更少的代码)
系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些
--------->内核编译模式
把相应部分编译到内核中(build-in)OR 把该部分编译成模块(module),动态调用。

STEPS:
step1.下载必要的工具
# apt-get install libncurses-dev kernel-package bzip2 make ncurses-dev fakeroot module-init-tools patch

step2.到http://www.kernel.org 下载最新的2.6.16内核,解压到/usr/src目录下;
#tar -jxvf linux-2.6.16.tar.bz2 -C /usr/src
#cd /usr/src
#ln -s linux-2.6.16 linux
# cp /boot/config-2.6.24-686 .config -----> 将当前配置设定为默认配置
step3. 在/usr/src/linux目录下运行以下命令配置和编译新内核:
#make menuconfig
配置内核命令:

#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)

step4.

#make dep
----->读取配置过程生成的配置文件,(.config)来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要.
#make clean
---->删除前面步骤留下的文件,以避免出现一些错误.
#make bzImage或make zImage
----->实现完全编译内核,二者生成的内核都是使用g***压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核。建议大家使用make bzImage命令。
#make modules
------>生成相应的模块
#make modules_install
------>把模块拷贝到需要的目录中
#depmod -a
------>严格说来,depmod -a命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。
# make install

or
#make-kpkg clean ----->必须执行这步
#make-kpkg --append_to_version -386 --initrd --revision=rev.01 kernel_image modules_image

---> make-kpkg --append_to_version :创建多重内核镜像,modules_image可以是pcmcia-cs*等,make-kpkg kernel_image实际上执行了make oldconfig和make dep。如果没使用initrd就不要使用–initrd选项。

# cd ..

# dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安装

step5. 内核编译完成后在/usr/src目录下就会生成一个kernel-image- 2.6.16_mykernel.1.0_i386.deb软件包,用以下命令安装:dpkg -i kernel-image-2.6.16_mykernel.1.0_i386.deb这样,在/boot目录下会生成System.map- 2.6.16,vmlinuz-2.6.16文件。在安装内核时grub会自动生成启动选项,非常方便,当然也可以手动来修改grub配置文件 menu.list,重启系统,开始使用新内核。

tips:
1)中括号里要么是空,要么是"*".尖括号里可以是空,"*"和"M".圆括号的内容是要你在所提供的几个选项中选择一项。
2)选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。
3) 内核配置完成后,在退出配置菜单时如果选择保存配置,则会在当前目录中生成一个.config文件,记录内核的所有配置参数。该配置文件会在下次配置内核 时自动导入。也可以通过内核配置菜单的导入和存盘功能导入其它内核配置文件和把当前配置以任意的名字保存在其它地方。
4)Loadable module support–>Module unloading选项可允许卸载已加载的内核模块。通过该功能,我们可以通过rmmod module_name和modprobe module_name命令改变内核模块的加载参数。

用新内核重启时如果提示VFS不能挂接问题(很久以前我教我同学第一次编内核的时候,他出现的就是这个问题)
提示出错信息类似以下内容:
VFS:Cannot open root device “hdb2″ or unknow-block(0,0)
Please append a correct “root=” boot option
kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0)
原因:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。

5) 如果编译失败,可用make clean和make menuconfig重新配置和编译。
配置信息默认会保存在/usr/src/linux/.config文件中。
收尾工作

至此,内核已经编译安装完成了,已经在 grub 开始菜单最下面添加了一个启动项。重启可以尝试新内核登录了。还有一些小问题需要解决。 将 /usr/src/linux 指向刚编译内核的源码目录

#rm /usr/src/linux
#ln -s /usr/src/linux-版本号 /usr/src/linux

之后重启,用 uname -r 检查内核版本。自然,记住还要重新安装显卡驱动。

清理工作

如果你的内核经过一段时间测试可以稳定正常工作,那么可以做一些清理工作,释放磁盘空间。

清理旧文件

回到内核源码目录

#make clean

删除 /lib/modules 下其他内核版本号对应的目录,即旧版本内核模块文件 删除 /boot 下其他内核版本号对应的文件

清理 grub 启动列表

你可能不希望失效的原来内核仍然留在开机选单上,那么

#mv /boot/grub/menu.lst.old /boot/grub/menu.lst
#rm /boot/*.old && rm /boot/grub*.old
#rm /boot/vmlinuz && rm /boot/initrd
#ln -s vmlinuz-新版本号-default vmlinuz
#ln -s initrd-新版本号-default initrd

更新 kernel-headers =

自行编译内核以后,linux-kernel-header 并不能自动更新,是 RPM 软件管理系统控制的。一般来说,此包会维持在官方内核版本。 所以我们需要手动更新,便于以后新内核下的模块编译工作。

rm -rf /usr/include/linux
cp -r /usr/src/linux-2.6...(新编译内核的版本号,请根据自己情况补全)/include/linux /usr/include

1、Code maturity level options ---> 代码成熟等级选项
[ *] Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际 上它是安全的。
2、 General setup ---> 常规安装选项
( ) Local version - append to kernel release
[*]Support for paging of anonymous memory (swap) 这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空间用来执行很大的程序。默认是选择的。
[* ]System V IPC (IPC:Inter Process Communication)是组系统调用及函数库,它能让程序彼此间同步进行交换信息。某些程序以及DOS模拟环境都需要它。为进程提供通信机制,这将 使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。
[*] POSIX Message Queues:这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上。

[*]BSD Process Accounting 一般用户所执行的程序,可通知内核将程序统计数据写成文件,详细记录相关信息。
[*] BSD Process Accounting version 3 file format:这是充许用户进程访问内核将账户信息写入文件中的。这通常被认为是个好主意,建议你最好将它选上。
[*] Sysctl support 此项功能可在不重新编译内核或是重新开机的前提下,动态变更某些特定的内核参数和变量,赋予内核较大的弹性。除非内存太少或是编译出来的内核是给安装、救 援磁盘所使用,否则这个选项一定要选上。这将提供一个接口让你可以动态的更改一些核心参数与变量,而不需要重新启动系统。打开这个选项将会增加内核的体积 至少8KB。如果你的内核仅用制作安装与恢复系统系统盘那么可以不选,以减少对内存的占用。
[] Auditing support 审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用。
[ *] Auditing support 审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计
[ *]Enable system-call auditing support支持对系统调用的审计
[ ] Kernel .config support 这将会把内核的配置信息与相关的文档说明编译进内核中,以后可以使用一些工具来提取它用来重新构建内核,一般不用选它。
[]Cpuset support只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它
[]Initramfs source file(s) initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白.
[]Optimize for size (Look out for broken compilers!) 编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码.
[ ] Configure standard kernel features (for small systems) ---> 这是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常你可以不选择这一选项,你也不用对它下面的子项操心了。
3、Loadable module support ---> 可引导模块支持 建议作为模块加入内核
[*] Enable loadable module support 这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行 支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除 它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文 件系统,系统总线的支持就不要编为模块了,否在无法启动系统。模块通常在/lib/modules/中.
[*]Module unloading 这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。不选择这个选项会让你的内核体积减小一点。

[]Forced module unloading 允许强制卸载正在使用中的模块(比较危险)

[]Module versioning support 允许使用其他内核版本的模块(可能会出问题)
[ ] Source checksum for all modules这个功能是为了防止更改了内核模块的代码但忘记更改版本号而造成版本冲突。我估计现在没有哪家公司在开发中还没使用版本控制工具,所以不需 要这项了。如果你不是自己写内核模块,那就更不需要这一选项了。

[*] Automatic kernel module loading 一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。不过,如果你 选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块,这是个很棒的特性,当然要选Y喽。
4、Block layer--->块设备层
[]Support for Large Block Devices仅在使用大于2TB的块设备时需要.
IO Schedulers----->
<*>Anticipatory I/O scheduler 预知I/O任务调度,不明白。官方文件说通常选上这个是个Good Choice,那就选上吧 ?假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用 于大多数环境,特别是写入较多的环境(比如文件服务器)?

<*>Deadline I/O scheduler
使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库)
<>CFQ I/O scheduler
使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统,对于桌面用户而言,应该选上
Default I/O scheduler---->
默认IO调度器 (X)CFQ

5、Processor type and features ---> 处理器类型
[*] Subarchitecture Type (PC-compatible) ---> 这选项的主要的目的,是使Linux可以支持多种PC标准,一般我们使用的PC机是遵循所谓IBM兼容结构(pc/at)。这个选项可以让你选择一些其它 架构。我们一般选择PC-compatible就可以了。
(X) PC-compatible 就在这里选PC模式。
( ) AMD Elan
( ) Voyager (NCR)
( ) NUMAQ (IBM/Sequent)
( ) SGI 320/540 (Visual Workstation)
[*]Processor family (Pentium-Pro) ---> CPU选项 这里针对自己的CPU型号,选取相应的选项。
查看cpu型号:#cat /proc/cpuinfo 我的是 Inter(R) Celeron(R) M processor 1300MHZ

( ) 386   - Intel 80386系列及AMD, Cyrix的兼容微处理器。
( ) 486   - Intel 80486系列及AMD, Cyrix, IBM的兼容微处理器。
( ) 586/K5/5x86/6x86/6x86MX   - 非Intel的586/686微处理器,包括AMD K5、Cyrix 5x86, 6x86及6x86MX。
( ) Pentium-Classic   - 原始Intel Pentium
( ) Pentium-MMX   - 支援MMX图形及多媒体扩充指令的Intel Pentium
(X) Pentium-Pro   - Intel Pentium Pro
( ) Pentium-II/Celeron(pre-Coppermine)   - Intel Pentium II 及 pre-Coppermine Celeron
( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon   - Intel Pentium III、Coppermine Celeron 及Intel Pentium-III Xeon
( ) Pentium M   - Intel Pentium III Mobile (不是 Pentium 4 Mobile)
() Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon   - Intel Pentium 4,包括 Celeron 、 Xeon及Mobile K6/K6-II/K6-III (MK6) - AMD K6系列
( ) K6/K6-II/K6-III   - AMD K6系列
( ) Athlon/Duron/K7    - AMD Athlon K7系列
( ) Opteron/Athlon64/Hammer/K8   - AMD Opteron 或 Athlon64 Hammer系列
( ) Crusoe   - Transmeta Crusoe
( ) Efficeon   - Transmeta Efficeon
( ) Winchip-C6   - Transmeta Efficeon
( ) Winchip-2   - Transmeta Efficeon
( ) Winchip-2A/Winchip-3   - IDT Winchip-2A或3
( ) GeodeGX1   - Geode GX1 (Cyrix MediaGX)   - AMD Geode GX 或 LX
( ) CyrixIII/VIA-C3   - Cyrix III 或 C3
( ) VIA C3-2 (Nehemiah)   - VIC C3 "Nehemiah"

[ ] Generic x86 support 这个选项提供了对X86系列CPU最大的兼容性,用来支持一些很少见的x86体系的CPU,它可能会降低一些系统性能。如果你的CPU能够在上面的列表中找到,就里就不用选了。
[ ]HPET Timer Support 这也是一个新的特性,HPET是intel制定的新的用以代替传统的8254(PIT)中断定时器与RTC的定时器,全称叫作高精度事件定时器。如果你有 一台较新的机器就选它吧,一般它是一个安全的选项,即使你的硬件不支持HPET也不会造成问题,因为它会自动用8254替换。
[ ] Symmetric multi-processing support 支持多处理器选项。如果只使用单CPU,那么得关闭。
Preemptible Model 这可是个新特性,几乎所有介绍2.6的文章都会提到,这就是可抢先式内核。也就是说被一些优先级很高的程序可以先与一些低优先级的程序执行,即使这些程序 是在核心态下执行(这实际上仍然不是真正的抢先式内核)。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度 程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能,所以还是选上吧。
() No Forced Preemption (Server) 适合服务器环境的禁止内核抢占
(X)Voluntary Kernel Preemption (Desktop)   适合普通桌面环境的自愿内核抢占
()Preemptible Kernel (Low-Latency Desktop)   适合运行实时程序的主动内核抢占

[ ]Local APIC support on uniprocessors 这里的都是CPU一级的特性。SMP中的中断分发显然是一个大问题,会自动选择APIC,.不必设置.APIC: Advanced Programmable Interrupt Controller高级程序中断控制器.APIC主要应用于多处理器操作系统,是为了解决IRQ太少和处理器间中断而产生的,当然,单处理器操作系统也 可以使用APIC(不是模拟PIC) 如果你使用 nVidia 显卡,请关闭;
[*] Machine Check Exception 如果系统出现一些问题比如CPU过热,内核将会在屏幕上打印相关信息来提醒你。这个功能是需要硬件支持的。你可以查看/proc/cpuinfo看看是否 有mce标志,有的话就选吧。如果你十分十分的不幸,选了它之后出现问题,可以在启动时加nomce参数来关闭它。

< *> Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 打开这个选项将会检查你机器上可能存在的问题,如果有一个非致命错误出现将会自动的修复并且记录,这可以帮助你查出程序出现问题的原因,是一个不错的选 项。当然它只能用在AMD Athlon/Duron / Intel Pentium 4这类CPU上。如果你正好在用它们中的一个你就选吧。
< > Toshiba Laptop support 东芝笔记本支持。这个选项是针对Toshiba笔记本的,可以用来访问Toshiba的系统管理模式,也就是可以直接设置BIOS。不过要注意它只在 Toshiba自己的 BIOS中起作用。假如你有一台Toshiba笔记本,可惜它的BIOS是Phoenix的,那这个选项仍然是无用的。台式机就关闭!
[ ] Enable X86 board specific fixups for reboot修正某些旧x86主板的重起bug,这种主板基本绝种
<M > /dev/cpu/microcode - Intel IA32 CPU microcode support 是否支持Intel IA32架构的CPU(Xeon)?这个选项将让你可以更新Intel IA32系列处理器的微代码,当然你还必须在文件系统选项中选择devfs才能正常的使用它。如果你把它译为模块你还需要在modprobe.conf中 加上这一行alias char-major-10-184 microcode 内核本身并不带有微代码的二进制文件,
<> /dev/cpu/*/msr - Model-specific register support 是否打开Pentium CPU特殊功能寄存器的功能?这个选项桌面用户一般用不到,它主要用在Intel的嵌入式CPU中的,这个寄存器的作用也依赖与不同的CPU类型而有所不 同,一般可以用来改变一些CPU原有物理结构的用途,但不同的CPU用途差别也很大。
<> /dev/cpu/*/cpuid - CPU information support 能从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID).是否打开记录Petium CPU相关信息功能?这会在/dev/cpu中建立一系列的设备文件,用以让过程去访问指定的CPU。一般不用选。
Firmware Drivers --->固件驱动程序

<>BIOS Enhanced Disk Drive calls determine boot disk
有些BIOS支持从某块特定的硬盘启动(如果BIOS不支持则可能无法启动),目前大多数BIOS还不支持
< >EFI Variable Support via sysfs 不用选

<>BIOS update support for DELL systems via sysfs
仅适用于DELL机器
<>Dell Systems Management Base Driver
仅适用于DELL机器
High Memory Support (4GB) ---> 高容量内存支持
如果你的计算机不会拥有1GB或以上的内存,请选off。如内存大小界符1GB和4GB之间,选       4GB。如果多于4GB,请选64GB。
//// Allocate 3rd-level pagetables from highmem除非有几G的内存,否则选择这个是没有意义的。(没有这项)////

Memory split   如果你不是绝对清楚自己在做什么,不要改动这个选项   
Memory model 一般选"Flat Memory",其他选项涉及内存热插拔
[ ] Math emulation Linux核心模拟数学浮点运算器,协处理器是在386时代的宠儿,现在早已下岗。
[*]MTRR (Memory Type Range Register) support 在PCI或者AGP总线众进行更快速的通讯。由于现在所有系统都将它们的显卡接在PCI或AGP总线上,你通常需要选择“MTRR”,可以提升显卡性能。
[ ] Boot from EFI support (EXPERIMENTAL) EFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),但是现在远未普及,由于我使用的是GRUB,所以选上这个也没什么用, 如果你打算使用EFI的功能,你可以到http://elilo.sourceforge.net看看。
[]Use register arguments(EXPERIMENTAL)使用"-mregparm=3"参数编译内核,将前3个参数以寄存器方式进行参数调用,可以生成更紧凑和高效的代码     这个可以不用选择了

[*]Enable seccomp to safely compute untrusted bytecode   此选项在数据应用程序执行期间估算不可信的字节代码时非常有效,只有嵌入式系统可以不选
Timer frequency--->

内核时钟频率,桌面推荐"1000 HZ",服务器推荐"100 HZ"或"250 HZ"
[*]kexec system call
提供kexec系统调用,可以不必重启而切换到另一个内核
6、Power management options (ACPI, APM) ---> 电源管理选项
--- Power Management support 电源管理有APM和ACPI两种标准且不能同时使用
[*]Legacy Power Management API 传统的电源管理API,比如软关机和系统休眠等接口
[ ] Power Management Debug Support 电源管理的调试信息支持,如果不是要调试内核有关电源管理部份,请不要选择这项。
[]software suspend   选择这个选项你可以挂起你的计算机(有点象XP中的休眠)
ACPI (Advanced Configuration and Power Interface) Support --->

不用选择,从这里进入ACPI电源管理的配置界面,ACPI和APM不能同时选择。
[*]ACPI Support
需要安装acpid守护程序,ACPI才能起作用.ACPI是为了取代APM而设计的,因此应该尽量使用ACPI而不是APM
[ ] Sleep States (EXPERIMENTAL) 选择这个选项可以使你的系统具有挂起的功能,也就是说你可以暂时中断你的工作,让你的系统处与一种低电能消耗的状态(sleep state),不过目前该功能还不完善,可以不要选上。

<>AC Adapter 如果你的系统可以在AC和电池之间转换就可以选
<>Battery 通过/proc/acpi/battery向用户提供电池状态信息,用电池的笔记本可以选
<M>Button 守护程序捕获Power,Sleep,Lid按钮事件,并根据/proc/acpi/event做相应的动作,软件控制的poweroff需要它
<M>Video 扩展ACPI在主板上的完整图象显示驱动,仅对集成在主板上的显卡提供ACPI2.0支持,且不是所有集成显卡都支持
<>Generic Hotkey 统一的热键驱动,建议不选
<>Fan 允许通过用户层的程序来对系统风扇进行控制(开,关,查询状态),支持它的硬件并不多
<M>Processor 让处理器在空闲时间节能,同时它还被cpufreq的"Performance-state drivers"选项所依赖
<M>Thermal Zone
系统温度过高时可以利用ACPI thermal zone及时调整工作状态以避免你的CPU被烧毁

<>ASUS/Medion Laptop Extras
华硕笔记本专用,以提供额外按钮的支持,用户可以通过/proc/acpi/asus来打开或者关闭LCD的背光/调整亮度/定制LED的闪烁指示等功能
<>IBM ThinkPad Laptop Extras   IBM ThinkPad专用
<>Toshiba Laptop Extras Toshiba笔记本专用
<>Disable ACPI for systems before Jan 1st this year
输入四位数的年份,在该年的1月1日前不使用ACPI的功能("0"表示一直使用)
<>Debug Statements
详细的ACPI调试信息,不搞开发就别选
<>ACPI0004,PNP0A05 and PNP0A06 Container Driver 支持内存和CPU的热插拔,一般只有那种多CPU的服务器才会用到
APM (Advanced Power Management) BIOS Support --->
<M> APM (Advanced Power Management) BIOS support
[ ] Ignore USER SUSPEND 忽略用户暂停请求。建议关闭.只有NEC Versa M系列的笔记本才需要选择这一项
[ ] Enable PM at boot time 开机时节能,这项就不用了,建议关闭。
[]Make CPU Idle calls when idle CPU空闲时节能.
[ ] Enable console blanking using APM 空闲时console转成空白,在屏幕空白时关闭LCD背光,事实上对所有的笔记本都无效.建议关闭。
[ ] RTC stores time in GMT 按Unix的标准,硬件的时钟应该设为格林威治时间。如果要硬件时钟设成了本地时间,这个选项就不用了。
[ ] Allow interrupts during APM BIOS calls 允许APM的BIOS调用时中断。多数的机器不需要这项,Thinkpad的一些新机器需要这项。如果休眠时挂机(包括睡下去就醒不来),再把这项选上。
[ ] Use real mode APM BIOS call to power off 建议最好选上此项,保证软件关机。如果你有兴趣可以试试你的机器不选这项能不能正常的软件关机(多数机器不能)。补充一点,如果既选择了ACPI又选择了 APM,先加载的将被使用.
CPU Frequency scaling --->

[*]CPU Frequency scaling 这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的,必须同时启用下面的一种governor才行
[] Enable CPUfreq debugging 是否允许调试CPU改变主频的功能,如果要调试,还需要在启动时加上参数。cpufreq.debug=<value> 1:变频技术的内核调试 2:变频技术的驱动调试 3:变频技术的调节器调试
< > CPU frequency translation statistics    通过sysfs文件系统输出CPU频率变换的统计信息
[] CPU frequency translation statistics details 输出详细的CPU频率变换统计信息
Default CPUFreq governor (performance) ---> 默认的CPU主频调节器.
(X) performance '性能'优先,静态的将频率设置为cpu支持的最高频率
( ) userspace 既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件,比如cpufreqd)
-----'performance' governor
<> 'powersave' governor 最大限度的节约电能调节器。
<>userspace' governor for userspace frequency scaling 既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件,比如cpufreqd)
<> 'ondemand' cpufreq policy governor '立即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不需要额外的调频软件),适合台式机,对CPU的频率作轮询,根据CPU的使用来调节 频率
<*> 'conservative' cpufreq governor '保守',和'ondemand'相似,但是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/AMD64环境
--- CPUFreq processor drivers
<M> ACPI Processor P-States driver 报告处理器的状态。

< > AMD Mobile K6-2/K6-3 PowerNow! AMD移动版K6处理器的变频驱动。
< > AMD Mobile Athlon/Duron PowerNow! AMD移动版毒龙、雷乌的变频驱动。
< > Cyrix MediaGX/NatSemi Geode Suspend Modulation Cyrix处理器的变频驱动。
< > Intel Enhanced SpeedStep Intel的变频技术支持。可以让处理器在2种工作模式之间随意地切换,即通电状态时的最高性能模式(Maximum Performance Mode)和电池状态时的电池优化模式Battery Optimized Mode.
[ ] Use ACPI tables to decode valid frequency/voltage pairs 如果选择了Speedstep,就选上Use ACPI tables.
[ ]Built-in tables for Banias CPUs 迅驰一代的主频/电压参数.
< M> Intel Speedstep on ICH-M chipsets (ioport interface) Intel ICH-M南桥芯片组的支持。

<M> Intel Pentium 4 clock modulation P4处理器的时钟模块支持。
<> Transmeta LongRun Transmeta处理器的支持。
< > VIA Cyrix III Longhaul VIA Cyrix处理器的支持。
--- shared options
[ ] /proc/acpi/processor/../performance interface (deprecated) 从/proc/acpi/processor/../performance获得CPU的变频信息。 内核帮助文档反对使用该选项,即将被废除.
[*]Relaxed speedstep capability checks 不全面检测Intel Speedstep,有的系统虽然支持Speedstep技术,却无法通过全面的检测
7.Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> 总线选项
--- PCI support 一定要进内核,不能编成模块)
PCI access mode (Any) ---> PCI外围设备配置,强列建议选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备
( )BIOS
( )MMConfig
( )Direct
(X)Any 选用Any,系统会先尝试直接设置,倘若失败便会退回启用BIOS设置。
[* ] PCI Express support   PCI-E支持 (目前主要用于显卡和千兆网卡)
<M>PCI Express Hotplug driver如果你的主板和设备都支持PCI Express热插拔就可以选上
[ ]Use polling mechanism for hot-plug events对热插拔事件采用轮询机制,仅用于测试目的
[ ] Legacy /proc/pci interface 使用/proc/pci提供系统中的PCI设备信息.实际上,使用lspci(8)能提供相同甚至更多的信息.发行版都装有lspci包.可不选.
[ ] PCI Debugging PCI调试,不选.
[*]ISA support ISA 总路,现已淘汰,建议关闭。是否使用工业总线。如果你没 有老式的ISA设备,可以不选这项。现在基本上都没有ISA的设备了。不过需要注意的是如果你做嵌入式系统的开发,一些PC104的总线可能会桥接到 EISA或者是。VESA总线上。运行lspci | grep ISA, 若有, 则选上.
[ ] EISA support 扩展ISA总路,早期计算机上的总路,现已淘汰,建议关闭。
[ ] MCA support IBM PS/2上的总线,现已淘汰,建议关闭。微通道总线。IBM的台式机和笔记本上可能会有这种总线,包括它的p系列、e系列、z系列机器上都用到了这种总线。
< > NatSemi SCx200 support   支持National Semiconductor的SCx200处理器的,不选.
<M>PCCARD (PCMCIA/CardBus) support ---> PCMCIA是专门用在笔记本或PDA、数码相机等便携设备上的一种接口规范(总线结构)为笔记本上使用的网卡等设备
[ ] Enable PCCARD debugging 仅供调试
<M>16-bit PCMCIA support   一些老的PCMCIA卡使用16位的CardBus. lspci -v | grep 16查看有没有16位的设备,
[*] Load CIS updates from userspace (EXPERIMENTAL) 有的PCMCIA卡需要这个功能,选上.
[*] PCMCIA control ioctl (obsolete)提供PCMCIA的ioctl接口.不懂什么意思,帮助文档建议选上.
[*]32-bit CardBus support 当前的PCMCIA卡基本上都是32位的CardBus
<M> CardBus yenta-compatible bridge support 使用PCMCIA卡的基本上都需要选择,子项请按照自己实际使用的PCMCIA卡选择
PC-card bridges 下面的是不同产家的PCMCIA芯片的驱动支持,如果你知道你的本本用的是什么芯片组的话,可以只选它而不选其它的。要是你不知道,可以全部选上,然后用 modprobe一种一种的试。
<M> CardBus yenta-compatible bridge support 使用PCMCIA卡的基本上都需要选择这一项
<M> Cirrus PD6729 compatible bridge support
<M> i82092 compatible bridge support
<M> Databook TCIC host bridge support////
PCI Hotplug Support PCI---->热插拔支持,一般来讲只有服务器上会有热插拔的设备,如果你使用的是台式机,你可以不选择此项并跳过这一部份.我没有选.
<> Support for PCI hotplug
<>Fake PCI Hotplug driver (NEW),选上这一选项能让你的机器模拟PCI热插拔。注意,它并不是真正意义上的热插拔,决对不允许带电插拔设备除非你的主板上集成了PCI热插拔芯 片并且你的PCI设备本身支持热插拔。
<>Compaq PCI Hotplug driver (NEW),Compaq服务器上的热插拔芯片组的支持。
<>IBM PCI Hotplug driver (NEW),IBM服务器上的热插拔芯片组的支持。
<>ACPI PCI Hotplug driver (NEW),PCI热插拔设备是否支持ACPI电源管理(一般来说都是支持的)。
<>CompactPCI Hotplug driver (NEW),精简PCI总线的热插拔设备的支持,通常在嵌入式系统中会用到精简PCI总线。
<M>SHPC PCI Hotplug driver (NEW),SHPC热插拔控制芯片的支持。

8、Executable file formats ---> 可执行文件格式
[*] Kernel support for ELF binaries ELF是开放平台下最常用的二进制文件,它支持不同的硬件平台。.除非你知道自己在做什么,否则必选.
<M > Kernel support for a.out and ECOFF binaries   早期UNIX系统的可执行文件格式,目前已经被ELF格式取代 .    目前还有一些.out格式的代码.选为模块.
< M> Kernel support for MISC binaries此选项允许插入二进制的封装层到内核中,当使用Java、.NET、Python、Lisp等语言编写的程序时非常有用。
9、Networking ---->
[*] Networking support 网络支持。这个选项里面的小项,请谨慎谨慎再谨慎!否则,用上新内核后,却上不了网,够你郁闷三天天三夜。
[]Networking options --->
<*> Packet socket 这种Socket可以让应用程序(比如tcpdump,iptables)绕过IP层直接访问网络设备,直接与网络设备通讯,而不通过内核中的其它中介协议.让kernel支持socket传输
[*]Packet socket: mmapped IO 让Packet socket驱动程序使用IO映射机制以使连接速度更快,让传输加速。
<*> Unix domain sockets 一种仅运行于本机上的效率高于TCP/IP的Socket,简称Unix socket.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如X Window和syslog
<M>IPsec user configration interface 支持IPsec用户设置接口,选为模块.IPsec 在 IP 层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。
<M> PF_KEY sockets 用于可信任的密钥管理程序和操作系统内核内部的密钥管理进行通信,IPsec依赖于它
[*] TCP/IP networking TCP/IP协议当然要选
[*] IP: multicasting 群组广播,似乎与网格计算有关,仅在使用MBONE的时候才需要,如果你的电脑使用的带宽很大,用于视频,音频数据传输,那你选上,一般都用不着选,在同一时间将信息传到多部计算机的技术,不同于广播和对等,选
[]IP: advanced router 高级路由,如果想做一个路由器就选吧
[*] IP: policy routing 策略路由
[*]IP: use netfilter MARK value as routing key
[*] IP: equal cost multipath 用于路由的基于目的地址的负载均衡
[] IP: equal cost multipath with caching support (EXPERIMENTAL)
[]IP: verbose route monitoring 显示冗余的路由监控信息
[] IP: kernel level autoconfiguration 在内核启动时自动配置ip地址/路由表等,需要从网络启动的无盘工作站才需要这个东西
<> IP: tunneling IP隧道,将一个IP报文封装在另一个IP报文内的技术, IP隧道,在多个网络中移动不需改变IP地址,信道传输支持,可以让某种通信协议可以用另外的协议来包装,离开后解出,不用选.
<> IP: GRE tunnels over IP 基是否让Tunneling支持GRE或在IPV4中支持IPV6,不选
[ ]IP: multicast routing多重传播路由,如果你打算把你的linux系统作为路由使用的话,就选上
[ ]IP:ARP daemon support 这东西尚处于试验阶段就已经被废弃了
[*]IP: TCP syncookie support 抵 抗SYN flood攻击的好东西,要启用它必须同时启用/proc文件系统和"Sysctl support",然后在系统启动并挂载了/proc之后执行"echo 1> /proc/sys/net/ipv4/tcp_syncookies"命令,如果选择,SYN cookies默认不会开启.
<M>IP: AH transformation IPsec验证头(AH)实现了数据发送方的验证处理,可确保数据既对于未经验证的站点不可用也不能在路由过程中更改,可以不选
<M>IP: ESP transformation   IPsec封闭安全负载(ESP)实现了发送方的验证处理和数据加密处理,用以确保数据不会被拦截/查看或复制,可以不选
<M>IP: IPComp transformation   IPComp(IP静荷载压缩协议),用于支持IPsec
以上3个都是IPsec需要的,编为模块.
<M> IP: tunnel transformation 支持通用IP隧道传输.编为模块.
<M>IP: TCP socket monitoring interface对TCP套接字的支持,编为模块

<*> INET: socket monitoring interface 支持socket监听接口,选上.
[ ]TCP: advanced congestion control 高级拥塞控制,如果没有特殊需求(比如无线网络)就别选了,内核会自动将默认的拥塞控制设为"Cubic"并将"Reno"作为候补
---- IP: Virtual Server Configuration Virtual Server Configuration中 的选项设定都用M,按默认负载均衡集群是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务响应;而LVS 就是实现这一功能的技术,它通过使内核支持ipvs来实现LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能.对基于单个IP地址的虚拟服务器的支持,如果要使用虚拟Apache和Ftp则编为模块.
<>IP: Virtual Server Configuration IP虚拟服务器允许你基于多台物理机器构建一台高性能的虚拟服务器,不玩集群就别选了

/////////////
后面的再慢慢看吧...按menuconfig中的帮助文档来,该不选的绝不选.
<>The IPv6 protocol 你要是需要IPv6就选吧
[ ] Network packet filtering (replaces ipchains) ---> 网路封包过滤,如果你打算把你的计算机作为局域网的防火墙及网关的话,就选上,否则可以不要选
/// [ ]NetLabel subsystem support NetLabel子系统为诸如CIPSO与RIPSO之类能够在分组信息上添加标签的协议提供支持,如果你看不懂就别选了.///
DCCP Configuration---->数据报拥塞控制协议在UDP的基础上增加了流控和拥塞控制机制,使数据报协议能够更好地用于流媒体业务的传输
<M > The DCCP Protocol (EXPERIMENTAL)
SCTP Configuration (EXPERIMENTAL) ---->流控制传输协议是一种新兴的传输层协议.TCP协议一次只能连接一个IP地址而在SCTP协议一次可以连接多个IP地址且可以自动平衡网 络负载,一旦某一个IP地址失效会自动将网络负载转移到其他IP地址上.

<M > The SCTP Protocol (EXPERIMENTAL) #Stream Control Transmission Protocol,一个新的传输层协议,与tcp,udp同层,不过很少有软件使用这个协议的,一般可以不要选

TIPC Configuration---->透明内部进程间通信协议,以共享内存为基础实现任务和资源的调度,专门用于内部集群通信

<>Asynchronous Transfer Mode (ATM) 异步传输模式(ATM)支持,如果你有ATM卡就选上,注意此ATM并非提款机,而是一种高速网络。估计咱们这都没有。
<*>Classical IP over ATM(EXPERIMENTAL)
[ ]Do not send ICMP if no neighbour
<> LAN Emulation (LANE) support
......
<M>802.1d Ethernet Bridging 802.1d 以太网桥,如果你打算把你的系统作为以太网的桥连的话就选上,反正大多数人都可以不要选
<M>802.1Q VLAN Support 802.1Q虚拟局域网
[]DECnet Support DECnet是一种很生僻的协议
<>ANSI/IEEE 802.2 LLC type 2 Support 对类形为2的定向连接的逻辑链路层的支持,不选
<>The IPX protocol IPX协议 需要支持Novell网络协议的话就选上
[ ] IPX: Full internal IPX network
<M>Appletalk protocol support 苹果电脑间用来通讯的协议,如果你的linux电脑与其他的苹果电脑相连,需要进行通讯的话就选上
[]Appletalk interfaces support
...< *> Appletalk-IP driver support
<>CCITT X.25 Packet Layer 大约没人需要这东西
<>LAPB Data Link Driver 大约没人需要这东西

[ ] Frame. Diverter (EXPERIMENTAL) #同上
<>Acorn Econet/AUN protocols 一种被Acorn计算机使用的又老又慢的协议
<M>WAN router 广域网路由适用于长远距离之间的电脑通讯,需要很昂贵的设备

QoS and/or fair queueing --->如果你需要Qos或公平队列就选吧,用于路由器或NAT,它可以修改网内各个计算机的各个数据流优先级。但只有使用相应第三方软件修改各个 数据流CoS后,才有效。并且占用一定的CPU资源和网络带宽。当内核通过网络设备来传送包时,必须决定每个包的顺序,如果选N,内核会采用标准的 FIFO方式,如果选Y,则需要选择下列算法中的一种CBQ ,HTB ,HFSC ,The simplest PRIO pseudoscheduler,RED ,SFQ ,TEQL ,TBF , GRED ,Network emulator,Ingress Qdisc,QoS support, Rate estimator,Packet classifier API,我们这里选QoS support并加入Rate estimator支持
Network testing ---> 网络测试,仅供调试使用
[] Amateur Radio support ---> 配置业余广播支持
< > IrDA (infrared) subsystem support ---> 配置红外线(无线)通讯支持,
< > Bluetooth subsystem support ---> 配置蓝牙通讯支持,呵呵,偶也将这个全咔嚓了。
--- Bluetooth subsystem support 蓝牙支持
< > L2CAP protocol support
< > SCO links support
< > RFCOMM protocol support
[ ] RFCOMM TTY support
< > BNEP protocol support
[ ] Multicast filter support
[ ] Protocol filter support
< > CMTP protocol support
< > HIDP protocol support
--- Bluetooth device drivers ---> 蓝牙设备驱动

<>Generic IEEE 802.11 Networking Stack 通用无线局域网(IEEE 802.11系列协议)支持
10、Device Drivers
Generic Driver Options---> 驱动程序通用选项
[*]Select only drivers that don't need compile-time external firmware 只显示那些不需要内核对外部设备的固件作map支持的驱动程序,除非你有某些怪异硬件,否则请选上
[*]Prevent firmware from being built 不编译固件.固件一般是随硬件的驱动程序提供的,仅在更新固件的时候才需要重新编译.建议选上
<M> Userspace firmware loading support 提供某些内核之外的模块需要的用户空间固件加载支持,在内核树之外编译的模块可能需要它
[]Driver Core verbose debug messages 让驱动程序核心在系统日志中产生冗长的调试信息,仅供调试
Connector - unified userspace <-> kernelspace linker ; 支持基于netlink socket协议的用户空间与内核空间的连接.不确定可以不选
Memory Technology Devices (MTD) 特殊的存储技术装置,如常用于数码相机或嵌入式系统的闪存卡
[]Parallel port support 并口支持(传统的打印机接口)
[*]Plug and Play support即插即用设备的支持,视自己的情况,如果需要使用U盘等即插即用设备则选上
[]PnP Debug Messages 该选项仅供调试使用
[]ISA Plug and Play support ISA设备即插即用支持
[]Plug and Play BIOS support   Linux 使用"Plug and Play BIOS"规范v1.0A(1994年)中定义的PNPBIOS自动检测主板上的资源和设备,但是其中的某些特性目前尚未实现,比如:事件通知/扩展坞 (Docking Station)信息/ISAPNP服务.如果你希望由内核检测主板上的设备并为其分配资源(此时BIOS中的"PnP OS"必须开启)可以选上,此外,PNPBIOS还有助于防止主板上的设备与其他总线设备冲突.不过需要注意的是ACPI将会逐渐取代PNPBIOS(虽 然目前两者可以共存),所以如果你的系统不使用ISA设备并且支持ACPI,建议你不要选中该选项并将BIOS中的"PnP OS"关闭
[]Plug and Play BIOS /proc interface 该选项仅供调试使用
[*]Plug and Play ACPI support 让Linux使用PNPACPI自动检测主板上内建的设备并为其分配资源(即使这些设备已被BIOS禁用),它有助于避免设备之间的资源(如中断)冲突
Block devices 块设备
<>Normal floppy disk support 通用软驱支持
<>XT hard disk support 古董级产品
<>Parallel port IDE device support 通过并口与计算机连接的IDE设备,比如某些老旧的外接光驱或硬盘之类

<>Compaq SMART2 support 基于Compaq SMART2控制器的磁盘阵列卡

<>Compaq Smart Array 5xxx support 基于Compaq SMART控制器的磁盘阵列卡
<>Mylex DAC960/DAC1100 PCI RAID Controller support 古董级产品
<>Micro Memory MM5415 Battery Backed RAM support 一种使用电池做后备电源的内存
<M> Loopback device support Loopback是指拿文件来模拟块设备,比如可以将一个iso9660镜像文件挂成一个文件系统

<>Cryptoloop Support 使用系统提供的加密API对Loopback设备加密,但不能用于日志型文件系统

<M>Network block device support 此项允许你的机器当成一个网络块设备的客户端,可以使用主机上的块设备,或是将块设备挂载在主机上,选M
<>Promise SATA SX8 support 基于Promise公司的SATA SX8控制器的RAID卡
<>Low Performance USB Block driver不选,否则可能与USB存储驱动冲突.
<*>RAM disk support 此项允许将内存的一部份当作一个块设备来使用,并可以在上面创建文件,就象使用其它的块设备一样,不过当关机时所有的文件会丢失,这个一定需要,因为在Linux的启动过程中要先将启动文件加载到内存文件系统中,选Y
<16>Default number of RAM disks 默认RAM disk的数量
<8192>Default RAM disk size (kbytes)仅在你真正知道它的含义时才允许修改
[*]Initial RAM filesystem and RAM disk (initramfs/initrd) support 如果启动计算机所必须的模块都在内核里的话可以不选此项
<>Packet writing on CD/DVD media CD/DVD刻录支持
(8)Free buffers for data gathering 用于收集写入数据的缓冲区个数(每个占用64Kb内存),缓冲区越多性能越好
<>Enable write caching 为CD-R/W设备启用写入缓冲,目前这是一个比较危险的选项
<>ATA over Ethernet support 以太网ATA设备支持

ATA/ATAPI/MFM/RLL support ---> ATA设备选项
<M> ATA/ATAPI/MFM/RLL support 通常是IDE硬盘和ATAPI光驱.除非你的系统是纯SCSI的,否则一定要选上!
<M> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support EIDE支持是当然要选的,否则540MB以上的硬盘都不认识而且不支持主从设备
[ ] Support for SATA deprecated(反对); conflicts with libata SATA driver) 反对使用,该选项与libata SATA驱动有冲突
[ ] Use old disk-only driver on primary interface 没人用这些古董了
<M> Include IDE/ATA-2 DISK support ATA-2支持,除非你的硬盘是古董,否则必选;
[] Use multi-mode by default 如果不确定就别选,除非出现帮助中指出的错误
< > Include IDE/ATAPI CDROM support 有IDE光驱的就选
< > Include IDE/ATAPI FLOPPY support 有IDE软驱的就选
<>Include IDE/ATAPI TAPE support 有IDE磁带的就选
< > SCSI emulation support SCSI仿真,以前刻录光碟时需要,现在不需要了
[ ] IDE Taskfile Access 对介质进行直接的原始访问,它是一个复杂且有效的测试和校验硬件的方案,可以在驱动层之下执行数据恢复工作
<>PCMCIA IDE support 通过PCMCIA卡与计算机连接的IDE设备,比如某些外置硬盘或光驱
--- IDE chipset support/bugfixes
<M> generic/default IDE chipset support 通用IDE芯片组支持
[ *] CMD640 chipset bugfix/support 586以前的主板上常用,毛病多多
[ ] PNP EIDE support #如果你有类似的EIDE即插即用设备就选上
[* ] PCI IDE chipset support 基于PCI总线的IDE芯片组支持,帮助IDE驱动自动检测和配置所有基于PCI的IDE接口
[*]Sharing PCI IDE interrupts support 与其他PCI设备共享中断,
[ ] Boot off-board chipsets first support 不使用外接IDE控制器的就别选,使用外接IDE控制器的注意看帮助
<M> Generic PCI IDE Chipset Support 通用的PCI IDE芯片组支持,如果你的芯片组在下面能找到就别选
[ ]OPTi 82C621 chipset enhanced support     OPTi 82C621 EIDE控制器
[ ]RZ1000 chipset bugfix/support     486/586年代的玩艺
[*]Generic PCI bus-master DMA support 通用的PCI总线控制器DMA支持,586以上的系统都支持,如果你想打开硬盘或光驱的DMA就选上
[]Force enable legacy 2.0.X HOSTS to use DMA 历史遗留问题,别管它,不选

[ *]Use PCI DMA by default when available 默认启用DMA,586以上的系统都支持,建议选择
[*]Enable DMA only for disks 只对硬盘启用DMA,若你的光驱不支持DMA就选上
< > AEC62XX chipset support
< > ALI M15x3 chipset support
< > AMD and nVidia IDE support
< > ATI IXP chipset IDE support
<*> CMD64{3|6|8|9} chipset support 要选
< > Compaq Triflex IDE support
< > CY82C693 chipset support
< > Cyrix/National Semiconductor CS5530 MediaGX chipset support
< > HPT34X chipset support
< > HPT36X/37X chipset support
< > National SCx200 chipset support
<> Intel PIIXn chipsets support
< > NS87415 chipset support
< > PROMISE PDC202{46|62|65|67} support
< > PROMISE PDC202{68|69|70|71|75|76|77} support
< > ServerWorks OSB4/CSB5/CSB6 chipsets support
< > Silicon Image chipset support选上
< > SiS5513 chipset support选上
< > SLC90E66 chipset support
< > Tekram TRM290 chipset support
<> VIA82CXXX chipset support
[ ] IGNORE word93 Validation BITS

[*] Other IDE chipset support #如果你的主板芯片不在上面这列就最好选上,而且一般选上也比较好
[ ] IGNORE word93 Validation BITS #这个似乎会导致些问题。不选

SCSI device support------>
<>RAID Transport Class 用于SCSI设备的软件RAID支持,需要配合外部工具
<*> SCSI device support SATA硬盘这里要选上!
[*] legacy /proc/scsi/ support 有任何SCSI/SATA/USB/光纤/FireWire/IDE-SCSI仿真设备之一就必须选上.
<M>SCSI disk support SCSI硬盘或U盘
< > SCSI tape support SISC 磁带机支持
< > SCSI OnStream SC-x0 tape support 另一种SCSI磁带
< > SCSI CDROM support SCSI CDROM
<M > SCSI generic support 若有SCSI硬盘/CD-ROM/tape之外的SCSI设备才需要选择
< > SCSI media changer support 一种SCSI备份设备
--- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
[ ] Probe all LUNs on each SCSI device 在每个SCSI设备上探测逻辑设备数.只在一个SCSI设备上有多个逻辑设备(模拟多个SCSI设备,比如多口读卡器)时才需要选它,一般的SCSI设备不需要
[ ] Verbose SCSI error reporting (kernel size +=12K) 以易读的方式报告SCSI错误,内核将会增大12K
[ *] SCSI logging facility 启用SCSI日志(默认并不开启,需要在挂载/proc后执行echo "scsi log token [level]" > /proc/scsi/scsi命令才能打开日志),可用于跟踪和捕获SCSI设备的错误
SCSI Transport Attributes --->
<M> Parallel SCSI (SPI) Transport Attributes 传统且常见的并行SCSI(Ultra320/160之类)
<M> FiberChannel Transport Attributes 光纤通道
<M> iSCSI Transport Attributes iSCSI是利用TCP/IP网络传送SCSI命令和数据的I/O技术
<>SAS Transport Attributes 串行SCSI传输属性支持(SAS对于的关系犹如SATA对于ATA)
SCSI low-level drivers ------>??? 底层SCSI驱动程序,按你实际使用的产品选择
<>iSCSI Initiator over TCP/IP 用于iSCSI在TCP/IP网络上传播的起动程序
< > Adaptec I2O RAID support
{此处省略的部分按照自己实际使用的控制器进行选择,仅用一个例子解说子项}

Adaptec AIC79xx U320 support
以基于PCI-X的Adaptec Ultra 320 SCSI控制器为例解说子项

Maximum number of TCQ commands per device
每个SCSI设备的标记指令队列的最大长度(上限253).上限越高性能越好,但是对于SCSI设备较多的系统来说可能造成内存分配失败.此值还可以通过 tag_info内核引导参数指定
Initial bus reset delay in milli-seconds
初始总线reset之后的延时微秒数(默认5000)
Enable Read Streaming for All Targets
对所有的标记队列启用Read Streaming(可以增强效能,但是在一些Adaptec早期的U320产品上有缺陷),此特性还可以通过rd_strm内核引导参数指定
Compile in Debugging Code
仅用于调试
Debug code enable mask (16383 for all debugging)
出错代码的掩码,0表示禁止所有,16383表示打开所有
Decode registers during diagnostics
将出错代码的解释内容编译进去,这样就不需要查看aic7xxx.reg中的出错代码表以确定出错代码的含意了

Old CD-ROM drivers (not SCSI, not IDE) --->

[ ] Support non-SCSI/IDE/ATAPI CDROM drives #如果你的光驱既不是SCSI又不是IDE,也不是ATAPI的就选上,不过现在一般都用不着选了

Multi-device support (RAID and LVM)---->
[ ] Multiple devices driver support (RAID and LVM) 普通Linux用户通常不需要RAID(廉价冗余磁盘阵列)或者LVM支持。以下至08.08.10,我是全部去掉的.
< > RAID support 软件RAID(需要使用外部工具),若你有硬件RAID控制器,可以不选
< > Linear (append) mode 追加模式(简单的将一个分区追加在另一个分区之后)
< > RAID-0 (striping) mode RAID-0(等量分割)模式
< > RAID-1 (mirroring) mode RAID-1(镜像)模式
< >RAID-10 (mirrored striping) mode
< > RAID-4/RAID-5 mode 这些模式比较复
< > RAID-6 mode          杂,一般不用
< > Multipath I/O support Multipath I/O support
< > Faulty test module for MD 用于MD(Multi-device)的缺陷测试模块
< > Device mapper support Device-mapper是一个底层的卷管理器,不用LVM就别选
Fusion MPT device support----> 采用了 Fusion-MPT 架构的 SCSI 控制器,不用选择了
<M> Fusion MPT (base + ScsiHost) drivers
<M> Fusion MPT misc device (ioctl) driver
<M> Fusion MPT ScsiHost drivers for SAS

........................

EEE 1394 (FireWire) support --->IEEE-1394 技术使用最广的还是数字成像领域,支持的产品包括数字相机或摄象机等.

[]IEEE1394(FireWire) support 类似usb接口
I2O device support --->I2O,是英文“Intelligent Input & output”的缩写,中文意思是“智能输入输出”, 它是用于智能 I/O 系统的标准接口。没有
<M> I2O support
<M> I2O Configuration support
<M> I2O Block OSM
<M> I2O SCSI OSM
<M> I2O /proc support
Networking support --->这个下面是选网卡驱动,一定要选

[*]Network Device Support. 网络设备支持
<M> Intermediate Functional Block support
这是一个中间层驱动,可以用来灵活的配置资源共享,看不懂的可以不选
<M> Dummy net driver support
哑接口网络,使用SLIP或PPP传输协议(如ADSL用户)的需要它
<> Bonding driver support
将多个以太网通道绑定为一个,也就是两块网卡具有相同的IP地址并且聚合成一个逻辑链路工作,可以用来实现负载均衡或硬件冗余
<>EQL (serial line load balancing) support
串行线路的负载均衡.如果有两个MODEM和两条电话线而且用SLIP或PPP协议,该选项可以让您同时使用这两个MODEM以达到双倍速度(在网络的另一端也要有同样的设备)
<M> Universal TUN/TAP device driver support
TUN/TAP可以为用户空间提供包的接收和发送服务,比如可以用来虚拟一张网卡或点对点通道
<> General Instruments Surfboard 1000
SURFboard 1000插卡式Cable Medem(ISA接口),这玩意大概早就绝种了
ARCnet devices----->
一般人没有ARCnet类型的网卡
PHY device support----->
数据链路层芯片简称为MAC控制器,物理层芯片简称之为PHY,通常的网卡把MAC和PHY的功能做到了一颗芯片中,但也有一些仅含PHY的"软网卡" 物理层设备(PHY: Physical Layer Device ) 物理层设备(PHY)是用于在快速以太网和吉比特因特网系统中的收发器的术语
Ethernet (10 or 100Mbit)---->
目前最广泛的10/100M网卡 这里可以详细的选择自己的网卡,我只选择 realtek 8139 的选项,其它的不用选了
[*] Ethernet (10 or 100Mbit)这个一定要选择
<*> Generic Media Independent Interface device support这个也要选择
<M> Sun Happy Meal 10/100baseT support   SUN 公司的产品,不用选择了
<M> Sun GEM support SUN 公司的产品,不用选择了
[*] 3COM cards
<M> 3c501 "EtherLink" support
<M> 3c503 "EtherLink II" support
<M> 3c505 "EtherLink Plus" support
<M> 3c507 "EtherLink 16" support (EXPERIMENTAL)
<M> 3c509/3c529 (MCA)/3c569B (98)/3c579 "EtherLink III" support
<M> 3c515 ISA "Fast EtherLink"
<M> 3c590/3c900 series (592/595/597) "Vortex/Boomerang" support
<M> 3cr990 series "Typhoon" support
<M> AMD LANCE and PCnet (AT1500 and NE2100) support AMD 的网卡,不用选择了

[*] Western Digital/SMC cards西部数据的卡,我没有,不用选择了
<M> WD80*3 support
<M> SMC Ultra support
<M> SMC 9194 support

[] Racal-Interlan (Micom) NI cards 这个卡很少,我没有,不用选择了
< > NI5010 support (EXPERIMENTAL)
<M> NI5210 support
<M> NI6510 support

Tulip family network device support ---> 我没有这个卡,所以不用选择了
< > AT1700/1720/RE1000Plus(C-Bus) support (EXPERIMENTAL)不用选择
<> DEPCA, DE10x, DE200, DE201, DE202, DE422 support 不用选择
<> HP 10/100VG PCLAN (ISA, EISA, PCI) support不用选择
[] Other ISA cards 很老的卡了,如果你有就选择吧,我不选了
<M>Cabletron E21xx support
<M> EtherWORKS 3 (DE203, DE204, DE205) support
<M> EtherExpress 16 support
<M> EtherExpressPro support/EtherExpress 10 (i82595) support
<M> HP PCLAN+ (27247B and 27252A) support
<M> HP PCLAN (27245 and other 27xxx series) support
<M> LP486E on board Ethernet
<M> ICL EtherTeam 16i/32 support
<M> NE2000/NE1000 support
<M> Zenith Z-Note support (EXPERIMENTAL)
<M> SEEQ8005 support (EXPERIMENTAL)

[*] EISA, VLB, PCI and on board controllers 应该选择??
<> AMD PCnet32 PCI support
<> AMD 8111 (new PCI lance) support 以上两个是 AMD 公司开发的,不用选择
[*]   Enable NAPI support                          不用选择
<> Adaptec Starfire/DuraLAN support 不用选择
[*]   Use Rx Polling (NAPI)(EXPERIMENTAL)不用选择
<> Ansel Communications EISA 3200 suppor(EXPERIMENTAL)不用选择
<> Apricot Xen-II on board Ethernet 不用选择
<M> Broadcom 4400 ethernet support (EXPERIMENTAL) 一般要选择
<> Reverse Engineered nForce Ethernet support (EXPERIMENTAL)不用选择
<> CS89x0 support 不用选择
<> Digi Intl. RightSwitch SE-X support                    不用选择
<> EtherExpressPro/100 support (eepro100, original Becker driver)不用选择
   [*]Use PIO instead of MMIO 不用选择?
<> Intel(R) PRO/100+ support 不用选择
[*]   Use Rx Polling (NAPI) 不用选择
<> Myson MTD-8xx PCI Ethernet support 不用选择
<> National Semiconductor DP8381x series PCI Ethernet support不用选择
<> PCI NE2000 and clones support (see help) 不用选择了
<*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIME 这个也要选择
<*> RealTek RTL-8139 PCI Fast Ethernet Adapter support 这个我必须选择,我就是 8139 的网卡
[]   Use PIO instead of MMIO 不用选择
[]   Support for uncommon RTL-8139 rev. K (automatic channel equal 这个也选择一下吧,以防万一
[]   Support for older RTL-8129/8130 boards老设备了,不用选择了
[]   Use older RX-reset method                    老设备了,不用选择了
<> SiS 900/7016 PCI Fast Ethernet Adapter support 这种适配器我没有,不用选择了
<> SMC EtherPower II 不用选择
<M> Sundance Alta support 这种卡比较普及,选择吧
[*]   Use MMIO instead of PIO 不用选择
<> TI ThunderLAN support 这种产品很少,不用选择
<> VIA Rhine support 崴盛的东西,不用选择
[*]   Use MMIO instead of PIO 不用选择
[*] Pocket and portable adapters不用选择
<M> AT-LAN-TEC/RealTek pocket adapter support 这个 realtek 的适配器也应该选择
<M> D-Link DE600 pocket adapter support
<M> D-Link DE620 pocket adapter support 以上两个是很常见的网卡,应该选择

Ethernet (1000 Mbit)---->
目前已成装机主流的1000M网卡
Ethernet (10000 Mbit)---->
万兆网卡无福消受啦
Token Ring devices---->令牌环,用来组建局域网,现在都用 ethernet,不用它了,
令牌环网设备
[ ] Token Ring driver support #你有这种网卡就选,应该是局域网用的
Wireless LAN (non-hamradio) --->

[ ] Wireless LAN drivers (non-hamradio) & Wireless Extensions #无线网络用的,笔记本用户都选上为好

Wan interfaces --->

[*] Wan interfaces support                        不用选择了
<M> Comtrol Hostess SV-11 support
<M> COSA/SRP sync serial boards support
<M> Etinc PCISYNC serial board support
[*] Etinc PCISYNC features
[*] Hard reset support
<M> LanMedia Corp. SSI/V.35, T1/E1, HSSI, T3 boards
<M> Sealevel Systems 4021 support
<M> SyncLink HDLC/SYNCPPP support
<M> Generic HDLC layer
[*] Raw HDLC support
[*] Raw HDLC Ethernet device support
[*] Cisco HDLC support
[*] Frame Relay support
[*] Synchronous Point-to-Point Protocol (PPP) support
--- X.25/LAPB support is disabled
<M> Goramo PCI200SYN support
<M> SBE Inc. wanXL support
[*]   rebuild wanXL firmware
<M> Cyclades-PC300 support (RS-232/V.35, X.21, T1/E1 boards)
[*]   Cyclades-PC300 MLPPP support
<M> SDL RISCom/N2 support
<M> Moxa C101 support
<M> FarSync T-Series support
<M> Frame Relay DLCI support
(24) Max open DLCI (NEW)
(8) Max DLCI per device (NEW)
<M> SDLA (Sangoma S502/S508) support                   以上都不用选择
[*] WAN router drivers                    广域网路由器驱动,不用选择
<M> Cyclom 2X(tm) cards (EXPERIMENTAL)
[*]   Cyclom 2X X.25 support (EXPERIMENTAL)
<M> Granch SBNI12 Leased Line adapter support
[*] Multiple line feature support         多线程支持,应该选择

[ ] FDDI driver support 除非要当 FDDI 光缆网路的主干 or router,不然一般是不需要的

< > Digital DEFEA and DEFPA adapter support (NEW) #你连上面的那个都没选的话,这个更不要选了

< > SysKonnect FDDI PCI support (NEW) #同上

[ ] HIPPI driver support (EXPERIMENTAL) #更加奇怪的东西了,不选

< > PLIP (parallel port) support #组成小型局域网用的,我也不太清楚组网的情况,自己看着办

<M> PPP (point-to-point protocol) support 拨号的,不太需要用到这东东,最好编译成模块
[*] PPP multilink support (EXPERIMENTAL)        最好选择
[*] PPP filtering                        最好选择
<M>   PPP support for async serial ports        最好选择
<M>   PPP support for sync tty ports          最好编译成模块
<M>   PPP Deflate compression                最好编译成模块
<M>   PPP BSD-Compress compression             最好编译成模块
<M>   PPP over Ethernet (EXPERIMENTAL)          最好编译成模块
< > SLIP (serial line) support 对用网卡连上网络的用户来讲,没用
[] CSLIP compressed headers
[] Keepalive and linefill
[] Six bit SLIP encapsulation
[] Fibre Channel driver support              这种好像还很少阿,不用选了

<M> Red Creek Hardware VPN (EXPERIMENTAL)             不用选择
<M> Traffic Shaper (EXPERIMENTAL)                  不用选择
<M> Network console logging support (EXPERIMENTAL)      不用选择

ISDN subsystem ---> ISDN(Integrated Services Digital Network),它的中文名称是综合数字服务网络,是一个利用电话线,把声音,影片信息以数字的方式传送的数字网络,它需要电话交换机设备有支持 ISDN,这通常需要电信局来做安装。偶这里不清楚,保留原样吧。
< > ISDN support ISDN 很少用了
Old ISDN4Linux --->
--- CAPI subsystem
<M> CAPI2.0 support
[]Verbose reason code reporting (kernel size +=7K)
<M> CAPI2.0 /dev/capi support
<M> CAPI2.0 capidrv interface support
--- CAPI hardware drivers
Active AVM cards --->
Active Eicon DIVA Server cards --->
Telephony Support ---> 电话支持,这个选项只有当你在计算机中使用电话卡的时候才有用,比如在Internet上打电话。大多数普通用户没有电话卡,因此不需要这个选项。
< > Linux telephony support
< > QuickNet Internet LineJack/PhoneJack support
< > QuickNet Internet LineJack/PhoneJack PCMCIA support

Input device support ---> 输入设备支持(键盘、鼠标、手柄、触摸屏等设备)
--- Mouse interface
[* ] Provide legacy /dev/psaux device
(1024) Horizontal screen resolution 水平解析度,一般显示器都是 1024 吧
(768) Vertical screen resolution 直解析度,一般显示器都是 768 吧
< > Joystick interface 手柄接口。
< > Touchscreen interface 触摸屏接口。
<> Event interface
< > Event debugging
--- Input Device Drivers
--- Keyboards --->
<> Sun Type 4 and Type 5 keyboard support   用 RS-232 连接的 Sun Type 4 or 5 的 keyboard,一
般沒有吧
<> DECstation/VAXstation LK201/LK401 keyboard support      没见过这种键盘,不用选择了
<> XT Keyboard support 如果你系统上是用旧式的 keyboard,还是接 keyboard port 的话,这个就要

<> Newton keyboard       用 Serial Port 接的 Newton keybooard,好像沒有用

[*]Mouse --->

<M> PS/2 mouse
<M> Serial mouse                        这两个最好都选择
<M> InPort/MS/ATIXL busmouse                    和鼠标有关,选择吧(我也不知道)
[] ATI XL variant                    ATI 的产品,不用选择了
<> Logitech busmouse                      我的就是罗技的,应该选择
<> IBM PC110 touchpad                      IBM 机的触摸板,笔记本用的,不用选
<> DEC VSXXX-AA/GA mouse and VSXXX-AB tablet       这种鼠标没见过,写字板我也没有

[ ] Joysticks ---> 游戏杆驱动
[ ] Touchscreens ---> 触摸屏驱动
[*] Miscellaneous devices --->
<M> PC Speaker support     利用机箱上那个喇叭发声的支援,要选择
<M> User level driver support 如果要让使用者等級的 driver 能让 input 的子系统存取就选,不確定就編成
模組
Hardware I/O ports ---> 硬件I/O端口
--- Serial I/O support
<M>Serial port line discipline
串口键盘或鼠标
[]ct82c710 Aux port controller
一种德州仪器TravelMate笔记本上使用QuickPort接口的鼠标
[]PCI PS/2 keyboard and PS/2 mouse controller
接在移动式扩展坞(Docking station)上的键盘或鼠标
[]Raw access to serio ports
不是hacker就别选了
[]Gameport support
就是早年"小霸王"游戏机上的那种手柄

Character devices ---> 字符设备
这个里面必须选下面的这些,其他的都不用选。
[ ] Legacy (BSD) PIY support 这个必须选,否则你 X 里的任何终端都大不开。
< > dev/agppart (AGP support)不用多说了把,AGP 支持。选中你显卡有关的就行了。
[ ] Direct Rendering Manager (XFree86 4.01 and higher DRI support)
这个里面也有关于显卡的选择,我不明是干什么用的。

[]Non-standard serial port support 非标准串口支持,大部分人都不需要选这个
< > Computone IntelliPort Plus serial support
<M> Comtrol RocketPort support
<M> Cyclades async mux support
< > Digiboard Intelligent Async Support
< > Moxa Intellio support
<M> Moxa SmartIO support
< > Multi-Tech multiport card support (EXPERIMENTAL)
<M> Microgate SyncLink card support
<M> SyncLink Multiport support
<M> HDLC line discipline support
< > SDL RISCom/8 card support
< > Specialix IO8+ card support
<M> Specialix SX (and SI) card support
< > Specialix RIO system support

[*]Stallion multiport serial support
< > Stallion EasyIO or EC8/32 support
< > Stallion EC8/64, ONboard, Brumby support
Serial drivers --->

<*> 8250/16550 and compatible serial support 选上

[ ] Console on 8250/16550 and compatible serial port 没显卡的选上??还是不要选了
<M> 8250/16550 PCMIA device support
<M> 8250/16550 device discovery via ACPI namespace 不确定可以不选

(32) Maximum number of 8250/16550 serial ports #这个默认的就可以了

(4)Number of 8250/16550 serial ports to register at runtime

[ ] Extended 8250/16550 serial driver options 不确定的话可以不选

--- Non-8250 serial port support

< > Digi International NEO PCI #Digi International's Neo series卡你有不?不选

[* ] Legacy (BSD) PTY support 使用过时的BSD风格的/dev/ptyxx作为master,/dev/ttyxx作 为slave
IPMI ---> 可以利用IPMI远程监视服务器的物理特征(温度,电压,风扇,电源,机箱入侵),它是独立于                  CPU, BIOS,OS的,只要接通电源就可以实现对服务器的监控

IPMI top-level message handler
IPMI消息处理器,要启用IPMI远程监视这个就必选
Generate a panic event to all BMCs on a panic
当发生紧急情况(panic)时,IPMI消息处理器将会向每一个已注册的底板管理控制器(BMC)接口                       生成一个描述该panic的IPMI事件,这些事件可以引发日志记录/报警/重启/关机等动作
Generate OEM events containing the panic string
当发生紧急情况(panic)时,IPMI消息处理器将会产生OEM类型的事件
Device interface for IPMI
为IPMI消息处理器提供一个IOCTL接口已便用户空间的进程也可以使用IPMI
IPMI System Interface handler
向系统提供接口(KCS,SMIC),一般你用了IPMI就需要选上
IPMI Watchdog Timer
启用IPMI Watchdog定时器
IPMI Poweroff
允许IPMI消息处理器关闭机器
Watchdog Cards ---> 能让系统在出现致命故障后自动重启,如果没有硬件Watchdog,建议使用Hangcheck timer而不是软件Watchdog

[ ] Watchdog Timer Support #看门狗,需要定期为其提供信号,否则将会认为cpu出错而对其复位,嵌入式系统中常用的一种东西,选中它并选中下面的一个Driver之后,再创建一个 /dev/watchdog节点即可拥有一只Watchdog了.更多信息请参考内核帮助
[]Disable watchdog shutdown on close
一旦Watchdog启动后就禁止将其停止
<>Software watchdog
软件Watchdog,使用它不需要有任何硬件的支持,但是可靠性没有硬件Watchdog高
{此处省略的硬件Watchdog部分请按照自己主板实际使用的芯片(可能在南桥中)进行选择}

<*> Intel/AMD/VIA HW Random Number Generator support 不确定也可以不选
<> /dev/nvram support 直接存取主板上CMOS的接口,太危险了!建议别选
<*> Enhanced Real Time Clock Support 启用该选项并创建/dev/rtc文件后就可以通过/proc/driver/rtc访问系统的硬件时钟(RTC),众多功能依赖于它(如SMP,IRQ 共享,定时器),特别是你使用的是多处理器或含超线程技术的处理器,建议选择
<> Double Talk PC internal speech card support 由RC Systems公司制造的一种语音合成器
<> Siemens R3964 line discipline 与使用西门子R3964协议的设备同步通信,除非你有一些诸如PLC之类的特殊设备,否则别选
< > Applicom intelligent fieldbus card support Applicom international公司生产的用于现场总线连接卡

< > Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL) 如果你的笔记本是Sony的VAIO,就选上

Ftape, the floppy tape device driver --->
<*> /dev/agpgart (AGP Support) AGP总线支持,有AGP显卡的还必须从子项中选取符合自己显卡型号的驱动
< > ALI chipset support 下面这些你的主板是什么芯片的就选哪个
< > ATI chipset support
< > AMD Irongate, 761, and 762 chipset support
< > AMD Opteron/Athlon64 on-CPU GART support
< > Intel 440LX/BX/GX, I8xx and E7x05 chipset support
< > NVIDIA nForce/nForce2 chipset support
< > SiS chipset support
< > Serverworks LE/HE chipset support
< > VIA chipset support
< > Transmeta Efficeon support
< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
< > 3dfx Banshee/Voodoo3+
< > ATI Rage 128
< > ATI Radeon
< > Intel I810
< *> Intel 830M, 845G, 852GM, 855GM, 865G
< > i830 driver
< > i915 driver
< > Matrox g200/g400
< > SiS video cards
< > ACP Modem (Mwave) support
< > RAW driver (/dev/raw/rawN) (OBSOLETE) 已废弃

<*> Intel/AMD/VIA HW Random Number Generator support
<> /dev/nvram support
<> Enhanced Real Time Clock Support
<M>Generic dev/rtc Emulation
<M> Double Talk PC internal speech card support
<M> Siemens R3964 line discipline
< > Applicom intelligent fieldbus card support
Ftape, the floppy tape device driver --->
[*] HPET - High Precision Event Timer #查看一下你的/dev目录是否有hpet,没有的话就不选
<*>Allow mmap HPET
< > Hangcheck timer #不确定这是个什么东西,应该可以不选
TPM devices --->

< > TPM Hardware Support #你有这个东西就选

I2C support ---> I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For linux,该项必选。如果你不想使用Motherboard Sensor(好像是监视cpu温度的),可以不选。
< > I2C support
< > I2C device interface I2C设备接口,允许用户空间的程序通过/dev/i2c-*设备文件使用I2C总线
I2C Algorithms ---> I2C算法,可以全不选,若有其他部分依赖其子项时,会自动选上
[ ] I2C Core debugging messages
[ ] I2C Algorithm debugging messages
[ ] I2C Bus debugging messages
[ ] I2C Chip debugging messages

SPI support--->
串行外围接口(SPI)常用于微控制器(MCU)与外围设备(传感器,eeprom,flash,编码器,模数转换器)之间的通信,比如MMC和SD卡就通常需要使用SPI .
Dallas's 1-wire bus ---> 一线总线
<M > Dallas's 1-wire support
< > Matrox G400 transport layer for 1-wire
< > DS9490R transport layer driver
< > DS9490R USB <-> W1 transport layer for 1-wire
< > Thermal family implementation
< > Simple 64bit memory family implementation
Hardware Monitoring support #用来监控硬件信息的,诸如CPU温度,风扇转速等等,选上
<*>Hardware Monitoring support
[ ] Hardware Monitoring Chip debugging messages (NEW) #绝对不选
Hardware Bus support ---> 按实际硬件情况选对应的子项即可
<M> Intel 82810(ICH)
[]Miscellaneous I2C Chip support其他不常见的产品,按需选择
Hardware Sensors Chip support --->全不选
Misc devices --->
< > Device driver for IBM RSA service processor #不确定可以不选
Multimedia Capabilities Port Driver--->为 RSA 加密算法服务处理器设计的,不用选择
Multimedia devices ---> 聲音擷取卡及 FM 收聽介面卡用的,一般人應該也沒用
支援影像、

< > Video For Linux   提供音频/视频捕捉用的,一般可能要不到
Video For Linux --->不清楚,先不要动
--- Video Adapters
<M> BT848 Video For Linux
<M> Mediavision Pro Movie Studio Video For Linux
<M> Quickcam BW Video For Linux
<M> QuickCam Colour Video For Linux (EXPERIMENTAL)
<M> W9966CF Webcam (FlyCam Supra and others) Video For Linux
<M> CPiA Video For Linux
<M> CPiA Parallel Port Lowlevel Support
<M> CPiA USB Lowlevel Support
<M> SAA5246A Teletext processor
<M> SAA5249 Teletext processor
<M> SAB3036 tuner
<M> Stradis 4:2:2 MPEG-2 video driver (EXPERIMENTAL)
<M> Zoran ZR36057/36067 Video For Linux
<M> Iomega Buz support
<M> Pinnacle/Miro DC10(+) support
<M> Pinnacle/Miro DC30(+) support
<M> Linux Media Labs LML33 support
<M> Linux Media Labs LML33R10 support
<M> Sony Vaio Picturebook Motion Eye Video For Linux (EXPERIMENTAL)
<M> Philips SAA7134 support
<M> Siemens-Nixdorf 'Multimedia eXtension Board'
<M> Philips-Semiconductors 'dpc7146 demonstration board'
<M> Hexium HV-PCI6 and Orion frame grabber
<M> Hexium Gemini frame grabber
<M> Conexant 2388x (bt878 successor) support
Radio Adapters --->                  广播的当然不用选了
<M> ADS Cadet AM/FM Tuner
<M> AIMSlab RadioTrack (aka RadioReveal) support
<M> AIMSlab RadioTrack II support
<M> Aztech/Packard Bell Radio
<M> GemTek Radio Card support
<M> GemTek PCI Radio Card support
<M> Guillemot MAXI Radio FM 2000 radio
<M> Maestro on board radio
<M> SF16FMI Radio
<M> SF16FMR2 Radio
<M> TerraTec ActiveRadio ISA Standalone
<M> Trust FM radio card
<M> Typhoon Radio (a.k.a. EcoRadio)
[*] Support for /proc/radio-typhoon
<M> Zoltrix Radio

Digital Video Broadcasting Devices ---> 数字视频广播设备(DVB卡或机顶盒),子项请按自己实际使用的硬件选择
[ ] DVB For Linux 对高清晰度数字电视的支持,需要数字电视卡。目前北京深圳很多数字电视机顶盒内                                 嵌Linux,就使用了DVB For Linux。
< > DVB Core Support
--- Supported SAA7146 based PCI Adapters
--- AV7110 cards
[ ] AV7110 OSD support
< > Budget cards
< > Budget cards with onboard CI connector
< > Budget cards with analog video inputs
< > AV7110 cards with Budget Patch
--- Supported USB Adapters
< > Technotrend/Hauppauge Nova-USB devices
< > Technotrend/Hauppauge USB DEC devices
< > DiBcom USB DVB-T devices (see help for a complete device list)
[ ] Enable support for some misdesigned (see help) devices, which identify wit
[ ] Enable extended debug support for DiBcom USB device
< > Terratec CinergyT2/qanu USB2 DVB-T receiver
[ ] sophisticated fine-tuning for CinergyT2 cards
(32) Number of queued USB Request Blocks for Highspeed Stream Transfers
(512) Size of URB Stream Buffers for Highspeed Transfers
(250) Status update interval [milliseconds]
[ ] Register the onboard IR Remote Control Receiver as Input Device
(100) Infrared Remote Controller update interval [milliseconds]
-            -- Supported FlexCopII (B2C2) Adapters
< > Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters
< > Technisat/B2C2 Air/Sky/Cable2PC PCI
< > Technisat/B2C2 Air/Sky/Cable2PC USB
[ ] Enable debug for the B2C2 FlexCop drivers
<M> B2C2/Technisat Air/Sky/CableStar 2 PCI
--- Supported BT878 Adapters
--- Supported DVB Frontends
Customise DVB Frontends --->

........

Graphics support ---> 图形设备/显卡支持
<*> Support for frame buffer devices 帧缓冲设备是为了让应用程序使用统一的接口操作显示设备而对硬件进行的抽象,建议桌面用户选择
--- Enable Video Mode Handling Helpers 使用GTF和EDID来帮助处理显示模式,可以不选,若有其他选项依赖于它时,会自动选上

----Enable Tile Blitting Support 可以不选,若有其他选项依赖于它时,会自动选上
< > Cirrus Logic support 如果你有这种显卡才选上
< > Permedia2 support   如果你有这种显卡才选上
< > CyberPro 2000/2010/5000 support   不知道什么东西,对照一下你的显卡,有这含信息就选上
< > Arc Monochrome LCD board support (NEW) #这个我也弄不清到底是用来支持哪类LCD的,一般可以不选

<> VGA 16-color graphics support 16色VGA显卡.如果你有这种古董就选吧

<*>VESA VGA graphics support 符合VESA 2.0标准的显卡的通用驱动,这个当然选上,修改grub.conf就用到了这个
<> Hercules mono graphics support 下面这些你是什么芯片的显卡就选什么
< > nVidia Framebuffer Support
[ ] Enable DDC Support (NEW)
< > nVidia Riva support
< > Matrox acceleration
< > ATI Radeon display support (Old driver)
< > ATI Radeon display support
< > ATI Rage128 display support
< > ATI Mach64 display support
< > SiS acceleration
< > NeoMagic display support
< > IMG Kyro support
< > 3Dfx Banshee/Voodoo3 display support
< > 3Dfx Voodoo Graphics (sst1) support
< > Trident support
< > Epson S1D13XXX framebuffer support
< > Virtual Frame Buffer support (ONLY FOR TESTING!)
[ ] AMD Geode family framebuffer support (EXPERIMENTAL) #如果你用的是AMD Geode系列处理器,可以选上
< > Virtual Frame. Buffer support (ONLY FOR TESTING!) 仅供调试使用

Console display driver support --->
--- VGA text console 文本控制台,必选

[*] Video mode selection support #用来修改显示模式的,一般我们在grub中会用到类似vga=788的语句,所以应该选上

< > MDA text console (dual-headed) (EXPERIMENTAL) 如果你有古董级别的单色显卡并且作为第二块显卡使用以实现双头显示就选上吧

< *> Framebuffer Console support 基于framebuffer的控制台驱动,服务器可以不选

[ ] Framebuffer Console Rotation 显示画面旋转,它可能大大降低显示速度,建议不选

[ ] Select compiled-in fonts 选择内建字体
Logo configuration ---> 启动后在屏幕左上角的那个小企鹅。
[ ] Bootup logo #目前还不起作用,不选
[*]Backlight & LCD device support ---> LCD显示设备支持,一般无需选择
<*> Lowlevel Backlight controls
<> Lowlevel LCD controls
Sound ---> 声卡驱动
<M> Sound card support
Advanced Linux Sound Architecture --->
<M> Advanced Linux Sound Architecture 使用声卡者必选
<M> Sequencer support 音序器支持(MIDI必需),除非你确定不需要,否则请选上
<> Sequencer dummy client 除非你要同时连接到多个MIDI设备或应用程序,否则请不要选择
<M> OSS Mixer API OSS混音器API仿真,许多程序目前仍然需要使用它,建议选择
<M> OSS PCM (digital audio) API OSS数字录音(PCM)API模拟,许多程序目前仍然需要使用它,建议选择
[ *]OSS Sequencer API OSS音序器支持,许多程序目前仍然需要使用它,建议选择
<M> RTC Timer support 为ALSA启用RTC定时器支持,建议选择
[*]   Use RTC as default sequencer timer 将RTC当作默认的时序脉冲发生器
[ ] Dynamic device file minor numbers 仅供拥有多个声卡的用户选择
[*]Support old ALSA API 支持已被废弃的老版本ALSA API
[ ] Verbose printk 仅供调试使用
[ ] Debug 仅供调试使用
Generic devices ---> 通用设备
<> Dummy (/dev/null) soundcard   仅供调试
<M> Virtual MIDI soundcard 虚拟MIDI驱动,允许将使用原始MIDI设备的应用程序连接到音序器客户端,虚拟 MIDI 也是要选择的
<M> MOTU MidiTimePiece AV multiport MIDI
<M > UART16550 serial MIDI driver
<M> Generic MPU-401 UART driver 应该选择
ISA devices ---> ISA接口的声卡,请按实际使用的声卡选择子项 老标准的东西,不用选择了
下面是声卡驱动,仔细看看里面的驱动,有没有自己用的声卡。选上与自己声卡型号相配的驱动,其 他的都可以去掉
PCI devices ---> PCI接口的声卡,请按实际使用的声卡选择子项
< > ALi M5451 PCI Audio Controller
< > ATI IXP AC97 Controller
< > ATI IXP Modem
< > Aureal Advantage
< > Aureal Vortex
< > Aureal Vortex 2
< > Bt87x Audio Capture
< > Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x
< > Cirrus Logic (Sound Fusion) CS4281
< > Emu10k1 (SB Live!, Audigy, E-mu APS)
< > Emu10k1X (Dell OEM Version)
< > SB Audigy LS / Live 24bit
< > Korg 1212 IO
< > Digigram miXart
< > NeoMagic NM256AV/ZX
< > RME Digi32, 32/8, 32 PRO
< > RME Digi96, 96/8, 96/8 PRO
< > RME Digi9652 (Hammerfall)
< > RME Hammerfall DSP Audio
< > Trident 4D-Wave DX/NX; SiS 7018
< > Yamaha YMF724/740/744/754
< > Avance Logic ALS4000
<> C-Media 8738, 8338
< > (Creative) Ensoniq AudioPCI 1370
< > (Creative) Ensoniq AudioPCI 1371/1373
< > ESS ES1938/1946/1969 (Solo-1)
< > ESS ES1968/1978 (Maestro-1/2/2E)
< > ESS Allegro/Maestro3
< > ForteMedia FM801
< > ICEnsemble ICE1712 (Envy24)
< > ICE/VT1724/1720 (Envy24HT/PT)
< *> Intel/SiS/nVidia/AMD/ALi AC97 Controller
< > S3 SonicVibes
<> VIA 82C686A/B, 8233/8235 AC97 Controller
< > VIA 82C686A/B, 8233 based Modems
< > Digigram VX222
< > Intel HD Audio
USB devices ---> USB接口的声卡,请按实际使用的声卡选择子项
< > USB Audio/MIDI driver
< > Tascam US-122, US-224 and US-428 USB driver

Open Sound System ---> 如果你选上了前面的ALSA,这里的选项会自动全部去掉。当然,你也可将它做为模块加载。不过 Open Sound System 的音效不能用于播放HDTV。偶试过,MPlayer用 Open Sound System 播放HDTV,自己会自动退出。改用ALSA就没有任何问题。
< > Open Sound System (DEPRECATED)
< > BT878 audio dma (NEW)
< > C-Media PCI (CMI8338/8738) (NEW)
< > Creative SBLive! (EMU10K1) (NEW)
< > Crystal SoundFusion (CS4280/461x) (NEW)
< > Crystal Sound CS4281 (NEW)
< > Ensoniq AudioPCI (ES1370) (NEW)
< > Creative Ensoniq AudioPCI 97 (ES1371) (NEW)
< > ESS Technology Solo1 (NEW)
< > ESS Maestro, Maestro2, Maestro2E driver (NEW)
< > Intel ICH (i8xx) audio support (NEW)
< > S3 SonicVibes (NEW)
< > Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (NEW)
< > Support for Turtle Beach MultiSound Pinnacle, Fiji (NEW)
< > VIA 82C686 Audio Codec (NEW)
< > OSS sound modules (NEW)
< > TV card (bt848) mixer support (NEW)
< > ALi5455 audio support (NEW)
< > ForteMedia FM801 driver (NEW)
< > RME Hammerfall (RME96XX) support (NEW)
< > AD1980 front/back switch plugin (NEW)
USB support ---> USB支持 下面的选项,个人觉得比较复杂!有好多设备,偶都是没听说的,反正都是按照默认的值配置,没有多大的变动。
<M> Support for Host-side USB 主机端(Host-side)USB支持.
[ ] USB verbose debug messages 仅供调试使用
--- Miscellaneous USB options

[*]USB device filesystem 这个好象是用 U 盘必须的
[*]Enforce USB bandwidth allocation
执行usb带宽分配限制,禁止打开占用usb总线带宽超过90%的设备,关闭该选项可能会导致某些设备无法正常工作
[ ] Dynamic USB minor allocation除非你有超过16个同类型的USB设备,否则不要选择
[ ] USB selective suspend/resume and wakeup usb设备的挂起和恢复,毛病多多且许多设备尚未支持它,建议不选
--- USB Host Controller Drivers
<*> EHCI HCD (USB 2.0) support USB 2.0支持(大多数2002年以后的主板都支持).如果你选中了此项,一般来说你还需要选中OHCI或UHCI驱动,有 usb2.0 就选上把,编译成模块

[] Full speed ISO transactions 可以不用选择
由于USB 2.0支持低速(1.5Mbps)/全速(12Mbps)/高速(480Mbps)三种规格的外部设备,为了将全/低速设备对高速设备可用带宽的影响减到 最小,在USB2.0集线器中提供了一种事务转换机制,该机制支持在Hub连接的是全/低速设备的情况下,允许主控制器与Hub之间以高速传输所有设备的 数据,从而节省不必要的等 待.如果你没有外置的USB集线器就无需选择
[] Root Hub Transaction Translators HUB 不用选择
带有USB 2.0接口的主板上都有一个"根集线器"(Root Hub)以允许在无需额外购买hub的情况下就可以提供多个USB插口,其中的某些产品还在其中集成了事务转换(Transaction Translator)功能,这样就不需要再额外使用一个兼容OHCI或UHCI的控制器来兼容USB 1.1,即使你不太清楚自己主板上的根集线器是否集成了事务转换功能也可以安全的选中此项.
[] ISP116X HCD support   ISP1160/ISP1161主机USB控制器,是符合USB2.0全速规范的单片主                 机控制器和设备控制器,支持OHCI标准
<M> OHCI HCD support 开放主机控制接口(OHCI)是主要针对嵌入式系统的USB 1.1主机控制器规范 必须选择,编译成模块
<M> UHCI HCD (most Intel and VIA) support 如果你是intel或via主板就选上
<M> SL811HS HCD support 如果你有这种硬件就选吧
--- USB Device Class drivers
[*]Obsolete Oss Usb Drivers
< > USB Audio support USB声卡支持
< > USB Bluetooth TTY support (NEW) USB蓝牙设备支持
<> USB MIDI support USB MIDI设备支持
<> USB Modem (CDC ACM) support
<> USB Printer support USB接口打印机支持
--- NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; se
<M> USB Mass Storage support 用 U 盘必须选择 USB存储设备(U盘,USB硬盘,USB软盘,USB CD- ROM,USB磁带,memory sticks,数码相机,读卡器等等).该选项依赖于'SCSI device support',且大部分情况下还依赖于'SCSI disk support'(比如U盘或USB硬盘)
[ ]    USB Mass Storage verbose debug
[*]    Datafab Compact Flash Reader support (EXPERIMENTAL)
[*]    Freecom USB/ATAPI Bridge support
[*]    ISD-200 USB/ATA Bridge support
[*]    Microtech/ZiO! CompactFlash/SmartMedia support
[*]    HP CD-Writer 82xx support (EXPERIMENTAL)
[*]    SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL)
[*]    SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL)
[*]    Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL) 以上 9 项不用选择

--- USB Input Devices
< > USB Human Interface Device (full HID) support USB人机界面设备(鼠标/键盘/游戏杆/手写版等人操作计算机的设备),该驱动不能和"USB HID Boot Protocol drivers"同时使用,里面选择 usb 鼠标和 usb 键盘,如果你有一定选上这
个必需选
[* ] HID input layer support 如果你有USB接口的鼠标/键盘/游戏杆/手写板等输入设备就必选
[    ] Enable support for iBook/PowerBook special keys
苹果iBooks/PowerBooks键盘上的Fn/Numlock等功能键支持
[ ] Force feedback support (EXPERIMENTAL) 力反馈设备
[ ]PID Devices (Microsoft Sidewinder Force Feedback 2)
[ ]Logitech WingMan *3D support
[ ]ThrustMaster FireStorm Dual Power 2 support (EXPERIMENTAL)
[ ] /dev/hiddev raw HID device support 如果你有USB监控装置或不间断电源(UPS)之类的 非输入设备就选上
<> Aiptek 6000U/8000U tablet support    不用选择
<> Wacom Intuos/Graphire tablet support 不用选择
<> KB Gear JamStudio tablet support 不用选择
<> Griffin PowerMate and Contour Jog support不用选择
<> MicroTouch USB Touchscreen Driver
<> X-Box gamepad support和游戏有关,不用选择
<> ATI USB RF remote control ATI 的遥控产品,不用选择

USB HID Boot Protocol drivers - - - > 如果你有绝对的把握确信不为自己的键盘和鼠标使用通常的HID驱动,而要使用Boot Protocol模式的HID驱动(常见于嵌入式环境)就选吧
< > USB HIDBP Keyboard (simple Boot) support
< > USB HIDBP Mouse (simple Boot) support
< > Aiptek 6000U/8000U tablet support 一种手写板
< > Wacom Intuos/Graphire tablet support 一种手写/绘图板
< > Acecad Flair tablet support 一种数控绘图板
< > KB Gear JamStudio tablet support 一种手写/绘图板
< > Griffin PowerMate and Contour Jog support 一种具有调节音量/滚动文本/视频快进                             快退等功能的产品
< > MicroTouch USB Touchscreen Driver
< > eGalax TouchKit USB Touchscreen Driver
< > X-Box gamepad support
< > ATI / X10 USB RF remote control

--- USB Imaging devices
<M> USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)USB 相机,不用选择
<M> Microtek X6USB scanner support USB 扫描仪,不用选择
<M> HP53xx USB scanner support (EXPERIMENTAL)USB 扫描仪,不用选择

-- USB Multimedia devices USB 的多媒体设备,不用选择了
<M> DABUSB driver
<M> USB 3com HomeConnect (aka vicam) support     (EXPERIMENTAL)
<M> D-Link USB FM radio support (EXPERIMENTAL)
<M> USB IBM (Xirlink) C-it Camera support
<M> USB Konica Webcam support
<M> USB OV511 Camera support
<M> USB SE401 Camera support
<M> USB STV680 (Pencam) Camera support
<M> USB W996[87]CF JPEG Dual Mode Camera support

USB Network Adapters ---> USB网络适配器,如果你有这种设备请按自己实际使用的硬件选择子项,USB 网络适配器,不用选择了
< > USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)
< > USB KLSI KL5USB101-based ethernet device support
< > USB Pegasus/Pegasus-II based ethernet device support
< > USB RTL8150 based ethernet device support (EXPERIMENTAL)
< > Multi-purpose USB Networking Framework
[ ] USB Monitor usb流量监控,一般没必要选它

--- USB port drivers
USB Serial Converter support ---> USB接口转串口的转换设备
--- USB Miscellaneous drivers
<M> EMI 6|2m USB Audio interface support 一种USB音频设备
< > EMI 2|6 USB Audio interface support 一种USB音频设备

< > USB Auerswald ISDN support (EXPERIMENTAL) 一种ISDN设备
< > USB Diamond Rio500 support (EXPERIMENTAL) 一种mp3播放机
< > USB Lego Infrared Tower support (EXPERIMENTAL) 一种无线发射机
< > USB LCD driver support USB液晶显示器
< > USB LED driver support USB发光二极管
< > Cypress USB thermometer driver support 德国AK Modul-Bus Computer GmbH公司            的一种产品,不知道是用来干什么的
< > Alcatel Speedtouch USB support 一种温度计??
< > USB PhidgetServo support 来自Phidgets公司的各种USB产品
< > Siemens ID USB Mouse Fingerprint sensor support 西门子公司的一种指纹传感器
<   > USB 2.0 SVGA dongle support (Net2280/SiS315)一种软件狗
< > USB LD driver USB LD驱动
< > USB testing driver (DEVELOPMENT) 测试中的驱动,别选
USB DSL modem support----> USB DSL猫
USB Gadget Suppor-----> 其他各种杂七杂八的usb小玩艺
--- USB ATM/DSL drivers

MMC/SD Card support ---> MMC/SD卡支持
<M> MMC support
[ ] MMC debugging
<M> MMC block device driver
<M> Winbond W83L51xD SD/MMC Card Interface support
InfiniBand support ---> InfiniBand是一个通用的高性能I/O规范,它使得存储区域网中以更低的延时传输I/O消息和集群通讯消息并且提供很好的伸缩性.用于Linux 服务器集群系统
[ ] EDAC - error detection and reporting (RAS) 错误检测与纠正(EDAC)的目标是发现并报告甚至纠正在计算机系统中发生的错误,这些错误是由CPU或芯片组报告的底层错误(内存错误/缓存错误 /PCI错误/温度过高,等等),建议选择.如果这些代码报告了一个错误,请http://bluesmoke.sourceforge.net/和 http://buttersideup.com/edacwiki查看更多信息

File systems ---> 文件系统(有人说在编译内核时应该将 /boot分区和/分区的文件系统编译进内核,其它的可以编译成模块。对,但不确切。让我们来一起了解一下linux 系统的启动顺序。在内核被加载后,如果initrd参数传入了内核,内核会去调用指定的文件。当然,initrd和System.map通常都是 /boot下。但是同样可以用initrd=(hd1,2)/initrd.img这样的方式指定。内核启动完成后将调用/sbin/init,(如果是 链接要保证目标文件能被内核加载)。不同的系统的启动脚本可能不太一样,这里不详细介绍。启动脚本向内核加载模块时可能用/sbin/modprobe或 /sbin/insmod,由此看来/sbin的文件系统是要内核支持的。编译的内核模块一般在/lib/modules/的版本目录下,所以 /lib/modules的文件系统是要内核支持的。一旦其它文件系统的模块能加载,系统就能向正常的访问内核中的文件系统一样访问模块支持的文件系统 了。由于启动脚本、fstab自动加载等文件一般在/etc目录下,因此/etc的文件系统是要内核支持的。
这里概要的介绍了保证系统正常启动的几个关键点,可能我反而把它讲复杂了。如果你能理解上面的这段话,你应该能清楚的知道哪些文件系统是要编译进内核 的,哪些是可以编译成模块的。
<M> Second extended fs support 标准的Linux文件系统,一定要将这种文件系统编译进内核。

[ *]Ext2 extended attributes Ext2文件系统的结点名称、属性(与inode关联的name:value对)的扩展支持。
[ *]Ext2 POSIX Access Control Lists POSIX ACL(访问控制列表)支持。也就是Owner/Group/Others的Read/Write/Execute权限。请参考Unix标准文件系统权限。

[ *]Ext2 Security Labels 扩展的安全标签, 安全标签允许选择使用不同的安全模型实现(如SELinux)的访问控制模型,如果你没有使用需要扩展属性的安全模型就别选
[ ] Ext2 execute in place support程序 在写入存储介质时就已经分配好运行时的地址,因此不需要载入内存即可在芯片内执行,一般仅在嵌入式系统上才有这种设备

<M>Ext3 extended attributes Ext3文件系统扩展属性(与inode关联的name:value对)支持

<*> Ext3 journalling file system support Ext3性能平庸,使用journal日志模式时数据完整性非常好(但怪       异的是此时多线程并发读写速度却最快)
[*]Ext3 POSIX Access Control Lists POSIX ACL(访问控制列表)支持,可以更精细的针对每个用户进行访问       控制,需要外部库和程序的支持
[] Ext3 Security Labels 安全标签允许选择使用不同的安全模型实现(如SELinux)的访问控制模型,如果你没    有使用需要扩展属性的安全模型就别选
[ ] JBD (ext3) debugging support Ext3的调试。除非你是文件系统的开发者,否则不要选上这一项。
//以上这些肯定是要选择的,linux 的标准文件系统
< M> Reiserfs support   性能几乎全面超越Ext2(处理稀疏文件比Ext2慢),小文件(小于4k)性能非常突出,创建和删除文件速度最快,处理大量目录和文件(5k-20k) 时仍然非常迅速.日志模式建议使用Ordered,追求极速可使用Writeback模式,追求安全可使用Journal模式.建议使用noatime, notail选项挂载分区以提高速度和避免bug.用于NFS和磁盘限额时需要额外的补丁 看你的分区格式有没有,有就选上吧,最好选择
[ ] Enable reiserfs debug mode Reiserfs的调试。除非你是文件系统的开发者,否则不要选上这一项。
[ ] Stats in /proc/fs/reiserfs 在/proc/fs/reiserfs文件中显示Reiserfs文件系统的状态。仅供开发者使用
[ ] ReiserFS extended attributes Reiserfs ReiserFS文件系统扩展属性(与inode关联的name:value        对) 支持
[ ] ReiserFS POSIX Access Control Lists POSIX系统的访问权限列表支持。
[ ] ReiserFS Security Labels 扩展的安全标签支持。
[ ] JFS filesystem support IBM的JFS文件系统,不用选
< > JFS filesystem support JFS是IBM公司设计用于AIX系统上的文件系统。后来这一文件系统也能应用于Linux系统。
< >XFS filesystem support 不用选
碎片最少,多线程并发读写最佳,大文件(>64k)性能最佳,创建和删除文件速度较慢.由于XFS在内存中缓存尽可能多的数据且仅当内存不足时才会将数据刷到磁盘,所以应当仅在确保电力供应不会中断的情况下才使用XFS
XFS是SGI公司为其图形工作站设计的一种文件系统,后来这一文件系统也能应用于Linux系统。
Minix fs support Minix可能是最早的Linux系统所使用的文件系统。后来被Ext2文件系统所取代。 不用选
ROM file system support 内存文件系统的支持。除非你是嵌入式系统的开发者,明确知道你要干什么,否则不要选这一项。

[ ]XFS Quota support XFS的磁盘配额支持
[ }XFS Security Label support 扩展的安全标签支持.SElinux之类的安全系统会使用到这样的扩展安全属性
[ ] XFS POSIX ACL support POSIX ACL(访问控制列表)支持,可以更精细的针对每个用户进行访问控制,需要外部库和程序的支持
[ ] XFS Realtime support
实时子卷是专门存储文件数据的卷,可以允许将日志与数据分开在不同的磁盘上
[ ] OCFS2 file system support 一种用于集群的文件系统
[ ] Minix fs support 老古董文件系统
[ ] ROM file system support 用于嵌入式系统的内存文件系统的支持
[ ] Inotify file change notification support 新式的文件系统的变化通知机制,简洁而强大,用于代替老旧的Dnotify
[ *] Quota support 磁盘配额支持,限制某个用户或者某组用户的磁盘占用空间,Ext2/Ext3/Reiserfs都支持它
< > Old quota format support 旧版本的配额支持。
<*> Quota format v2 support 新版本(第二版)的配额支持。
<M> Kernel automounter support 内核自动加载远程文件系统的支持。 内核自动挂载的,当然要选
<M> Kernel automounter version 4 support (also supports v3) 新的(第四版)的内核自动加载远程文件系统的支持,也支持第三版。
< >Filesystem in Userspace support
FUSE允许在用户空间实现一个文件系统,如果你打算开发一个自己的文件系统或者使用一个基于FUSE的文件系统就选吧
CD-ROM/DVD Filesystems ---> 光盘文件系统
<M> ISO 9660 CDROM file system support CD-ROM的标准文件系统
<*>Microsoft Joliet CDROM extensions Microsoft对ISO 9660文件系统的Joliet扩展,允许在文件名中使用Unicode字符,也允许长文件名

<*>Transparent decompression extension Linux对ISO 9660文件系统的扩展,允许将数据透明的压缩存储在CD上
<M> UDF file system support 某些新式CD/DVD上的文件系统,很少见
DOS/FAT/NT Filesystems ---> 微软文件系统的支持
<M> MSDOS fs support 古老的MSDOS文件系统
<M> VFAT (Windows-95) fs support 从Win95开始使用的VFAT文件系统
(437) Default codepage for FAT 默认代码页
(ascii) Default iocharset for FAT 默认字符集
<*> NTFS file system support 默认字符集
[ ] NTFS debugging support 仅供调试使用
[ *]NTFS write support 这是对Windows的NTFS文件系统分区增加写入支持的驱动。偶在内核中选了这个小项,编译完成后,系统能够自动认出NTFS分区, 可以顺利读出分区上的文件。但是偶试着将文件写入NTFS分区时,LINUX还是无法将文件写入NTFS分区。
Pseudo filesystems ---> 伪文件系统

[ *]/proc file system support 这个用来存放一些硬件信息,占用的是内存空间,应该选吧 显示系统状态的虚拟文件系统(irq设置,内存使用,加载的设备驱动器,网络状态等),许多程序依赖于它
[*]/proc/kcore support 存放设备信息
系统物理内存的映象
[*] Virtual memory file system support (former shm fs)
tmpfs文件系统(以前叫shm[共享内存]文件系统)支持 一般要选择
[*] HugeTLB file system support 一般要选择
大 多数现代计算机体系结构提供对多种内存页面大小的支持(比如IA-32结构支持4K和4M(PAE模式为2M)两种页面).TLB (Translation Lookaside Buffer)是虚拟地址到物理地址的翻译缓冲区,这种缓冲区在处理器上是很宝贵的,操作系统总是尝试将有限的TLB资源发挥到极致.特别是能够轻松获得 若干G内存的时候(>4G),这种优化就显得尤为关键.只有开启此选项之后才能提供hugepage支持.
[ ] Relayfs file system support
[M] Userspace-driven configuration filesystem
configfs是用户空间驱动的文件系统,提供与sysfs相反的功能

Miscellaneous filesystems ---> 非主流的杂项文件系统

Network File Systems ---> 网络文件系统
<M>NFS file system support 要选择
[*]   Provide NFSv3 client support 要选择
[*]   Provide NFSv4 client support (EXPERIMENTAL)
要选择
[]   Allow direct I/O on NFS files (EXPERIMENTAL)不用选择
<M> NFS server support
网络文件系统支持:如果你在网络环境下而且想要分享档案,并且希望挂上别的电脑的文件系统,那么这个选项一定要选进去。它可以让您利用网络把别人的硬盘当成自己的来使用(把它变成一个目录)。对于一般情况下选择这个选项。
[]   Provide NFSv3 server support 不用选择
[]     Provide NFSv4 server support (EXPERIMENTAL) 不用选择
[]   Provide NFS server over TCP support 不用选择
<M> Secure RPC: Kerberos V mechanism (EXPERIMENTAL)
<> SMB file system support (to mount Windows shares etc.)
SMB文件系统支持:这个文件系统让您可以挂上windows95或windowsNT的文件系统,也就是您也可以抓到在windows下,网上邻居上的电脑。
[ ]    Use a default NLS要选择
( )    Default Remote NLS Option要选择
<> CIFS support (advanced network filesystem for Samba, Window and other CIFS compliant servers)不用选择
[ ] CIFS statistics不用选择
[*] CIFS extended attributes (EXPERIMENTAL)要选择
[*] CIFS POSIX Extensions (EXPERIMENTAL)要选择
<> NCP file system support (to mount NetWare volumes)不用选择
[ ]    Packet signatures
[ ]    Proprietary file locking
[ ]    Clear remove/delete inhibit when needed
[*]    Use NFS namespace if available
[*]    Use LONG (OS/2) namespace if available
[ ]    Lowercase DOS filenames
[*]    Use Native Language Support
[*]    Enable symbolic links and execute flags
<> Coda file system support (advanced network fs)不用选择
[ ]    Use 96-bit Coda file identifiers
<M> Andrew File System support (AFS) (Experimental)不用选择
<M> Plant 9 Resource Sharing Support 不用选择

Partition Types ---> 分区类型 高级磁盘分区类型

[*] Advanced partition selection
[*] Acorn partition support
[*]   Cumana partition support
[*]   EESOX partition support
[*]   ICS partition support
[*]   Native filecore partition support
[*]   PowerTec partition support
[*]   RISCiX partition support
[*] Alpha OSF partition support
[*] Amiga partition table support
[*] Atari partition table support
[*] Macintosh partition map support Apple 公司的 Mac 分区支持,不用选择了
[*] PC BIOS (MSDOS partition tables) support MSDOS 分区支持,这个可以选择
[*]   BSD disklabel (FreeBSD partition tables) support        如果要安装 FreeBSD,也可以选择
[*]   Minix subpartition support
[*]   Solaris (x86) partition table support             Solaris 分区支持,可以选择
[*]   Unixware slices support                     Unix 的 slice 支持,去看看 BSD 分区就知道了
[*] Windows Logical Disk Manager (Dynamic Disk) support          Windows 逻辑分区支持,可以选择
[*]   Windows LDM extra logging

[*] NEC PC-9800 partition table supp
ort
[*] SGI partition support
[*] Ultrix partition table support
[*] Sun partition tables support Sun 公司的分区支持,不用选择
[*] EFI GUID Partition support

Native Language Support ---> 本地语言支持
- - - - - Base native language support
最起码把 cp437,cp936,iso 8859-1 编译成模块,对,没看错,是说模块,不是编译进内核.
( ) Default NLS Option默认本地语言,建议使用UTF-8
{此处省略的部分请按需选择,一般至少需要CP437,ASCII,ISO-8859-1}
<* >    Codepage 437 (United States, Canada)
< >    Codepage 737 (Greek)
< >    Codepage 775 (Baltic Rim)
< >    Codepage 850 (Europe)
< >    Codepage 852 (Central/Eastern Europe)
< >    Codepage 855 (Cyrillic)
< >    Codepage 857 (Turkish)
< >    Codepage 860 (Portuguese)
< >    Codepage 861 (Icelandic)
< >    Codepage 862 (Hebrew)
< >    Codepage 863 (Canadian French)
< >    Codepage 864 (Arabic)
< >    Codepage 865 (Norwegian, Danish)
< >    Codepage 866 (Cyrillic/Russian)
< >    Codepage 869 (Greek)
<M>    Simplified Chinese charset (CP936, GB2312)
<M >    Traditional Chinese charset (Big5)
< >    Japanese charsets (Shift-JIS, EUC-JP)
< >    Korean charset (CP949, EUC-KR)
< >    Thai charset (CP874, TIS-620)
< >    Hebrew charsets (ISO-8859-8, CP1255)
< >    Windows CP1250 (Slavic/Central European Languages)
< >    Windows CP1251 (Bulgarian, Belarusian)
<M >    ASCII (United States)
<M >    NLS ISO 8859-1 (Latin 1; Western European Languages)
< >    NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)
< >    NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish)
< >    NLS ISO 8859-4 (Latin 4; old Baltic charset)
< >    NLS ISO 8859-5 (Cyrillic)
< >    NLS ISO 8859-6 (Arabic)
< >    NLS ISO 8859-7 (Modern Greek)
< >    NLS ISO 8859-9 (Latin 5; Turkish)
< >    NLS ISO 8859-13 (Latin 7; Baltic)
< >    NLS ISO 8859-14 (Latin 8; Celtic)
< >    NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)
< >    NLS KOI8-R (Russian)
< >    NLS KOI8-U/RU (Ukrainian, Belarusian)
<M>    NLS UTF8
12.Instrumentation Support----->分析支持
旁敲侧击: Profiling 是用来检核一支程式中那些部份(which bits)是最常呼叫或是执行的时间最久的方法.这对程式的最
佳化与找出何时时间是浪费掉的而言,是相当好的方式.你必须就你所要的时程资讯(timing information)的目的档案
(object files)加上-p 来编译,而且如果要让输出的档案(output files)有意义(make sense),你也会需要 gprof(来自
binutils 套件的命令).

[ ] Profiling support (EXPERIMENTAL) 对系统的活动进行分析,仅供内核开发者使用
< M> OProfile system profiling (EXPERIMENTAL)
[ ] Kprobes仅供内核开发者使用
13.Kernel hacking------>
内核监视选项:内核监视往往会生成非常大或者非常慢(甚至又大又慢)的内核,还可能会引起内核工作不稳定。
[   ] Show timing information on printks 在printk的输出中包含时间信息,可以用来分析内核启动过程各步骤所用时间
[ ] Magic SysRq key 不懂的千万别选
[ ] Kernel debugging 不是内核开发者的别选

[ ] Early printk
[ ] Check for stack overflows
[ ] Stack utilization instrumentation
[ ] Debug memory allocations
·    [   ]Debug Filesystem 不是内核开发者的别选
[ ] Compile the kernel with debug info 不是内核开发者的别选

[ ] Spinlock debugging
[ ] Page alloc debugging
[ ] Highmem debugging
[ ] Sleep-inside-spinlock checking
[ ] Compile the kernel with frame pointers
[ ] Use 4Kb for kernel stacks instead of 8Kb
14.Security options-------> 安全选这里的选项不明白的建议不要选,否则有可能弄巧成拙. 默认
[*]Enable access key retention support 在内核中保留authentication token和access key
[ ] Enable the /proc/keys file by which keys may be viewed
允许有权限的进程通过/proc/keys读取所有的key
[*] Enable different security models 允许内核选择不同的安全模型,如果未选中则内核将使用默认的安全模型

[*] Socket and Networking Security Hooks 允许安全模型通过Security Hook对 Socket与Networking进行访问控制
[* ]XFRM (IPSec) Networking Security Hooks 启用XFRM安全Hook
< *> Default Linux Capabilities 启用与"默认"Linux的兼容性
< > Root Plug Support 一个简单的Linux安全模块,在特定的USB设备不存在时它简单的禁止一切egid==0的进程运行
<   >BSD Security level
[ *]NSA SELinux Support 美国国家安全局(NSA)开发的安全增强Linux(SELinux),你还需要进行策略配置(checkpolicy)并且对文件系统进行标记,新的 SELinux,安全系数很高,可以选择(setfiles)
[* ] NSA SELinux boot parameter 添加一个内核引导参数以允许在引导时使用'selinux=0'禁用SELinux或'selinux=1'启用SELinux
[*]NSA SELinux runtime disable 允许在运行时禁用SELinux
[*]NSA SELinux Development Support     SELinux开发支持
[*]NSA SELinux AVC Statistics 搜集存取向量(access vector)缓冲区的统计信息并在                                     /selinux/avc/cache_stats中显示出来.这些信息可以用avcstat之类的工具查看
[ 1]NSA SELinux checkreqprot default value    checkreqprot标志的默认值
15.Cryptographic options------> 这是核心支持加密的选项,我们还是不要理它了 ,按默认吧
- - - - - Cryptographic API
提供核心的加密API支持.这里的加密算法被广泛的应用于驱动程序通信协议等机制中.子选项可以全 不选,内核中若有其他部分依赖它,会自动选上
- - - - - HMAC support 为IPSec所必须,可为PPPoE提供压缩支持
<M >Null algorithms NULL加密算法(什么也不做),用于IPsec协议的封装安全载荷模块                                            (ESP)
<M>MD4 digest algorithm 老旧的摘要算法,已经过时
< *>MD5 digest algorithm 主流摘要算法,128位(已被中国山东大学王小云攻破,可以快速                                 找到碰撞)
<M >SHA1 digest algorithm 主流摘要算法,160位(已被中国山东大学王小云攻破,可以快速 M                                   找到碰撞),速度与MD5相当
< M>SHA256 digest algorithm 更好的摘要算法,256位,速度较SHA1稍慢
< M>SHA384 and SHA512 digest algorithms 更好的摘要算法,384/512位,速度大约只有                                     SHA1的40-50%
<   M >Whirlpool digest algorithms 最安全的摘要算法,512位,已被列入ISO标准,目前最新版                                     本为3.0(2003年发布)
< M >Tiger digest algorithms   号称最快的摘要算法,192位,专门为64位CPU进行了优化
< M>DES and Triple DES EDE cipher algorithms 老迈的(DES)和尚佳的(Triple DES)对                                 称加密算法
<M >Blowfish cipher algorithm   又老又慢的对称加密算法
< M>Twofish cipher algorithm     很强的对称加密算法,使用较广
< M>Serpent cipher algorithm     很强的对称加密算法
< M>AES cipher algorithms 最佳的对称加密算法(Rijndael),128/192/256位,强度最高,快速且节省内存
< M>    AES cipher algorithms (i586) 最佳的对称加密算法(Rijndael),128/192/256位,强度最                                 高,快速且节省内存(针对i586的版本)
<M >    CAST5 (CAST-128) cipher algorithm 对称加密算法
< M>    CAST6 (CAST-256) cipher algorithm 对称加密算法
<M >    TEA and XTEA cipher algorithms 较弱的对称加密算法
< M>    ARC4 cipher algorithm 脆弱的流对称加密算法
< M>    Khazad cipher algorithm 对称加密算法
<M >    Deflate compression algorith 压缩算法,当在IPSec中使用IPCOMP协议时才需要
< M>       Michael MIC keyed digest algorithm 摘要算法,仅仅用于校验iSCSI设备传输的数                                        据, 因为算法本身比较脆弱
< M>    CRC32c CRC algorithm 摘要算法,可用于校验iSCSI设备传输的数据
< M>    Testing module 快速且丑陋的测试模块
Hardware crypto devices----> 仅有VIA C7系列处理器支持硬件加密(VIA PadLock高级加密引擎)
Library routines---------> 库子程序 仅有那些不包含在内核原码中的第三方内核模块才可能需要,可以全不选,内核中若有其他部分依赖它,会自动选上
< > CRC-CCITT fuctions 传送8-bit字符,欧洲标准
<   > CRC16 functions 传送8-bit字符,美国标准
<   > CRC32 functions 用于点对点的同步数据传输中,传输网络数据包所必须的
< > CRC32c (Castagnoli, et al) Cyclic Redundancy-Check 用于点对点的同步数据传输中,比如iSCSI设备
Load an Alternate Configuration File
读入一个外部配置文件
Save Configuration to an Alternate File
将配置保存到一个外部文件

标签:

评论已关闭!