Y--将该功能编译进内核 N--不将该功能编译进内核 M--将该功能编译成能够在须要时动态插入到内核中的模块
若是你是使用的是 make xconfig,那使用鼠标就能够选择对应的选项。这里使用的是 make menuconfig,因此须要使用空格键进行选取。在每个选项前都有一个括号, 有的是中括号有的是尖括号,还有圆括号。用空格键选择时能够发现,中括号里要么是空,要么是"*"; 而尖括号里能够是空,"*"表示编译到内核里;"M"表示编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。linux
General setupios
1.一、prompt for development and/or incomplete code/drivers
该选项是对那些还在测试阶段的代码,驱动模块等的支持。通常应该选这个选项,除非你只是想使用 LINUX 中已经彻底稳定的东西。但这样有时对系统性能影响挺大。 git
1.二、Cross-compiler tool prefix
交叉编译工具前缀,例如:Cross-compiler tool prefix值为: (arm-linux-)
1.三、Local version - append to kernel release
内核显示的版本信息,填入 64字符之内的字符串,你在这里填上的字符口串能够用uname -a命令看到。
1.四、 Automatically append version information to the version string
自动在版本字符串后面添加版本信息,编译时须要有perl以及git仓库支持
1.五、Kernel compression mode (Gzip) --->
有四个选项,这个选项是说内核镜像要用的压缩模式,回车一下,能够看到gzip,bzip2,lzma,lxo,通常能够按默认的gzip,若是要用bzip2,lzma,lxo要先装上支持
1.六、Support for paging of anonymous memory (swap)
使用交换分区或交换文件来作为虚拟内存,必定要选上。
1.七、System V IPC
表示系统的进程间通讯Inter Process Communication,它用于处理器在程序之间同步和交换信息,若是不选这项,不少程序运行不起来,必选。
1.八、POSIX Message Queues
POSIX标准的消息队列,它一样是一种IPC。建议你最好将它选上
1.九、BSD Process Accounting
用户进程访问内核时将进程信息写入文件中。一般主要包括进程的建立时间/建立者/内存占用等信息。建议最好选上。
BSD Process Accounting version 3 file format
使用新的第三版文件格式,能够包含每一个进程的PID和其父进程的PID,可是不兼容老版本的文件格式。
1.十一、Export task/process statistics through netlink (EXPERIMENTAL)
经过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不一样之处在于这些统计信息在整个任务/进程生存期都是可用的
Enable per-task delay accounting (EXPERIMENTAL)
在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间
Enable extended accounting over taskstats (EXPERIMENTAL)
在统计信息中包含扩展进程所花费的时间
1.十二、Auditing support
审记支持,用于和内核的某些子模块同时工做,例如Security Enhanced Linux。只有选择此项及它的子项,才能调用有关审记的系统调用。
1.1三、Enable system-call auditing support
支持对系统调用的审计
1.1四、IRQ subsystem --->
中断子系统
Support sparse irq numbering
<=== 支持稀有的中断编号,关闭
1.1五、RCU Subsystem --->
非对称读写锁系统 是一种高性能的kernel 锁机制,适用于读多写少环境
RCU Implementation (Tree-based hierarchical RCU) --->
RCU 实现机制 Tree(X) Tree-based hierarchical RCU 基本数按等级划分
Enable tracing for RCU
激活跟踪
(32) Tree-based hierarchical RCU fanout value
基本数按等级划分分列值
Disable tree-based hierarchical RCU auto-balancing
1.1六、< > Kernel .config support
这个选项容许.config文件(即编译LINUX时的配置文件)保存在内核当中
1.1七、(17) Kernel log buffer size (16 => 64KB, 17 => 128KB)
1.1八、[ ] Control Group support --->
cgroups 支持, 文档资料 ,cgroups 主要做用是给进程分组,并能够动态调控进程组的CPU 占用率。好比A 进程分到apple 组,给予20%CPU 占用率,E 进程分easy 组,给予50%CPU 占用率,最高100% 。我目前没有此类应用场景,用到时会选择将其编译进去。
CPU bandwidth provisioning for FAIR_GROUP_SCHED
此选项容许用户定义的CPU带宽速率(限制)在公平的组调度运行的任务。组没有限制设置被认为是无约束和运行没有限制。
Group scheduling for SCHED_RR/FIFO
此功能可让您显式地分配真实的CPU带宽任务组。
1.1九、-*- Namespaces support --->
命名空间支持,容许服务器为不一样的用户信息提供不 同的用户名空间服务
[*] UTS namespace
通用终端系统的命名空间。它容许容器,好比Vservers利用UTS命名空间来为不一样的服务器提供不一样的UTS。若是不清楚,选N。
[*] IPC namespace
IPC命名空间,不肯定能够不选
[*] User namespace (EXPERIMENTAL)
User命名空间,不肯定能够不选
[*] PID Namespaces
PID命名空间,不肯定能够不选
[*] Network namespace
1.20、Automatic process group scheduling 自动进程组调度
1.2一、[ ] enable deprecated sysfs features to support old userspace tools
1.2二、-*- Kernel->user space relay support (formerly relayfs)
在某些文件系统上( 好比debugfs ) 提供从内核空间向用户空间传递大量数据的接口,我目前没有此类应用场景
1.2三、 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
用于在真正内核装载前,作一些操做(俗称两阶段启动),好比加载module ,mount 一些非root 分区,提供灾难恢复shell 环境等, 资料 ,我是指望直接从kernel image 直接启动,因此没选它
1.2四、Initramfs source file(s)
initrd已经被initramfs取代,若是你不明白这是什么意思,请保持空白
1.2五、Optimize for size
这个选项将在GCC 命令后用 “-Os ” 代替 “-O2 ″参数,这样能够获得更小的内核。不必选。选上了有时会产生错误的二进制代码。
1.2六、Enable full-sized data structures for core:在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减少以节约内存,可是将会下降性能。
1.2七、Enable futex support:快速用户空间互斥体可使线程串行化以免竞态条件,也提升了响应速度.禁用它将致使内核不能正确的运行基于glibc的程序。
1.2八、Enable eventpoll support:支持事件轮循的系统调用。
1.2九、Use full shmem filesystem:除非你在不多的内存且不使用交换内存时,才不要选择这项。后面的这四项都是在编译时内存中的对齐方式,0 表示
编译器的默认方式。使用内存对齐能提升程序的运行速度,可是会增长程序对内存的使用量。内核也是一组程序呀。
Enable VM event counters for /proc/vmstat:容许在/proc/vmstat中包含虚拟内存事件记数器。
[*] Disable heap randomization
禁用随机heap(heap堆是一个应用层的概念,即堆对CPU是不可见的,它的实现方式有多种,能够由OS实现,也能够由运行库实现,若是你愿意,你也能够在一个栈中来实现一个堆)
1.30、Choose SLAB allocator (SLAB) --->
选择内存分配管理器(强烈推荐使用SLUB)
1.3一、[ ] Configure standard kernel features (for small systems) --->
这个选项可让内核的基本选项和设置无效或者扭曲。这是用于特定环境中的,它容许“非标准”内核。你要是选它,你必定要明白本身在干什么。这是为了编译某 些特殊用途的内核使用的,例如引导盘系统。配置标准的内核特性(为小型系统)
Enable 16-bit UID system calls:容许对UID系统调用进行过期的16-bit包装。
Sysctl syscall support 几乎使用不到这一选项,不选它能够轻微使内核变小
Include all symbols in kallsyms:在kallsyms中包含内核知道的全部符号,内核将会增大300K。
Enable support for printk:容许内核向终端打印字符信息,在须要诊断内核为何不能运行时选择。
BUG() support:显示故障和失败条件(BUG 和WARN),禁用它将可能致使隐含的错误被忽略。
Enable ELF core dumps:内存转储支持,能够帮助调试ELF格式的程序。
1.3二、[*] Profiling support
不选剖面支持,用一个工具来扫描和提供计算机的剖面图。支持系统评测(对于大多数用户来讲并非必须的)
1.3三、OProfile system profiling
OProfile评测和性能监控工具
1.3五、[ ] OProfile multiplexing support (EXPERIMENTAL)
1.3四、Kprobes
调试内核除非开发人员,不然不选
1.3五、Optimize trace point call sites
1.3六、GCOV-based kernel profiling
[ ] Enable gcov-based kernel profiling 不选shell
Enable loadable module support数据库
2.1 Forced module loading
容许强制加载模块
2.2 Module unloading
容许卸载已经加载的模块
2.3 Forced module unloading
容许强制卸载正在使用中的模块(比较危险)这个选项容许你强行卸除模块,即便内核认为这不安全。内核将会当即移除模块,而无论是否有人在使用它(用 rmmod -f 命令)。这主要是针对开发者和冲动的用户提供的功能。若是不清楚,选N。
2.4 Module versioning support
有时候,你须要编译模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不一样的内核在使用同一模块时区别于它原有的模块。这有时可能会有点用。若是不清楚,选N。容许使用其余内核版本的模块(可能会出问题)
2.5 Source checksum for all modules
为全部的模块校验源码,若是你不是本身编写内核模块就不须要它这个功能是为了防止你在编译模块时不当心更改了内核模块的源代码但忘记更改版本号而形成版本冲突。若是不清楚,选N。api
Enable the block layer安全
块设备支持,使用硬盘/USB/SCSI设备者必选这选项使得块设备能够从内核移除。若是不选,那么 blockdev 文件将不可用,一些文件系统好比 ext3 将不可用。这个选项会禁止 SCSI 字符设备和 USB 储存设备,若是它们使用不一样的块设备。选Y,除非你知道你不须要挂载硬盘和其余相似的设备。不过此项无可选项
3.1 Support for large (2TB+) block devices and files
仅在使用大于2TB的块设备时须要
3.2 Block layer SG support v4
通用scsi块设备第4版支持
3.3 Block layer data integrity support
块设备数据完整性支持
3.4 Block layer bio throttling support
可用于限制设备的IO速度
3.5 Partition Types
Advanced partition selection
若是你想要在linux上使用一个在其余的介质上运行着操做系统的硬盘时,选择Y,若是你不肯定时能够选N
3.6 IO Schedulers
IO调度器I/O是输入输出带宽控制,主要针对硬盘,是核心的必须的东西。这里提供了三个IO调度器。
Deadline I/O scheduler
使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(好比数据库)Deadline I/O调度器简单而又紧密,在性能上和抢先式调度器不相上下,在一些数据调入时工做得更好。至于在单进程I/O磁盘调度上,它的工做方式几乎和抢先式调度 器相同,所以也是一个好的选择。
CFQ I/O scheduler
使用QoS策略为全部任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,能够认为是上述两种调度器的折中.适用于有大量进程的多用户系统CFQ调度器尝试为全部进程提供相同的带宽。它将提供平等的工做环境,对于桌面系统很合适。
Default I/O scheduler (CFQ)
默认IO调度器我这样理解上面三个IO调度器:
抢先式是传统的,它的原理是一有响应,就优先考虑调度。若是你的硬盘此时在运行一项工做,它也会暂停下来先响应用户。 期限式则是:全部的工做都有最终期限,在这以前必须完成。当用户有响应时,它会根据本身的工做可否完成,来决定是否响应用户。 CFQ则是平均分配资源,无论你的响应多急,也无论它的工做量是多少,它都是平均分配,一视同仁的。
( *) Deadline
( ) CFQ
( ) No-op服务器
Processor type and features (处理器类型及特色)cookie
4.1 DMA memory allocation support
该选项容许小于32位地址的设备使用前16MB的地址空间,若是不缺定的话,选Y
4.2 Symmetric multi-processing support
对称多处理器支持,若是你有多个CPU或者使用的是多核CPU就选上.此时"Enhanced Real Time Clock Support"选项必须开启,"Advanced Power Management"选项必须关闭若是你选N,内核将会在单个或者多个CPU的机器上运行,可是只会使用一个CPU。若是你选Y,内核能够在不少(但不 是全部)单CPU的机器上运行,在这样的机器,你选N会使内核运行得更快。 注意若是你选Y,而后在Processor family选项中选择“586〃 or “Pentium” ,内核将不能运行在486构架的机器上。一样的,多CPU的运行于PPro构架上的内核也没法在 Pentium 系列的板上运行。
4.3 Enable MPS table
MPS多处理器规范,不选
4.4 Support for big SMP systems with more than 8 CPUs
默认状况下为不选
4.5 Support for extended (non-PC) x86 platforms
若是选的话,你将能够选择支持以下32位X86的平台。
AMD Elan,NUMAQ (IBM/Sequent),RDC R-321x SoC,SGI 320/540 (Visual Workstation),STA2X11-based (e.g. Northville),Summit/EXA (IBM x440),Unisys ES7000 IA32 series
Moorestown MID devices若是你有这样的系统,或者你想要构建一个这样的通用的分布式,选择Y,不然选择N
4.6 intel MID platform support
Medfield MID platform
4.7 RDC R-321x SoC
嵌入式相关,不选
4.8 Support non-standard 32-bit SMP architectures
非标准的32位SMP结构支持,不选
4.9 Eurobraille/Iris poweroff module
来自urobraille的iris机器不支持APM和ACPI来适时关闭本身,此模块在内核中起到这一做用。这是用于urobraille的iris机子,不肯定的话,不选。
4.10 Single-depth WCHAN output
跟 proc 相关的最好不要关,选Y
4.11 paravirt-ops debugging
4.12 Memtest
这一选项使内核增长一个“memtest”(内核测试)的参数,这将容许设置memtest。若是你不知道如何回答这个问题,选择N
4.13 Processor family (Pentium-Pro)处理器系列,请按照你实际使用的CPU选择这里是处理器的类型。这里的信息主要目的是用来优化。为了让内核可以在全部X86构 架的CPU上运行(虽然不是 最佳速度),在这你能够选386。内核不会运行在比你选的构架还要老的机器上。好比,你选了Pentium构架来优化内核,它将不能在486构架上运行。 若是你不清楚,选386。( ) 386 ( ) 486( ) 586/K5/5x86/6x86/6x86MX ( ) Pentium-Classic( ) Pentium-MMX(系统默认选项) Pentium-Pro ( ) Pentium-II/Celeron(pre-Coppermine)( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon ( ) Pentium M( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon ( ) K6/K6-II/K6-III( ) Athlon/Duron/K7( ) Opteron/Athlon64/Hammer/K8( ) Crusoe( ) Efficeon( ) Winchip-C6( ) Winchip-2/Winchip-2A/Winchip-3( ) GeodeGX1( ) Geode GX/LX( ) CyrixIII/VIA-C3( ) VIA C3-2 (Nehemiah)( ) VIA C7 ( ) Core 2/newer Xeon( ) Intel Atom
4.14 Generic x86 support 这一选项针对x86系列的CPU使用更多的常规优化。若是你在上面一项选的是i38六、i586之类的才选这个通用x86支持,若是你的CPU可以在上 述"Processor family"中找到就别选除了对上面你选择的X86 CPU进行优化,它还对更多类型X86 CPU的进行优化。这将会使内核在其余的X86 CPU上运行得更好。这个选项提供了对X86系列CPU最大的兼容性,用来支持一些少见的x86构架的CPU。若是你的CPU可以在上面的列表中找到,就 里就不用选了。
4.15 PentiumPro memory ordering errata workaround
旧的PentiumPro多处理器系统有勘误能力,可能会致使在少数的状况下,违反x86的排序标准内存操做。启用此选项将尝试解决一些(但不是所有)此类问题,但将以spinlock和内存为代价。
4.16 HPET Timer Support(HPET时钟支持)
容许内核使用HPET。HPET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,能够安全的选上。可是,HEPT只会在支持它的平台和BIOS上运行。若是不支持,8254将会激活。选N,将继续使用8254时钟。
4.17 Enable DMI scanning
选择Y除非你已经证实当进入DMI时不影响你的配置。PNP BIOS代码须要这一项的支持。
4.18 (8) Maximum number of CPUs
支持的最大CPU数,每增长一个内核将增长8K体积
4.19 SMT (Hyperthreading) scheduler support
支持Intel的超线程(HT)技术超线程调度器在某些状况下将会对 Intel Pentium 4 HT系列有较好的支持。若是你不清楚,选N
4.20 Multi-core scheduler support
针对多核CPU进行调度策略优化多核调度机制支持,双核的CPU要选。多核心调度在某些状况下将会对多核的CPU系列有较好的支持。若是你不清楚,选N
4.21 Fine granularity task level IRQ time accounting
若是不肯定的话,选N,默认为不选。
4.22 Preemption Model (Voluntary Kernel Preemption (Desktop)) 内核抢占模式一些优先级很高的程序能够先让一些低优先级的程序执行,即便这些程序是在核心态下执行。从而减小内核潜伏期,提升系统的响应。固然在一些特殊 的点的内核是不可抢先的,好比内核中的调度程序自身在执行时就是不可被抢先的。这个特性能够提升桌面系统、实时系统的性能。
No Forced Preemption (Server)
适合服务器环境的禁止内核抢占 这是传统的LINUX抢先式模型,针对于高吞吐量设计。它一样在不少时候会提供很好的响应,可是也可能会有较长的延迟。若是你是创建服务器或者用于科学运 算,选这项,或者你想要最大化内核的原始运算能力,而不理会调度上的延迟。
(默认选项) Voluntary Kernel Preemption (Desktop)
适合普通桌面环境的自愿内核抢占 这个选项经过向内核添加更多的“清晰抢先点”来减小内核延迟。这些新的抢先点以下降吞吐量的代价,来下降内核的最大延迟,提供更快的应用程序响应。这经过 容许低优先级的进程自动抢先来响应事件,即便进程在内核中进行系统调用。这使得应用程序运行得更“流畅”,即便系统已是高负荷运转。若是你是为桌面系统 编译内核,选这项。
Preemptible Kernel (Low-Latency Desktop)
适合运行实时程序的主动内核抢占 这个选项经过使全部内核代码(非致命部分)编译为“可抢先”来下降内核延迟。这经过容许低优先级进程进行强制抢先来响应事件,即便这些进程正在进行系统调 用或者未达到正常的“抢先点”。这使得应用程序运行得更加“流畅”即便系统已 经是高负荷运转。代价是吞吐量下降,内核运行开销增大。选这项若是你是为桌面或者嵌入式系统编译内核,须要很是低的延迟。 若是你要最快的响应,选第三项。我认为万物是平衡的,低延迟意味着系统运行不稳定,由于过多来响应用户的要求,因此我选第二个。
4.23 Reroute for broken boot IRQs
防止同时收到多个boot IRQ ( 中断 ) 时,系统混乱
4.24 Machine Check / overheating reporting
让CPU 检测到系统故障时通知内核, 以便内核采起相应的措施( 如过热关机等)
Intel MCE features
AMD MCE features
Support for old Pentium 5 / WinChip machine checks
4.25 Machine check injector support
让CPU检测到系统故障时通知内核,以便内核采起相应的措施(如过热关机等)(不明白此项与上一项的区别,原来的配置中是作为模块加入内核的)
?4.26 Enable VM86 support
这一选项用于支持在像DOSEMU同样的程序在x86的处理器上运行16位的legacy代码。也可能像XFree86这样的软件经过BIOS初始化声卡的时候会用到。
4.27 Toshiba Laptop support
东芝笔记本模块支持,不选
4.28 Dell laptop support
Dell笔记本模块支持,不选
4.29 Enable X86 board specific fixups for reboot
修正某些旧x86主板的重起bug,这种主板基本绝种了,我认为能够不选择这一项
4.30 dev/cpu/microcode - microcode support
是否支持Intel IA32架构的CPU。这个选项将让你能够更新Intel IA32系列处理器的微代码,显然你须要到网上去下载最新的代码,LINUX不提供这些代码。固然你还必须在文件系统选项中选择/dev file system support才能正常的使用它。若是你把它译为模块 ,它将是 microcode。 IA32主要用于高于4GB的内存。详见下面的“高内存选项”。使用不随Linux内核发行的IA32微代码,你必需有IA32微代码二进制文件,仅对 Intel的CPU有效。
Intel microcode patch loading support
AMD microcode patch loading support
4.31 /dev/cpu/*/msr - Model-specific register support
是否打开CPU特殊功能寄存器的功能。这个选项桌面用户通常用不到,它主要用在Intel的嵌入式CPU中的,这个寄存器的做用也依赖与不一样的CPU类型 而有所不一样,通常能够用来改变一些CPU原有物理结构的用途,但不一样的CPU用途差异也很大。在多cpu系统中让特权CPU访问x86的MSR寄存器。
4.32 /dev/cpu/*/cpuid - CPU information support
是否打开记录CPU相关信息功能。这会在/dev/cpu中创建一系列的设备文件,用以让过程去访问指定的CPU。能从/dev/cpu/x/cpuid得到CPU的惟一标识符(CPUID)。
4.33 High Memory Support (4GB)
LINUX可以在X86系统中使用64GB的物理内存。可是,32位地址的X86处理器只能支持到4GB大小的内存。这意味着,若是你有大于4GB的物理 内存,并不是都能被内核“永久映射”。这些非永久映射内存就称为“高阶内存”。 若是你编译的内核永远都不会运行在高于1G内存的机器上,选OFF(默认选项,适合大多数人)。这将会产生一个“3GB/1GB”的内存空间划分,3GB 虚拟内存被内核映射以便每一个处理器可以“看到”3GB的虚拟内存空间,这样仍然可以保持4GB的虚拟内存空间被内核使用,更多的物理内存可以被永久映 射。 若是你有1GB-4GB之间的物理内存,选4GB选项。若是超过4GB,那么选择64GB。这将打开 Intel 的物理地址延伸模式(PAE)。PAE将在IA32处理器上执行3个层次的内存页面。PAE是被LINUX彻底支持的,如今的Intel处理器 (Pentium Pro 和更高级的)都能运行PAE模式。注意:若是你选64GB,那么在不支持PAE的CPU上内核将没法启动。 你机器上的内存可以被自动探测到,或者你能够用相似于“mem=256M”的参数强制给内核指定内存大小。 4GB 选这项若是你用的是32位的处理器,内存在1-4GB之间。 64GB 选这项若是你用的是32位的处理器,内存大于4GB。
( ) off (X) 4GB ( ) 64GB
4.34 Memory model (Flat Memory)
通常选"Flat Memory",其余选项涉及内存热插拔(X) Flat Memory (平坦内存模式)
这个选项容许你改变内核在内部管理内存的一些方式。大多数用户在这只会有一个选项:Flat Memory。这是广泛的和正确的选项。一些用户的机器有更高级的特性,好比 NUMA 和内存热拔插,那将会有不一样的选项。Discontiguous Memory(非接触式内存模式)是一个更成熟、更好的测试系统。可是对于内存热拔插系统不太合适,会被“Sparse Memory”代替。若是你不清楚“Sparse Memory”和“Discontiguous Memory”的区别,选后者。若是不清楚,就选Flat Memory。
Sparse Memory(稀疏内存模式)
这对某些系统是惟一选项,包括内存热拔插系统。这正常。对于其余系统,这将会被Discontiguous Memory选项代替。这个选项提供潜在的更好的特性,能够下降代码复杂度,可是它是新的模式,须要更多的测试。若是不清楚,选择 “Discontiguous Memory” 或 “Flat Memory”。
4.35 Allow for memory compaction
4.36 Page migration (选择Y)
Enable KSM for page merging
(4096) Low address space to protect from user allocation
4.37 Enable recovery from hardware memory errors
选择Y
4.38 Transparent Hugepage Support
Transparent Hugepage Support sysfs defaults
1.always 2.madvise(默认选项)
4.39 Cross Memory Support
4.40 Enable cleancache driver to cache clean pages if tmem is present
4.41 Enable frontswap to cache swap pages if tmem is present(这三部分不太了解)
4.42 Allocate 3rd-level pagetables from highmem
在内存不少 ( 大于 4G) 的机器上将用户空间的页表放到高位内存区 , 以节约宝贵的低端内存 。
4.43 Check for low memory corruption
低位内存脏数据检查,默认是每60 秒检查一次。通常这种脏数据 是因某些Bios 处理不当引发的。
4.44 (64) Amount of low memory, in kilobytes, to reserve for the BIOS
4.45 Math emulation
数学协处理器仿真,486DX以上的cpu就不要选它了
4.46 MTRR (Memory Type Range Register) support(内存类型区域寄存器)
在 Intel P6 系列处理器(Pentium Pro, Pentium II 和更新的)上,MTRR将会用来规定和控制处理器访问某段内存区域的策略。若是你在PCI或者AGP总线上有VGA卡,这将很是有用。能够提高图像的传送 速度2.5倍以上。选Y,会生成文件/proc/mtrr,它能够用来操纵 你的处理器的MTRR。典型地,X server 会用到。这段代码有着通用的接口,其余CPU的寄存器一样可以使用该功能。Cyrix 6×86, 6×86MX和 M II处理器有ARR ,它和 MTRR有着相似的功能。AMD K6-2/ K6-3有两个MTRR, Centaur C6有8个MCR容许复合写入。全部这些处理器都支持这段代码,你能够选Y若是你有以上处理器。选Y一样能够修正SMP BIOS的问题,它仅为第一个CPU提供MTRR,而不为其余的提供。这会致使各类各样的问题,因此选Y是明智的。你能够安全地选Y,即便你的机器没有 MTRR。这会给内核增长9KB。打开它能够提高PCI/AGP总线上的显卡2倍以上的速度,而且能够修正某些BIOS错误。
4.47 MTRR cleanup support
MTRR清理(2.6.27内核新增功能,不肯定能够不选)
MTRR cleanup enable value (0-1)
MTRR cleanup spare reg num (0-7)
x86 PAT support
x86 architectural random number generator
4.48 EFI runtime service support(EFI启动支持)
这里容许内核在EFI平台上使用储存于EFI固件中的系统设置启动。这也容许内核在运行时使用EFI的相关服务。这个选项只在有EFI固件的系统上有用, 它会使内核增长8KB。另外,你必须使用最新的ELILO 登陆器才能使内核采用EFI的固件设置来启动(GRUB和LILO彻底不知道EFI是什么东西)。即便你没有EFI,却选了这个选项,内核一样能够启动。 你们应该用的是GRUB,因此选上这个也没什么用。除非你的系统支持EFI(一种可代替传统BIOS的技术)不然不选。
4.49 Enable seccomp to safely compute untrusted bytecode
只有嵌入式系统能够不选
4.50 Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)
4.51 Timer frequency (1000 HZ)
内核时钟频率桌面1000服务器100或250,容许设置时钟频率。 这是用户定义的时钟中断频率 100HZ-1000 HZ ,不过 100 HZ 对服务器和NUMA系统更合适,它们不须要很快速的响应用户的要求,由于时钟中断会致使总线争用和缓冲打回。注意在SMP环境中,时钟中断由变量 NR_CPUS * Hz定义在每一个CPU产生。 其实和前面的抢先式进程差很少,就是多少频率来响应用户要求。我选了250HZ的。要快点的能够选1000HZ的。可是仍是那句话,一切是平衡的。机器过 快响应你,它本身的活就不知道作得好很差了。( ) 100 HZ100 HZ是传统的对服务器、SMP 和 NUMA的系统选项。这些系统有比较多的处理器,能够在中断较集中的时候分担中断( ) 250 HZ250 HZ对服务器是一个好的折衷的选项,它一样在SMP 和 NUMA 系统上体现出良好的反应速度。( ) 300 HZ(X) 1000 HZ1000 HZ对于桌面和其余须要快速事件反应的系统是很是棒的。
4.52 kexec system call(kexec 系统调用)
kexec是一个用来关闭你当前内核,而后开启另外一个内核的系统调用。它和重启很像,可是它不访问系统固件。因为和重启很像,你能够启动任何内核,不只仅 是LINUX。 kexec这个名字是从 exec 系统调用来的。它只是一个进程,能够肯定硬件是否正确关闭,Linus本人都没话说,估计是受害不浅。咱们固然不能上当,选N!提供kexec系统调用, 能够没必要重启而切换到另外一个内核,若是须要就选择,对大多数用户来讲并不须要.
4.53 kernel crash dumps
内核崩溃时,dump 运行时信息。就算 crash 了,我也不会去调试内核的core dump
4.54 (0x1000000) Physical address where the kernel is loaded
4.55 Build a relocatable kernel
官方说明 (创建一个移动的内核,并增长10% 的内核尺寸,运行时会被丢弃),我认为没实质性的做用
4.56 (0x100000) Alignment value to which kernel should be aligned
4.57 Support for hot-pluggable CPUs
对SMP休眠和热插拔CPU提供支持
4.58 Compat VDSO support
若是Glibc版本大于等于2.3.3就不选,不然就选上,目前的版本基本上都大于2.3.3若是你运行的是最新的glibc(GNU C函数库)版本( 2.3.3 或更新),选N,这样能够移除高阶的VDSO 映射,使用随机的 VDSO。
4.59 Built-in kernel command line (不选)网络
Power management and ACPI options
5.一、Power Management support
5.二、Power Management Debug Support
不想调试ACPI
这个你如今能够勾掉,不勾也没事,稍侯会在kernel-hacking这一节勾掉调试,这里也就没
5.三、Suspend to RAM and standby
待机
5.四、Hibernation (aka 'suspend to disk')
休眠
5.五、Run-time PM core functionality
5.六、ACPI (Advanced Configuration and Power Interface) Support --->
见附1
5.七、SFI (Simple Firmware Interface) Support --->
5.八、APM (Advanced Power Management) BIOS support --->
选acpi就不用apm,通常你也只用acpi&
5.九、CPU Frequency scaling --->
[*] CPU Frequency scaling
[ ] Enable CPUfreq debugging <=== 我不须要调试 CPUfreq
< > CPU frequency translation statistics
Default CPUFreq governor (performance) ---> <=== 默认用 performance 高性能的CPU 调频方式
-*- 'performance' governor
< > 'powersave ' governor
<> 'userspace ' governor for userspace frequency scaling
<> 'ondemand ' cpufreq policy governor <=== " 周期性的考察CPU 负载并自动的动态调整cpu 频率" ,我只用 performance
<> 'conservative' cpufreq governor
*** CPUFreq processor drivers ***
< > Processor Clocking P-stat driver
<*> ACPI Processor P-States driver
< > AMD Mobile K6-2/K6-3 PowerNow !
< > AMD Mobile Athlon/Duron PowerNow !
< > AMD Opteron/Athlon64 PowerNow !
< > Cyrix MediaGX /NatSemi Geode Suspend Modulation
< > Intel Enhanced SpeedStep (deprecated)
< > Intel Speedstep on ICH-M chipsets (ioport interface)
< > Intel Pentium 4 clock modulation
< > Transmeta LongRun
< > VIA Cyrix III Longhaul
5.十、CPU idle PM support
5.十一、Cpuidle Driver for Intel Processors
Bus options(PCI etc.)
6.一、PCI support(这个必须选)
6.二、PCI access mode (Any)
( ) BIOS
( ) MMConfig
( ) Direct
(X) Any
6.三、Read CNB20LE Host Bridge Windows
没有公共规范的芯片组,此功能已知是不完整的。若是你不知道需不须要它,请选择N
6.四、PCI Express support
若是你的主板支持PCI Express,请选择Y
6.五、PCI Express Hotplug driver 选Y
6.六、Root Port Advanced Error Reporting support
硬件驱动会负责发送错误信息
6.七、PCI Express ECRC settings control
若是怀疑,请选择N
6.八、PCIe AER error injector support 同上,选 N
6.九、PCI Express ASPM control
这使得OS控制的PCI Express ASPM(活动状态电源管理)和时钟电源管理。 ASPM支持
状态L0/L0s/L1,选Y
6.十、Debug PCI Express ASPM 选N
Default ASPM policy
(X)BIOS default
( )powersave
( )performance
6.十一、Message Signaled Interrupts (MSI and MSI-X)
这使得设备驱动可以使用MIS(消息信号中断)选Y
6.十二、PCI Debugging
我认为这里没有必要选
6.1三、Enable PCI resource re-allocation detection
当PCI资源从新分配时,若是你须要PCI核心来检测的话,选择Y,同时你能够用pci=realloc=on和pci=realloc=off来覆盖它,若是你不肯定的话,选择N
6.1四、PCI Stub driver
选择Y或者M,若是你想要:当一个设备去注册其余的客户操做系统时须要保留该PCI设备
6.1五、 Interrupts on hypertransport devices
这将容许高速传输设备使用中断,若是不明确的话,选择Y
6.1六、 PCI IOV support
I / O虚拟化是由一些设备支持的PCI功能,这使得他们可以建立虚拟设备共享其物理资源。若是不肯定的话,选择N
6.1七、PCI PRI support
RIP就是PCI页面请求接口,若是不肯定的话,选择N
6.1八、PCI PASID support 不肯定的话选择N
6.1九、PCI IO-APIC hotplug support 选Y
6.20、ISA support(以及以后的EISA)
查看你的主板上是否有ISA插槽。ISA是总线系统的名称,它是一个老的系统,现已被PCI取代。新的主板已经不支持它,若是你还有,选择Y,不然,选择N
6.2一、NatSemi SCx200 support 选择编译为模块
6.2二、One Laptop Per Child support 不选
6.2三、PCEngines ALIX System Support (LED setup)
6.2四、Soekris Engineering net5501 System Support(LEDS, GPIO, etc)
6.2五、Traverse Technologies GEOS System Support (LEDS, GPIO, etc)
6.2六、RapidIO support
RapidIO主要应用于嵌入式系统内部互连。若是你选择Y,内核中将包含支持RapidIO设备链接的驱动和设施
6.2七、PCCard (PCMCIA/CardBus) support
通常笔记本电脑会配备PCCard 接口( 无线网卡之类的) ,看你的硬件和使用场景吧。虽然我也是NB ,但我历来不用PCMCIA
16-bit PCMCIA support
Load CIS updates from userspace (EXPERIMENTAL)
32-bit CardBus support
*** PC-card bridges ***
CardBus yenta-compatible bridge support
Cirrus PD6729 compatible bridge support
i82092 compatible bridge support
6.2八、 Support for PCI Hotplug
支持热拔插PCI 设备
Fake PCI Hotplug driver
Compaq PCI Hotplug driver
Save configuration into NVRAM on Compaq servers
IBM PCI Hotplug driver
ACPI PCI Hotplug driver
ACPI PCI Hotplug driver IBM extensions
CompactPCI Hotplug driver
SHPC PCI Hotplug driver
Executable file formats / Emulations
7.一、Kernel support for ELF binaries 选择Y
7.二、Write ELF core dumps with partial segments 不选
7.三、Kernel support for a.out and ECOFF binaries 编译成模块
7.四、Kernel support for MISC binaries 编译成模块
Networking support
8.一、Networking options
<Y> Packet socket
<Y> Unix domain sockets
<M> Transformation user configuration interface
[ ] Transformation sub policy support (EXPERIMENTAL)
[ ] Transformation migrate database (EXPERIMENTAL)
[ ] Transformation statistics (EXPERIMENTAL)
<M> PF_KEY sockets
[ ] PF_KEY MIGRATE (EXPERIMENTAL)
[Y] TCP/IP networking
[Y] IP: multicasting
[Y] IP: advanced router
Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure) (FIB_HASH)│
[Y] IP: policy routing
[Y] IP: equal cost multipath
[Y] IP: verbose route monitoring
[ ] IP: kernel level autoconfiguration
<M> IP: tunneling
< M> IP: GRE demultiplexer
[Y] IP: multicast routing
[ ] IP: multicast policy routing
[Y] IP: PIM-SM version 1 support
[Y] IP: PIM-SM version 2 support
[ ] IP: ARP daemon support
[ Y] IP: TCP syncookie support
<M> IP: AH transformation
<M> IP: ESP transformation
<M> IP: IPComp transformation
<M> IP: IPsec transport mode
<M> IP: IPsec tunnel mode
<*> IP: IPsec BEET mode
{*} Large Receive Offload (ipv4/tcp)
<M> INET: socket monitoring interface
[*] TCP: advanced congestion control --->
高级拥塞控制, 若是没有特殊需求( 好比无线网络) 就别选了
[ ] TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)
< > The IPv6 protocol --->
暂时没有要支持IPV6 的需求
[ ] NetLabel subsystem support
NetLabel 子系统, 为诸如CIPSO 与RIPSO 之类可以 在分组信息上添加标签的协议提供支持,我用不到
-*- Security Marking
对网络包进行安全标记, 相似于nfmark , 但主要是为安全目的而设计 , 安全特性,我暂时不考虑
[ ] Timestamping in PHY devices
[ ] Network packet filtering framework (Netfilter) --->
不使用防火墙,要用到时再编译进去
<M> The DCCP Protocol (EXPERIMENTAL) --->
-M- The SCTP Protocol (EXPERIMENTAL) --->
<M> The RDS Protocol (EXPERIMENTAL)
< > RDS over Infiniband and iWARP
< > RDS over TCP
[ ] RDS debugging messages
<M> The TIPC Protocol (EXPERIMENTAL) --->
<M> Asynchronous Transfer Mode (ATM)
<M> Classical IP over ATM
[ ] Do NOT send ICMP if no neighbour
<M> LAN Emulation (LANE) support
< > Multi-Protocol Over ATM (MPOA) support
<M> RFC1483/2684 Bridged protocols
[ ] Per-VC IP filter kludge
< > Layer Two Tunneling Protocol (L2TP) --->
<M> 802.1d Ethernet Bridging
[*] IGMP/MLD snooping
[ ] Distributed Switch Architecture support --->
<M> 802.1Q VLAN Support
[ ] GVRP (GARP VLAN Registration Protocol) support
< > DECnet Support
< > ANSI/IEEE 802.2 LLC type 2 Support
< > The IPX protocol
< > Appletalk protocol support
< > CCITT X.25 Packet Layer (EXPERIMENTAL)
< > LAPB Data Link Driver (EXPERIMENTAL)
< > Acorn Econet/AUN protocols (EXPERIMENTAL)
< > WAN router
< > Phonet protocols family
< > IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support (EXPERI│
[ ] QoS and/or fair queueing --->
经过IPRoute 切换网络设备上的Qos 策略,我不打算使用IP 路由
[ ] Data Center Bridging support
-*- DNS Resolver support
< > B.A.T.M.A.N. Advanced Meshing Protocol
Network testing --->
8.二、[ ] Amateur Radio support --->
8.三、< > CAN bus subsystem support --->
8.四、< > IrDA (infrared) subsystem support --->
8.五、<M> Bluetooth subsystem support --->
8.六、< > RxRPC session sockets
8.七、- - Wireless --->
8.八、< > WiMAX Wireless Broadband support --->
8.九、< > RF switch subsystem support --->
8.十、< > Plan 9 Resource Sharing Support (9P2000) (Experimental) --->
8.十一、< > CAIF support --->
8.十二、< > Ceph core library (EXPERIMENTAL)
Device Drivers
9.一、Generic Driver Options --->
9.1.一、() path to uevent helper
9.1.二、[ ] Maintain a devtmpfs filesystem to mount at /dev
9.1.三、[*] Select only drivers that don't need compile-time external firmware
9.1.四、[*] Prevent firmware from being built
9.1.五、-*- Userspace firmware loading support
9.1.六、[*] Include in-kernel firmware blobs in kernel binary
9.1.七、() External firmware blobs to build into the kernel binary
9.1.八、[ ] Driver Core verbose debug messages
9.1.九、[ ] Managed device resources verbose debug messages
管理设备资源的冗长调试信息
9.二、<*> Connector - unified userspace <-> kernelspace linker --->
内核空间与用户空间的信道
9.2.一、[*] Report process events to userspace
报告处理时间给用户空间
9.三、< > Memory Technology Device (MTD) support --->
9.四、< > Parallel port support --->
9.五、-*- Plug and Play support --->
[ ] PNP debugging messages
9.六、[ ] Block devices --->
9.七、[ ] Misc devices --->
9.八、< > ATA/ATAPI/MFM/RLL support (DEPRECATED) --->
9.九、SCSI device support --->
< > RAID Transport Class
-*- SCSI device support
[] legacy /proc /scsi / support <=== SCSI 设备
*** SCSI support type (disk, tape, CD-ROM) ***
<*> SCSI disk support // 用SATA ,此选项也必选
< > SCSI tape support
< > SCSI OnStream SC-x0 tape support
<> SCSI CDROM support <===
<> SCSI generic support <===
< > SCSI media changer support
[ ] Probe all LUNs on each SCSI device
[] Verbose SCSI error reporting (kernel size +=12K) <===
[ ] SCSI logging facility
[ ] Asynchronous SCSI scanning
SCSI Transports --->
<> Parallel SCSI (SPI) Transport Attributes <===
< > FiberChannel Transport Attributes
< > iSCSI Transport Attributes
< > SAS Domain Transport Attributes
< > SRP Transport Attributes
[ ] SCSI low-level drivers --->
< > SCSI Device Handlers --->
< > OSD-Initiator library
9.十、<M> Serial ATA and Parallel ATA drivers --->
[*] Verbose ATA error reporting
[*] ATA ACPI Support
[ ] SATA Port Multiplier support <===
<*> AHCI SATA support
< > Platform AHCI SATA support
< > Inito 162x SATA support
< > Silicon Image 3124/3132 SATA support
[*] ATA SFF support // 选择本身硬件对应的驱动便可
< > ServerWorks Frodo / Apple K2 SATA support
<*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support // Intel ICH ,G 系列chipset driver
< > Marvell SATA support
< > NVIDIA SATA support
< > Pacific Digital ADMA support
< > Pacific Digital SATA QStor support
< > Promise SATA TX2/TX4 support
< > Silicon Image SATA support
< > SiS 964/965/966/180 SATA support
< > ULi Electronics SATA support
< > VIA SATA support
< > VITESSE VSC-7174 / INTEL 31244 SATA support
< > Initio 162x SATA support
< > ACPI firmware driver for PATA
< > ALi PATA support
< > AMD/NVidia PATA support <=== 我用的是SATA ,取消PATA 支持
< > ARTOP 6210/6260 PATA support
< > ATI PATA support
< > CMD64x PATA support
< > CS5510/5520 PATA support
< > CS5530 PATA support
< > CS5536 PATA support
< > EFAR SLC90E66 support
< > Generic ATA support
< > HPT 366/368 PATA support
< > HPT 343/363 PATA support
< > IT8211/2 PATA support
< > JMicron PATA support
< > Compaq Triflex PATA support
< > Marvell PATA support via legacy mode
<> Intel PATA MPIIX support <===
< > Intel PATA old PIIX support <===
< > NETCELL Revolution RAID support
< > Nat Semi NS87410 PATA support
< > Nat Semi NS87415 PATA support
< > Older Promise PATA controller support
< > PC Tech RZ1000 PATA support
< > SC1200 PATA support
< > SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support
< > Promise PATA 2027x support
< > CMD / Silicon Image 680 PATA support
< > SiS PATA support
< > VIA PATA support
< > Winbond SL82C105 PATA support
< > Intel SCH PATA support <===
9.十一、[ ] Multiple devices driver support (RAID and LVM) --->
9.十二、[ ] Fusion MPT device support --->
9.1三、IEEE 1394 (FireWire) support --->
9.1四、< > I2O device support --->
9.1五、[ ] Macintosh device drivers ---> Mac 系统硬件设备驱动
9.1六、-*- Network device support --->
< > Dummy net driver support
< > Bonding driver support
< > EQL (serial line load balancing) support
< > Universal TUN/TAP device driver support
< > Virtual ethernet pair device
< > General Instruments Surfboard 1000
< > ARCnet support --->
-*- PHY Device support and infrastructure ---> <=== PHY ( 物理层控制芯片)
[ ] Ethernet (10 or 100Mbit) ---> <=== 若是是百 M 卡,请自行选择
[*] Ethernet (1000 Mbit) ---> // 选择本身对应的硬件
[ ] Ethernet (10000 Mbit) ---> <=== 若是你是万M 卡,请自行选择
<> Token Ring driver support ---> <=== IBM 的令牌环网,用以太网的忽略
[ ] Wireless LAN ---> <=== 不用无线网络
*** Enable WiMAX (Networking options) to see the WiMAX drivers ***
USB Network Adapters --->
[ ] Wan interfaces support --->
<> FDDI driver support <=== 光纤卡驱动
< > PPP (point-to-point protocol) support
< > SLIP (serial line) support
[ ] Fibre Channel driver support
[ ] Network console logging support
[ ] VMware VMXNET3 ethernet driver
9.1七、[ ] ISDN support --->
9.1八、< > Telephony support --->
9.1九、Input device support --->
-*- Generic input layer (needed for keyboard, mouse, ...)
-*- Support for memoryless force-feedback devices
<> Polled input device skeleton <=== 一种周期性轮询硬件状态的驱动,去掉后没什么反作用
*** Userland interfaces ***
-*- Mouse interface
[ ] Provide legacy /dev /psaux device
(1024) Horizontal screen resolution
(768) Vertical screen resolution
< > Joystick interface
<*> Event interface // 将输入设备的事件存储到/dev /input/eventX 供应用程序读取
< > Event debugging
*** Input Device Drivers ***
-*- Keyboards --->
[*] Mice --->
[] Joysticks/Gamepads ---> <=== 游戏设备
[] Tablets ---> <=== 平板PC
[] Touchscreens ---> <=== 触摸屏
[] Miscellaneous devices ---> <=== 杂七杂八的驱动,扬声器,笔记本扩展按键等
Hardware I/O ports --->
9.20、Character devices --->
-*- Virtual terminal
[*] Support for binding and unbinding console drivers // 在某些系统上可使用多个控制台驱动程序( 如framebuffer 控制台驱动程序), 该选项使得你能够选择其中之一 ,通常只用默认的虚拟终端
[] /dev /kmem virtual device support <=== 支持/dev /kmem 设备,不多用
[] Non-standard serial port support
Serial drivers --->
< > 8250/16550 and compatible serial support <=== 兼容一些老式的串口设备,我通常不用
*** Non-8250 serial port support ***
< > Digi International NEO PCI Support
-*- Unix98 PTY support
[ ] Support multiple instances of devpts
[ ] Legacy (BSD) PTY support
< > IPMI top-level message handler --->
<*> Hardware Random Number Generator Core support
< > Timer IOMEM HW Random Number Generator support
<*> Intel HW Random Number Generator support
<> AMD HW Random Number Generator support
< > AMD Geode HW Random Number Generator support ,intel 主板
<> VIA HW Random Number Generator support
<> /dev /nvram support
< > Siemens R3964 line discipline
< > Applicom intelligent fieldbus card support
< > ACP Modem (Mwave ) support
< > NatSemi PC8736x GPIO Support
< > NatSemi Base GPIO Support
< > AMD CS5535/CS5536 GPIO (Geode Companion Device)
< > RAW driver (/dev /raw/rawN )
[*] HPET - High Precision Event Timer
[ ] Allow mmap of HPET
< > Hangcheck timer
9.2一、{M} I2C support ---> 感知硬件状态,好比温度,风扇转速
9.2二、[ ] SPI support --->
9.2三、PPS support --->
9.2四、[ ] GPIO Support --->
9.2五、{*} Power supply class support --->
9.2六、{*} Hardware Monitoring support --->
9.2七、-*- Generic Thermal sysfs driver --->
9.2八、[*] Watchdog Timer Support --->
9.2九、Sonics Silicon Backplane --->
9.30、< > Multimedia support --->
9.3一、[ ] Voltage and Current Regulator Support --->
9.3二、< > Multimedia support --->
< > /dev /agpgart (AGP Support) ---> < --- virtualbox不支持虚拟独立显卡
-*- VGA arbitration
(16) Maximium number of GPU
[ ] Latop Hybird Graphics – GPU switch support
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<> Lowlevel video output switch controls
<> Support for frame buffer devices --->
[ ] Backlight & LCD device support ---> < --- 支持背光设置,好比pda等
Display device support --->
Console display driver support --->
[ ] Enable Scrollback Buffer in System RAM
9.3三、< > Sound card support ---> 声卡
9.3四、[ ] HID Devices ---> 人力工程学设备
9.3五、[] USB support ---> 跑虚拟机的,关了 。通常要开
9.3六、< > MMC/SD/SDIO card support --->
9.3七、< > Sony MemoryStick card support (EXPERIMENTAL) --->
9.3八、[] LED Support --->
9.3九、[ ] Accessibility support --->
9.40、< > InfiniBand support --->
9.4一、[*] EDAC (Error Detection And Correction) reporting ---> // 硬件故障repoting
9.4二、<*> Real Time Clock --->
9.4三、[*] DMA Engine support --->
9.4四、[ ] Auxiliary Display support --->
9.4五、< > Userspace I/O drivers --->
9.4六、TI VLYNQ --->
9.4七、[ ] Staging drivers --->
9.4八、[] X86 Platform Specific Device Drivers ---> <=== 一些笔记本的驱动
Firmware Drivers
< > BIOS Enhanced Disk Drive calls determine boot disk
< > BIOS update support for DELL systems via sysfs
< > Dell Systems Management Base Driver
[*] Export DMI identification via sysfs to userspace // 将BIOS 里的DMI 区信息导出到用户空间,部分系统管理工具可能会用到
[ ] iSCSI Boot Firmware Table Attributes
File systems
< > Second extended fs support
<> Ext3 journalling file system support
<*> The Extended 4 (ext4) filesystem
[ ] Enable ext4dev compatibility
[*] Ext4 extended attributes
[*] Ext4 POSIX Access Control Lists
[] Ext4 Security Labels <=== 取消 SELinux 支持
[ ] JBD (ext3) debugging support
[ ] JBD2 (ext4) debugging support
< > Reiserfs support
< > JFS filesystem support
< > XFS filesystem support
< > OCFS2 file system support
[*] Dnotify support
[*] Inotify support for userspace
[] Quota support <=== 磁盘配额支持 , 限制某个用户或者某组用户的磁盘占用空间,暂时没这个需求,你能够把它编译成模块
< > Kernel automounter support
<*> Kernel automounter version 4 support (also supports v3)
< > FUSE (Filesystem in Userspace ) support
Caches --->
CD-ROM/DVD Filesystems --->
<> ISO 9660 CDROM file system support <=== 在虚拟机内不用CDROM
< > UDF file system support
DOS/FAT/NT Filesystems --->
< > MSDOS fs support <=== 微软fs设备
< > VFAT (Windows-95) fs support
< > NTFS file system support
Pseudo filesystems --->
[] Miscellaneous filesystems --->
[*] Network File Systems --->
Partition Types --->
[ ] Advanced partition selection
-*- Native language support ---> // 选上Chinese
Kernel hacking
[] Show timing information on printks <=== 在printk 的输出中包含时间信息, 能够用来分析内核启动过程各步骤所用时间 , 我不须要debug 内核
[ ] Enable __deprecated logic
[*] Enable __must_check logic
(2048) Warn for stack frames larger than (needs gcc 4.4)
[] Magic SysRq key 官方不推荐选择
[ ] Enable unused/obsolete exported symbols
[ ] Debug Filesystem
[ ] Run 'make headers_check ' when building vmlinux
[ ] Kernel debugging <=== 内核调试,关
[ ] Enable SLUB performance statistics
[] Compile the kernel with frame pointers <=== 仍是跟内核开发有关
[ ] Delay each boot printk message by N milliseconds
< > torture tests for RCU
[ ] Check for stalled CPUs delaying RCU grace periods
< > Self test for the backtrace code
[ ] Force extended block device numbers and spread them
[ ] Fault-injection framework
[ ] Latency measuring infrastructure
[*] Sysctl checks
[] Tracers --->
[] Remote debugging over FireWire early on boot <=== 启动过程当中,容许远程调试内核
[ ] Enable dynamic printk ( ) support
[ ] Enable debugging of DMA-API usage
[ ] Sample kernel code --->
[ ] Filter access to /dev /mem
[] Enable verbose x86 bootup info messages <=== 在内核镜像解压缩阶段输出启动信息,关闭后至关于无声启动(Slient Bootup )
-*- Early printk
[] Early printk via EHCI debug port <=== 容许printk 经过EHCI 调试端口输出内核日志,调试的一概关
[ ] Use 4Kb for kernel stacks instead of 8Kb
[ ] Enable IOMMU stress-test mode
IO delay type (port 0x80 based port-IO delay [recommended]) --->
[*] Allow gcc to uninline functions marked 'inline'
Security options
安全特性,我选择全关,固然,这些选项不会影响你的平常开发,办公
[] Enable access key retention support <=== 关闭
[] Enable different security models <=== 关闭
[ ] Enable the securityfs filesystem
[] File POSIX Capabilities <=== 关闭
[ ] Integrity Measurement Architecture( IMA)
< > Cryptographic API ---> // 加密API ,这部分选项会根据此前的优化自动调整,默认便可
[] Virtualization
个人系统已经运行在虚拟机中,不须要再支持虚拟化
Library routines 库子程序,这部分选项会根据此前的优化自动调整,默认便可 一、 make clean 这条命令是在正式编译你的内核以前先把环境给清理干净。有时你也能够用 make realclean或 make mrproper 。 2 、make dep 这条命令是编译相关依赖文件。 3 、make zImage 这条命令就是最终的编译命令。有时你能够直接用 make(2.6.X 版本上用)或 make bzImage(给 PC 机编译大内核时用)