inux 2.6.15.6内核配置(unfinished)
注意: 不同的内核版本配置选项(或组织)可能不同, 但原理都是一样的!
另外, 关于compile in, compile as module的选择: 根文件系统, 根文件系统所处的设备, PS/2鼠标驱动不能编译为模块!
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers (y)
; 选择尚未完全测试的代码(alpha-test态),事实上它是安全的,建议选择.
[*] Select only drivers expected to compile cleanly (y)
; 隐藏可能存在问题的驱动,建议选择,如果没找到对应设备的驱动,将它取消试试.
General setup --->
() Local version - append to kernel release (enter,输入字符窜)
; 从2.6.8的版本起,可以在内核版本号后面添加个性化字符窜.
[ ] Automatically append version information to the version string (NEW) (n)
; 这个没看懂,先不选上.
[*] Support for paging of anonymous memory (swap) (y)
; 如果使用了swap分区提供虚拟内存,一定要选上它.
[*] System V IPC (y)
; System V 的进程间通信, 选上.
[*] POSIX Message Queues (y)
; POSIX消息队列, 选上.
[*] BSD Process Accounting (y)
; 如果选上,user process可以通过系统调用使内核在它退出时将相关信息写入某个文件(如进程创建时间,拥有者,命令,内存使用量...)
选上它,可以在应用程序中利用这些信息.
[*] BSD Process Accounting version 3 file format (y)
; 将前面所述的进程信息记录到v3格式的文件中, 选上它
[*] Sysctl support (y)
; 提供动态更改内核参数与变量的接口, 而不需要重新启动系统. 打开这个选项将会增加内核的体积至少8KB。
如果你的内核仅用制作安装与恢复系统系统盘那么可以不选, 以减少对内存的占用.
[ ] Auditing support (n)
; 允许其他内核子系统的内核审查,不知道什么鸟意思,不选上.
[*] Kernel Userspace Events (y)
; 开启内核-用户空间事件层,它是比socket简单的kernel-user通信机制. 这样应用程序就可以通过监听不用轮询系统设备或文件
[ ] Kernel .config support (n)
; 将.config文件编译到内核中, 以显示运行中的内核使用哪个选项.不要选择.
() Initramfs source file(s) (n)
; 好像是RAM FS初始化的吧,不知道什么鸟东西,不选!
[ ] Optimize for size (Look out for broken compilers!) (n)
; 用gcc编译内核时,优化选项是 -O2,选择它将改为-Os, 生成比较小的内核.(老版本的gcc可能因此产生错误代码)
[ ] Configure standard kernel features (for small systems) ---> (n)
; 针对小系统 (embedded)裁减内核, 桌面系统不用选择.
Loadable module support --->
[*] Enable loadable module support (y)
; 使内核支持模块,当然要选择! (使用modprobe, lsmod, modinfo, insmod, rmmod工具...)
[*] Module unloading (y)
; 卸载模块,选择!(有些模块一旦加载就不能卸载, 不管是否选择了这个选项)
[*] Forced module unloading (y)
; 强制卸载内核, 即便内核认为该行为不安全的时候.( rmmod -f 强制卸载,不等停止使用模块)
[ ] Module versioning support (EXPERIMENTAL) (n)
; 一般地,我们编译的模块是用于当前运行的内核, 选择该选项可以针对其他的内核编译模块. 先不选择.
#p#[ ] Source checksum for all modules (n)
; 查看模块中是哪些代码的,不选
[*] Automatic kernel module loading (y)
; 内核在任务中要使用一些被编译为模块的驱动或特性时, 先使用modprobe命令来加载它
该选项自动调用modprobe加载需要的模块.当然选择!
Block layer --->
[ ] Support for Large Block Devices (n)
; 如果有超过2T的块设备,则选择它以支持大容量块设备
[ ] IO Schedulers --->
<*> Anticipatory I/O scheduler (y)
<*> Deadline I/O scheduler (y)
<*> CFQ I/O scheduler (y)
Default I/O scheduler (Anticipatory) --->
(X) Anticipatory
上述3中调度方式都选择,默认的调度方式选为anticipatory (按空格选择)
Processor type and features --->
Subarchitecture Type (PC-compatible) --->
; 用的PC,选PC-compatible
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
; 选择CPU类型, 可通过 cat /proc/cpuinfo查看
[ ] Generic x86 support (n)
; 如果没有列出你所使用的CPU类型,而你的CPU又是X86的,选上它,否则不选.它增加了通用性却降低了特定CPU的性能.
[*] HPET Timer Support (y)
; 这也是一个新的特性,HPET是intel制定的新的用以代替传统的8254(PIT)中断定时器与RTC的定时器,全称叫作高精度事件定时器。如果你有一台较新的机器就选它吧,一般它是一个安全的选项, 即使你的硬件不支持HPET也不会造成问题,因为它会自动用8254替换。
[ ] Symmetric multi-processing support (n)
; 只有一个CPU,SMP不用选择
Preemption Model (Preemptible Kernel (Low-Latency Desktop)) --->
(X) Preemptible Kernel (Low-Latency Desktop)
; 2.6内核的特点:抢占式内核.选择可抢占式内核以提升桌面系统的交互性能或实时性.
[*] Preempt The Big Kernel Lock (NEW) (y)
; 抢占大内核锁?不清楚,不过选择了可加强桌面系统性能.
[*] Local APIC support on uniprocessors (y)
; 单CPU的本地APIC (advanced programmable interrupt controller)支持,它内嵌在cpu中支持cpu自身产生的中断.建议选择,就算cpu不支持APIC,也没有影响.
[*] IO-APIC support on uniprocessors (y)
; 同上,支持I/O高级可编程中断控制器.
[*] Machine Check Exception (y)
; 如果系统出现问题, 内核采取一定的措施,比如打印警告信息或挂起系统.
cat /proc/cpuinfo | grep mce 若CPU flags中有mce,
这个功能是需要硬件支持的。你可以查看/proc/cpuinfo看看是否有mce标志,则说明CPU支持该选项.
启动时加nomce参数可关闭它.
< > Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 (n)
; 启动一个5秒的定时器,跟踪非致命错误并更正,记录它.如果不是特定的CPU,不要选择.(我的本本是Pentium M,不选择)
[ ] check for P4 thermal throttling interrupt.
; P4的CPU温度过高时会在屏幕上显示出相关的信息,只适用于Pentium 4
< > Toshiba Laptop support (n)
< > Dell laptop support (n)
; 上述两项都针对东芝和戴尔IInspire 8000笔记本,不选.
< > Enable X86 board specific fixups for reboot (n)
; 修正主板/芯片组以正确重启或工作,目前只针对 GX1, CS5530A, TROM2.1
lspci -v | grep CX1 ...若系统不支持,则不用选择. (?我说错了好像)
< > /dev/cpu/microcode - Intel IA32 CPU microcode support (n)
; 更新intell IA32 cpu的微码(内核是不自带的,需要另外下载)
< > /dev/cpu/*/msr - Model-specific register support (n)
; 让privileged进程访问X86的MSRs(model-specific registers),一般用于intel的Embedded cpu.
< > /dev/cpu/*/cpuid - CPU information support (n)
; 在/dev/cpu中建立一系列的设备文件, 以使过程访问指定的CPU.
Firmware Drivers --->
< > BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL) (n)
; 可以打开实模式下BIOS中的增强磁盘设备服务,以决定从哪个磁盘上启动.一般的BIOS不支持.
< > BIOS update support for DELL systems via sysfs (n)
; 戴尔的BIOS更新系统,需要一些应用软件的支持.
< > Dell Systems Management Base Driver (n)
; 为上述的DELL BIOS更新系统提供sysfs借口,先不设,以后再研究.我的本本是Dell D600.
High Memory Support (off) --->
; 如果有大于4G的内存,可选择.我内存只有512M.
Memory model (Flat Memory) --->
; 选择内存模式, flat memory记忆被盗,查查资料了再说,先选上.
[ ] Math emulation (n)
; 在你的CPU上如果没有数学协处理器的话,打开这个选项可以让内核模拟一个.以提升浮点计算能力,不过慢的可以.如果你使用的不是古董CPU的话(486SX以前的), 这一项你永远都不需要。
[*] MTRR (Memory Type Range Register) support (y)
; 在Intel p6家族的处理器中(Ppro、 PII和更新的)有一个内存类型范围寄存器,可用来控制处理器访问的内存范围. 打开它一般可以提升显卡的显示性能(2.5倍).
[ ] Boot from EFI support (EXPERIMENTAL) (n)
; EFI规范基本上是一个让PC可以在开机前(preboot)进行扫毒及诊断的执行环境.英特尔已经利用EFI建立一个可以取代BIOS的开机前软件框架. 这个框架名为“EFI平台创新开发框架”,其工程代码为Tiano,这个框架让电脑厂商可以撰写开机前软件的模组,这种模组很像Windows的驱动程序。它需要ELILO bootloader, grub或lilo不支持EFI.
[ ] Use register arguments (EXPERIMENTAL) (n)
; 使用寄存器参数,(编写系统调用的时候可能有用,参考
[*] Enable seccomp to safely compute untrusted bytecode (y)
; 使用seccomp将计算程序孤立到它们各自的地址空间.如果不是用于嵌入式系统, 还是在这里选yes
Timer frequency (250 HZ) --->
#p#; 时钟频率,选为250赫兹.
(0x100000) Physical address where the kernel is loaded
; 设定内核加载的物理地址.默认为0x100000.不要更改!
[ ] kexec system call (EXPERIMENTAL) (n)
; kexec能够关闭当前内核,运行另外一个内核.
Power management options (ACPI, APM) --->
[*] Legacy Power Management API (y)
; 为pm_regiter()提供支持.
[ ] Power Management Debug Support (n)
; 支持电源管理的调试
[*] Software Suspend (EXPERIMENTAL) (y)
; 支持系统suspend(休眠),打开这项功能后, 可用swsusp或者shutdown -z
( ) Default resume partition
与上述suspend选项配合,来指定保存镜象的分区.如果上面那个有开启就要选择用来做suspend to disk用的partition
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support (y)
; 使用ACPI来管理电源.想让它起作用,还要在系统中安装acpid守护程序。
[*] Sleep States (y)
; 选择这个选项可以使你的系统具有挂起的功能,也就是说你可以暂时中断你的工作,让你的系统处与一种低电能消耗的状态(sleep state),你此时的系统状态会保存在内存或者磁盘上(取决于挂起的深度),当你需要时再恢复到正常的工作状态。但由于各种系统之间的差别,目前这项功能并不完善。只有很少的设备可以完美的支持这个特性,所以不建议一般用户使用.
; 显示本本是使用AC交流电还是DC直流电.编译成模块!
; 同上,读取/proc/acpi/battery目录中的电池信息,反馈给用户.
; 按下电源键时,守护进程读取/proc/acpi/event,并执行用户在这些事件上定义的动作,比如关机.
< > Video (n)
; 对主板集成显卡执行一些操作,比如定义video POST device, 获得EDID信息, 设置视频输出.独立显卡就不用设了.
< > Generic Hotkey (EXPERIMENTAL) (n)
; 通用热键驱动,不需要装.
; 对ACPI风扇设备的控制支持,通过用户程序控制风扇(打开,关闭,读取运行状态等).
; 处理器在空闲时节省电能.
; CPU温度过高时,ACPI调整工作状态以保护CPU,强烈推荐!(大部分的本本都支持)
< > ASUS/Medion Laptop Extras (n)
< > IBM ThinkPad Laptop Extras (n)
< > Toshiba Laptop Extras (n)
上述是对华硕,IBM,东芝笔记本的扩展支持.为什么木有DELL的呢!
(0) Disable ACPI for systems before Jan 1st this year (默认为0)
; 什么鸟东西,ACPI也存在千年虫问题?按默认的
[ ] Debug Statements (n)
; ACPI驱动的调试语句,会增加50K的内核大小,不要.
[ ] Power Management Timer Support (n)
; 支持电源管理定时器.如果在内核log中看到"Losing too many ticks!",或使用笔记本却不支持HPET时选择.
< > ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL) (n)
; 我靠,这强!支持CPU,内存的热插拔.不过我怕触电,不选.
APM (Advanced Power Management) BIOS Support --->
; 高级电源管理BIOS支持,一般是笔记本用(或使用电池的系统,不知道用UPS的算不算,应该不算).台式机不用选择.
[ ] Ignore USER SUSPEND (n)
; 不选择,否则会忽略用户的挂机请求.如果你不幸用了NEC的笔记本,必须选Y,因为有BUG.(抵制日货!)
[ ] Enable PM at boot time (n)
; 开机时允许PM,一般不用选择(可能在启动时宕机)
[ ] Make CPU Idle calls when idle (n)
; CPU空闲时调用CPU idle进程.还是不选吧...可能在启动或空闲时宕机.
[ ] Enable console blanking using APM (n)
; 当Linux虚拟控制台关闭显示(黑屏)时,关闭LCD背光.都黑屏了,还关背光搞莫事撒.
[ ] RTC stores time in GMT (n)
; RTC: Real Time Clock. GMT: Greenwich Mean Time
推荐将GMT时间存储到RTC中以,但如果装了别的不能够识别GMT的系统,不要选择.(比如windows)
[ ] Allow interrupts during APM BIOS calls (n)
; 一般是不选择的,但如果挂起系统时出现了宕机,可将它选择试试. 调用BIOS是开中断是不良少年的行为!
[ ] Use real mode APM BIOS call to power off (n)
; 针对某些带bug的BIOS的补救措施:如果系统不能自己断电,选上它.
CPU Frequency scaling --->
[*] CPU Frequency scaling
; 动态调节CPU频率以节电.有人提到频率降低,影响了处理速度,导致deadline问题.留意一下.
[ ] Enable CPUfreq debugging
; 我是个懒人,所有调试的都不打开
; 通过sysfs文件系统输出CPU频率信息.
[*] CPU frequency translation statistics details
; 显示上述的详细的CPU频率信息.
Default CPUFreq governor (userspace) --->
; 默认选择动态调整CPU频率.
; performance将CPU频率设定在支持的最高频率,而不动态调节.
; 将CPU频率设置为最低
; 快速动态调整CPU频率, Pentuim M的CPU可以使用
; 与ondemand不同,平滑地调整CPU频率,适合于用电池工作时.
--- CPUFreq processor drivers
< > ACPI Processor P-States driver
什么鸟玩意,不选
< > AMD Mobile K6-2/K6-3 PowerNow!
< > AMD Mobile Athlon/Duron PowerNow!
< > AMD Opteron/Athlon64 PowerNow!
AMD的移动处理器省电技术
< > Cyrix MediaGX/NatSemi Geode Suspend Modulation
; intel的SpeedStep技术.可以让处理器在2种工作模式之间随意地切换,即通电状态时的最高性能模式(Maximum Performance Mode)和电池状态时的电池优化模式Battery Optimized Mode
#p#[*] Use ACPI tables to decode valid frequency/voltage pairs
[ ] Built-in tables for Banias CPUs
; Banias CPU是什么鸟东西?如果选择了Speedstep,就选上Use ACPI tables.
< > Intel Speedstep on ICH-M chipsets (ioport interface)
< > Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
< > Intel Pentium 4 clock modulation
< > nVidia nForce2 FSB changing
; 上述选项根据具体CPU,显卡类型选择.
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
; I/O总线选项,由Interl在1992年初制订. 现在一般的总线类型都是PCI. 使用PCI总线的系统于1993年中期出现,从此成为主流.
--- PCI support
PCI access mode (Any) --->
; PCI访问模式,选Any
[*] PCI Express support
; 自动打开PCI快速总线支持,选上.
< > PCI Express Hotplug driver
PCI快速热拔插驱动,不选择.
[ ] Use polling mechanism for hot-plug events (for testing purpose)
; 对热拔插时间使用轮询,用于早期的实验系统,不选
[ ] Message Signaled Interrupts (MSI and MSI-X)
; 使用MSI(Message Signaled Interrupts),当中断产生时,使用inbound memory写PCI总线,而不断言设备的IRQ引脚.不选.
[ ] Legacy /proc/pci interface
; 使用/proc/pci提供系统中的PCI设备信息.实际上,使用lspci(8)能提供相同甚至更多的信息.发行版都装有lspci包.可不选.
[ ] PCI Debugging
; PCI调试,不选.
[*] ISA support
; ISA总线支持, 运行lspci | grep ISA, 若有, 则选上.
[ ] MCA support
; MCA(microChannel Archtecture)总线是IBM为解决快速微处理器和相对慢的ISA总线之间的差异而开发的一种总线结构,并被用于IBM的PS/2系统, 目前MCA总线主要用于IBM PS/2 计算机和一些笔记本中. 不选.
< > NatSemi SCx200 support
; 支持National Semiconductor的SCx200处理器的,不选.
PCCARD (PCMCIA/CardBus) support --->
; 这些选项都是本本用的,台式机不选
; 笔记本选为module
[ ] Enable PCCARD debugging
; PCMCIA的调试,不选.
; 16位PCMCIA支持,还是编译为模块吧, lspci -v | grep 16发现还是有16位的设备,不知道什么意思,还是谨慎为好.
[*] Load CIS updates from userspace (EXPERIMENTAL)
; 有的PCMCIA卡需要这个功能,选上.
[*] PCMCIA control ioctl (obsolete)
; 提供PCMCIA的ioctl接口.不懂什么意思,帮助文档建议选上.
[*] 32-bit CardBus support
; 早先的PCMCIA卡是16位的,这里允许使用32位的CardBus, 新的PC-card实际上是CarBus卡,选上.
--- PC-card bridges
; 对于什么鸟桥的支持?不懂,选为模块.
PCI Hotplug Support --->
; 支持PCI的热拔插,怕触电,都不选
Executable file formats --->
[*] Kernel support for ELF binaries
; 支持ELF可执行文件格式,一定要选上!
; .out的执行文件是比较古老的可执行码,用在比较早期的UNIX系统上. Linux最初也是使用这种码来执行程序,一直到ELF格式的可执行码出来后,有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码.将来势必完全取代a.out格式的可执行码.目前还有一些.out格式的代码.选为模块.
; 支援别的种类的binary执行档(如:Java、Python ... etc).编译为模块.
Networking --->
--- Networking support
Networking options --->
; 类似于tcpdump的应用程序会绕过IP层直接访问网络设备(原始socket),选为模块.
[*] Packet socket: mmapped IO
; mmapped IO让传输加速,要开启MapleBBS内的MMIO也需要它,选上.
; syslogd、x-windows等都是用socket来传输,即便电脑没网络,选为模块.
; 支持IPsec用户设置接口,选为模块.
; 于IPsec有关,编译为模块.
[*] TCP/IP networking
; 支持TCP/IP,当然要选上.
[ ] IP: multicasting
; 支持IP多播, 一般用于MBONE(因特网上的音频、视频多播).
[ ] IP: advanced router
; 用于路由器的选项,不选.
[ ] IP: kernel level autoconfiguration
; 内核启动时自动配置IP地址,之用于无盘系统,不选.
< > IP: tunneling
; IP隧道,在多个网络中移动不需改变IP地址,不用选.
< > IP: GRE tunnels over IP
; GRE(Generic Routing Encapulation)隧道技术,允许在现有的IPv4架构上封包IPv6.不选吧.
[ ] IP: multicast routing
; 不做服务器,不用选择.
[ ] IP: ARP daemon support (EXPERIMENTAL)
; 将ARP缓存在内核中,不选.
[*] IP: TCP syncookie support (disabled per default)
; 防止SYN flooding攻击.如果选择,SYN cookies默认不会开启.
; 以上3个都是IPsec需要的,编为模块.
; 支持通用IP隧道传输.编为模块.
<*> INET: socket monitoring interface
; 支持socket监听接口,选上.
[ ] TCP: advanced congestion control
; TCP高级拥塞控制,可不选择.
IP: Virtual Server Configuration --->
Virtual Server Configuration中的选项设定都用M,按默认负载均衡集群是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务响应;而LVS就是实现这一功能的技术,它通过使内核支持ipvs来实现LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能.
< > IP virtual server support (EXPERIMENTAL)
; 集群或多台服务器用的,不选择,以后好好研究...虚拟服务器...
; 支持IPv6,编译为模块. IPv6有空再看,现按照帮助说明的来,该选的选,该编为模块的编为模块.
...
后面的再慢慢看吧...按menuconfig中的帮助文档来,该不选的绝不选.
[ ] Amateur Radio support --->
; 无线电设备支持,不选.
< > IrDA (infrared) subsystem support --->
; 红外设备支持,不选.
< > Bluetooth subsystem support --->
; 蓝牙设备支持,不选.
; 802.11网络栈支持,编译为模块.
Device Drivers --->
Generic Driver Options --->
[*] Select only drivers that don't need compile-time external firmware
; 只选择不需要compile-time 外部firmware,没搞懂,选上.
[*] Prevent firmware from being built
; 禁止编译firmware, firmware一般与硬件一起绑定,只在更新时才需要重新编译,选上.
; 热插拔固件加载,没懂,编为模块.
[ ] Driver Core verbose debug messages
; 不选.
Connector - unified userspace <-> kernelspace linker --->
< > Connector - unified userspace <-> kernelspace linker
; 支持基于netlink socket协议的用户空间与内核空间的连接.
Memory Technology Devices (MTD) --->
< > Memory Technology Device (MTD) support
; 支持MTD设备(flash, ram等芯片).一般用于嵌入式系统,不选
Parallel port support --->
< > Parallel port support
; 并口支持.没有打印机,先不选.(选前两项,以防用到并口,比如LDD3中的例子)
Plug and Play support --->
[*] Plug and Play support
; 支持既插既用设备, 选上.并选上该选项下面的一些协议支持, /proc接口不选.
Block devices --->
< > Normal floppy disk support
; 软盘,没人用了, 不选.
< > XT hard disk support
; 石器时代的8位硬盘,不选.
< > Compaq SMART2 support
< > Compaq Smart Array 5xxx support
; compaq用的,不选.
; 大部分的人这一个选项都选N,因为没有必要。但是如果你要mount iso文件的话,你得选上Y。这个选项的意思是说,可以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。不过,如果您想做到这点的话,您必须有最新的 mount程序,版本是在2.5X版以上的。而且如果您希望对这个文件系统加上保护,则您必须有des.1.tar.gz 这个程序。注意:此处与网络无关。建议编译成模块
< > Cryptoloop Support
; 不用选
; 使本机成为网络块设备的客户机.将主机的分区挂载到本地?...先编译成模块看.
< > Promise SATA SX8 support
; SATA接口的16位I/O CPU支持,不用选.
< > Low Performance USB Block driver
; 不选,否则可能与USB存储驱动冲突.
< > RAM disk support
; 把内存当作块设备使用,一般用于在最初安装Linux时从软盘向RAM中复制最小根文件系统.不选.
; 支持刻录机的packet writing. ? 编为模块.
(8) Free buffers for data gathering
; 设置刻录时同步的packet数.多的packet能增加刻录速度,但耗费更多内存.(一个约64K),默认为8.
[ ] Enable write caching
; 写缓冲.不要选.如果刻录盘是坏的,系统不会处理延迟的写错误.
; ATA什么意思?编为模块吧
ATA/ATAPI/MFM/RLL support --->
; 支持ATA/ IDE/ATAPI设备,除非你的系统是纯SCSI的,否则一定要选上!
; 如果有多个IDE设备,一定选上
[ ] Support for SATA (deprecated; conflicts with libata SATA driver)
[ ] Use old disk-only dri
【编辑推荐】