Linux内核配置选项简介

2020年05月28日 阅读数:1166
这篇文章主要向大家介绍Linux内核配置选项简介,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

Linux内核配置选项简介

20160602 16:09:41 没事多学点 阅读数:10730 标签: 内核配置kernel移植menuconfig 更多php

我的分类: linuxhtml

Linux内核配置选项简介前端

 

Gentoo Linux
Gentoo内核(gentoo-sources)特有的选项node

Gentoo Linux support
CONFIG_GENTOO_LINUX
linux

"Y",将会自动选中那些在Gentoo环境中必须开启的内核选项,以免用户遗漏某些必要的选项,减轻一些用户配置内核的难度.建议选"Y".ios

Linux dynamic and persistent device naming (userspace devfs) support
CONFIG_GENTOO_LINUX_UDEV
git

目前此项的做用仅是开启CONFIG_TMPFSCONFIG_DEVTMPFS及其所依赖的选项.CONFIG_TMPFS是为了在"/dev/shm","/run","/sys/fs/cgroup"三个目录中挂载tmpfs文件系统,CONFIG_DEVTMPFS是为了在"/dev"目录挂载devtmpfs文件系统.建议选"Y".github

Support for init systems, system and service managersweb

"init"系统(系统与服务管理器)."init"是内核启动的第一个用户空间程序(PID=1),也是全部用户态进程的"大总管"([提示]全部内核态进程的大总管是PID=2[kthreadd]).算法

OpenRC, runit and other script based systems and managers
CONFIG_GENTOO_LINUX_INIT_SCRIPT

OpenRCGentoo传统的"init"系统,使用基于SysVinit的传统启动脚本技术."Y",全部OpenRC所必需的内核选项(目前仅有CONFIG_BINFMT_SCRIPT)都会被自动选中.不肯定的选"Y".

systemd
CONFIG_GENTOO_LINUX_INIT_SYSTEMD

尽管并不是天衣无缝,可是systemd确实是目前风头最劲的"init"系统,大有在Linux世界一统江湖的霸气和潜力.仅在你打算OpenRC迁移到systemd时选"Y"."Y",内核中全部被systemd依赖的选项都将被自动选中,包括systemd建议的(而非必须的)选项,总计约20.



64-bit kernel
CONFIG_64BIT

编译64位内核.本文仅讲述x86_64(AMD64)平台的内核编译,因此这个是必选项.

General setup
常规设置

Cross-compiler tool prefix
CONFIG_CROSS_COMPILE

交叉编译工具前缀(好比"arm-linux-"至关于使用"make CROSS_COMPILE=arm-linux-"进行编译).除非你想配置后默认自动进行交叉编译,不然不要使用此选项.

Local version - append to kernel release
CONFIG_LOCALVERSION

在内核版本后面加上自定义的版本字符串(最大64字符),能够用"uname -a"命令看到

Automatically append version information to the version string
CONFIG_LOCALVERSION_AUTO

自动在版本字符串(CONFIG_LOCALVERSION)后面添加版本信息(相似"-gxxxxxxxx"格式),须要有perl以及git仓库支持

Kernel compression mode

内核镜像的压缩格式,可选Gzip/Bzip2/LZMA/XZ/LZO格式之一,推荐使用XZ格式.你的系统中须要有相应的压缩工具.

Default hostname
CONFIG_DEFAULT_HOSTNAME

设置默认主机名,默认值是"(none)".用户能够随后使用系统调用sethostname()来修改主机名.

Support for paging of anonymous memory (swap)
CONFIG_SWAP

使用交换分区或者交换文件来作为虚拟内存

System V IPC
CONFIG_SYSVIPC

System V 进程间通讯(IPC)支持,用于进程间同步和交换数据,许多程序须要这个功能."Y",除非你确实知道本身在作什么

POSIX Message Queues
CONFIG_POSIX_MQUEUE

POSIX消息队列POSIX IPC的一部分,若是你想编译和运行那些使用"mq_*"系统调用的程序(好比为Solaris开发的程序),就必须开启此选项.POSIX消息队列能够做为"mqueue"文件系统挂载以方便用户对队列进行操做.不肯定的选"Y".

open by fhandle syscalls
CONFIG_FHANDLE

用户程序能够使用句柄(而非文件名)来追踪文件(使用open_by_handle_at(2)/name_to_handle_at(2)系统调用),即便某文件被重命名,用户程序依然可定位那个文件.此特性有助于实现用户空间文件服务器(userspace file server).不肯定的选"N",但使用systemd的建议选"Y".

Auditing support
CONFIG_AUDIT

内核审计(跟踪每一个进程的活动状况)支持,某些安全相关的内核子系统(例如SELinux)须要它

Enable system-call auditing support
CONFIG_AUDITSYSCALL

对系统调用进行审计.既可独立使用,也可被其余内核子系统(例如SELinux)使用.

Make audit loginuid immutable
CONFIG_AUDIT_LOGINUID_IMMUTABLE

审计时使用固定的loginuid.在使用systemd之类的系统上应该开启(login服务由init进程负责重启),在使用SysVinitUpstart之类的系统上应该关闭(login服务由系统管理员手动重启).OpenRC就是一个基于SysVinit的系统.

IRQ subsystem

IRQ(中断请求)子系统

Expose hardware/virtual IRQ mapping via debugfs
CONFIG_IRQ_DOMAIN_DEBUG

经过debugfs中的irq_domain_mapping文件向用户显示硬件IRQ/Linux IRQ号之间的对应关系.仅用于开发调试.

Support sparse irq numbering
CONFIG_SPARSE_IRQ

稀疏IRQ号支持.它容许在小型设备上(例如嵌入式设备)定义一个很高的CONFIG_NR_CPUS,但仍然不但愿占用太多内核"memory footprint"(一段能够被操做或被管理的内存区域)的场合.稀疏IRQ也更适合NUMA平台,由于它以一种对NUMA更友好的方式分发中断描述符.不肯定的选"N".

Timers subsystem

Linux内核时钟子系统

Timer tick handling

内核时钟滴答处理程序,更多信息能够参考内核源码树下的"Documentation/timers/NO_HZ.txt"文件

Periodic timer ticks (constant rate, no dynticks)
CONFIG_HZ_PERIODIC

不管CPU是否须要,都强制按照固定频率不断触发时钟中断.这是最耗电的方式,不推荐使用

Idle dynticks system (tickless idle)
CONFIG_NO_HZ_IDLE

CPU在空闲状态时不产生没必要要的时钟中断,以使处理器可以在较低能耗状态下运行以节约电力,适合于大多数场合

Full dynticks system (tickless)
CONFIG_NO_HZ_FULL

彻底无滴嗒:即便CPU在忙碌状态也尽量关闭全部时钟中断,适用于CPU在同一时间仅运行一个任务,或者用户空间程序极少与内核交互的场合.即便开启此选项,也须要额外设置"nohz_full=?"内核命令行参数才能真正生效.

Full dynticks system on all CPUs by default
CONFIG_NO_HZ_FULL_ALL

即便没有设置"nohz_full"引导参数,也默认对全部CPU(boot CPU 除外)开启彻底无滴答特性.

Old Idle dynticks config
CONFIG_NO_HZ

等价于CONFIG_NO_HZ_IDLE,临时用来兼容老版本内核选项,将来会被删除.

High Resolution Timer Support
CONFIG_HIGH_RES_TIMERS

高精度定时器(hrtimer)是从2.6.16开始引入,用于取代传统timer wheel(基于jiffies定时器)的时钟子系统.能够下降与内核其余模块的耦合性,还能够提供比1毫秒更高的精度(由于它能够读取HPET/TSC等新型硬件时钟源),能够更好的支持音视频等对时间精度要求较高的应用.建议选"Y".[提示]这里说的"定时器"是指"软件定时器",而不是主板或CPU上集成的硬件时钟发生器(ACPI PM Timer/HPET Timer/TSC Timer).

CPU/Task time and stats accounting

CPU/进程的时间及状态统计

Cputime accounting

CPU时间统计方式

Simple tick based cputime accounting
CONFIG_TICK_CPU_ACCOUNTING

简单的基于滴答的统计,适用于大多数场合

Deterministic task and CPU time accounting
CONFIG_VIRT_CPU_ACCOUNTING_NATIVE

经过读取CPU计数器进行统计,能够提供更精确的统计,可是对性能有一些不利影响.

Full dynticks CPU time accounting
CONFIG_VIRT_CPU_ACCOUNTING_GEN

利用上下文跟踪子系统,经过观察每个内核与用户空间的边界进行统计.该选项对性能有显著的不良影响,目前仅用于彻底无滴答子系统(CONFIG_NO_HZ_FULL)的调试

Fine granularity task level IRQ time accounting
CONFIG_IRQ_TIME_ACCOUNTING

经过读取TSC时间戳进行统计,这是统计进程IRQ时间的更细粒度的统计方式,但对性能有些不良影响(特别是在RDTSC指令速度较慢的CPU).

BSD Process Accounting
CONFIG_BSD_PROCESS_ACCT

用户空间程序能够要求内核将进程的统计信息写入一个指定的文件,主要包括进程的建立时间/建立者/内存占用等信息.

BSD Process Accounting version 3 file format
CONFIG_BSD_PROCESS_ACCT_V3

使用新的v3版文件格式,能够包含每一个进程的PID和其父进程的PID,可是不兼容老版本的文件格式.好比 GNU Accounting Utilities 这样的工具能够识别v3格式

Export task/process statistics through netlink
CONFIG_TASKSTATS

经过netlink接口向用户空间导出进程的统计信息, BSD Process Accounting 的不一样之处在于这些统计信息在整个进程生存期都是可用的.

Enable per-task delay accounting
CONFIG_TASK_DELAY_ACCT

在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间

Enable extended accounting over taskstats
CONFIG_TASK_XACCT

在统计信息中包含进程的更多扩展信息.

Enable per-task storage I/O accounting
CONFIG_TASK_IO_ACCOUNTING

在统计信息中包含进程在存储设备上的I/O字节数.

RCU Subsystem

RCU(Read-Copy Update)子系统.在读多写少的状况下,这是一个高性能的锁机制,对于被RCU保护的共享数据结构,读者不须要得到任何锁就能够访问它(速度很是快),但写者在访问它时首先拷贝一个副本,而后对副本进行修改,最后使用一个回调机制在适当的时机把指向原来数据的指针从新指向新的被修改的数据,速度很是慢.RCU只适用于读多写少的状况:如网络路由表的查询更新,设备状态表的维护,数据结构的延迟释放以及多径I/O设备的维护等.

RCU Implementation

RCU的实现方式

Tree-based hierarchical RCU
CONFIG_TREE_RCU

基于树型分层结构的实现.最适用于多CPU的非实时系统.

Preemptible tree-based hierarchical RCU
CONFIG_TREE_PREEMPT_RCU

抢占式基于树型分层结构的实现.最适用于那些要求快速响应的多CPU实时系统.

UP-only small-memory-footprint RCU
CONFIG_TINY_RCU

最简单的实现,可以大幅下降RCU系统的内存占用.最适用于单CPU的非实时系统.

Preemptible UP-only small-memory-footprint RCU
CONFIG_TINY_PREEMPT_RCU

抢占式简单实现,可以大幅下降RCU系统的内存占用.最适用于那些要求快速响应的单CPU实时系统.

Consider userspace as in RCU extended quiescent state
CONFIG_RCU_USER_QS

在内核和用户边界设置钩子函数,将运行在用户态的CPU从全局RCU状态机制中移除,这样就不会在RCU系统中维护此CPU的时钟滴答.除非你想要帮助开发CONFIG_NO_HZ_FULL模块,不然不要打开此选项,并且它还会对性能有不利影响.

Force context tracking
CONFIG_CONTEXT_TRACKING_FORCE

默认在内核和用户边界进行探测(上下文跟踪),以便测试依赖于此特性的各类功能(好比用户空间的 RCU extended quiescent state),这个特性目前仅用于调试目的,将来也许会用于为CONFIG_NO_HZ_FULL模块提供支持

Tree-based hierarchical RCU fanout value
CONFIG_RCU_FANOUT

这个选项控制着树形RCU层次结构的端点数(fanout),以容许RCU子系统在拥有海量CPU的系统上高效工做.这个值必须至少等于CONFIG_NR_CPUS1/4次方(4次根号).生产系统上应该使用默认值(64).仅在你想调试RCU子系统时才须要减少此值.

Tree-based hierarchical RCU leaf-level fanout value
CONFIG_RCU_FANOUT_LEAF

这个选项控制着树形RCU层次结构的叶子层的端点数(leaf-level fanout).对于指望拥有更高能耗比(更节能)的系统,请保持其默认值(16).对于拥有成千上万个CPU的系统来讲,应该考虑将其设为最大值(CONFIG_RCU_FANOUT).

Disable tree-based hierarchical RCU auto-balancing
CONFIG_RCU_FANOUT_EXACT

强制按照CONFIG_RCU_FANOUT_LEAF的值,而不是使用自动平衡树结构来实现RCU子系统.目前仅用于调试目的.将来也许会用于加强NUMA系统的性能.

Accelerate last non-dyntick-idle CPU's grace periods
CONFIG_RCU_FAST_NO_HZ

即便CPU还在忙碌,也容许进入dynticks-idle状态,而且阻止RCU4个滴答就唤醒一次该CPU,这样可以更有效的使用电力,同时也拉长了RCU grace period的时间,形成性能下降.若是能耗比对你而言很是重要(你想节省每一分电力),而且你不在意系统性能的下降(CPU唤醒时间增长),能够开启此选项.台式机和服务器建议关闭此选项.

Enable RCU priority boosting
CONFIG_RCU_BOOST

容许提高RCU子系统的实时优先级(包括读操做与写操做),以免RCU操做被阻塞太长时间.若是系统的CPU负载常常很重,或者你须要快速的实时响应系统,那么就选"Y",不然应该选"N".

Real-time priority to boost RCU readers to
CONFIG_RCU_BOOST_PRIO

容许提高被长时间抢占(阻塞)RCU读操做的实时优先级到什么程度.取值范围是[1,99].默认值"1"适用于实时应用程序中不包含CPU密集型(CPU-bound)线程的常规场合(例如大多数桌面系统).可是若是你的实时应用程序拥有一个或多个CPU密集型线程,那么可能须要增长这个值,具体能够参考内核帮助的说明.仅在你确实理解了的状况下再改变默认值.

Milliseconds to delay boosting after RCU grace-period start
CONFIG_RCU_BOOST_DELAY

在提高RCU读操做的优先级以前,容许有多长时间潜伏期(阻塞),取值范围是[0,3000],单位是毫秒,默认值是"500".不肯定的请使用默认值.

Offload RCU callback processing from boot-selected CPUs
CONFIG_RCU_NOCB_CPU

若是你想帮助调试内核能够开启,不然请关闭.

Build-forced no-CBs CPUs

在开启CONFIG_RCU_NOCB_CPU选项的状况下,指定哪些CPUNo-CB CPU,至关于预先设置"rcu_nocbs="内核引导参数.

Kernel .config support
CONFIG_IKCONFIG

把内核的配置信息编译进内核中,之后能够经过scripts/extract-ikconfig脚本从内核镜像中提取这些信息

Enable access to .config through /proc/config.gz
CONFIG_IKCONFIG_PROC

容许经过 /proc/config.gz 文件访问内核的配置信息

Kernel log buffer size
CONFIG_LOG_BUF_SHIFT

设置内核日志缓冲区的大小: 12(最小值)=4KB,...,16=64KB,17=128KB,18=256KB,...,21(最大值)=2048KB

Automatically enable NUMA aware memory/task placement
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED

NUMA(Non-Uniform Memory Access Architecture)系统上自动启用进程/内存均衡,也就是自动开启CONFIG_NUMA_BALANCING特性.

Memory placement aware NUMA scheduler
CONFIG_NUMA_BALANCING

容许自动根据NUMA系统的节点分布情况进行进程/内存均衡(方法很原始,就是简单的内存移动).这个选项对UMA系统无效.[提示]UMA系统的例子:(1)只有一颗物理CPU(即便是多核)的电脑,(2)不支持"虚拟NUMA","虚拟NUMA"被禁用的虚拟机(即便所在的物理机是NUMA系统)

Control Group support
CONFIG_CGROUPS

Cgroup(Control Group)是一种进程管理机制,能够针对一组进程进行系统资源的分配和管理,可用于Cpusets,CFS(彻底公平调度器),内存管理等子系统.此外,systemd也依赖于它.更多细节能够参考内核的"Documentation/cgroups/cgroups.txt"文件

Example debug cgroup subsystem
CONFIG_CGROUP_DEBUG

导出cgroups框架的调试信息,仅用于调试目的.

Freezer cgroup subsystem
CONFIG_CGROUP_FREEZER

容许冻结/解冻cgroup内全部进程

Device controller for cgroups
CONFIG_CGROUP_DEVICE

容许为cgroup创建设备白名单,这样cgroup内的进程将仅容许对白名单中的设备进行mknod/open操做

Cpuset support
CONFIG_CPUSETS

CPUSET支持:容许将CPU和内存进行分组,并指定某些进程只能运行于特定的分组.这里有一篇CPUSET的用法

Include legacy /proc/<pid>/cpuset file
CONFIG_PROC_PID_CPUSET

提供过期的 /proc/<pid>/cpuset 文件接口

Simple CPU accounting cgroup subsystem
CONFIG_CGROUP_CPUACCT

提供一个简单的资源控制器(Resource Controller,用于实现一组任务间的资源共享),以监控cgroup内全部进程的总CPU使用量.

Resource counters
CONFIG_RESOURCE_COUNTERS

cgroup提供独立于controller资源计数器

Memory Resource Controller for Control Groups
CONFIG_MEMCG

cgroup添加内存资源控制器,包含匿名内存和页面缓存(Documentation/cgroups/memory.txt).开启此选项后,将会增长关联到每一个内存页fixed memory大小,具体在64位系统上是40bytes/PAGE_SIZE.仅在你确实明白什么是 memory resource controller 而且确实须要的状况下才开启此选项.此功能能够经过命令行选项"cgroup_disable=memory"进行关闭.

Memory Resource Controller Swap Extension
CONFIG_MEMCG_SWAP

 Memory Resource Controller 添加对swap的管理功能.这样就能够针对每一个cgroup限定其使用的mem+swap总量.若是关闭此选项, memory resource controller 将仅能限制mem的使用量,而没法对swap进行控制(进程有可能耗尽swap).开启此功能会对性能有不利影响,而且为了追踪swap的使用也会消耗更多的内存(若是swap的页面大小是4KB,那么每1GBswap须要额外消耗512KB内存),因此在内存较小的系统上不建议开启.

Memory Resource Controller Swap Extension enabled by default
CONFIG_MEMCG_SWAP_ENABLED

若是开启此选项,那么将默认开启CONFIG_MEMCG_SWAP特性,不然将默认关闭.即便默认开启也能够经过内核引导参数"swapaccount=0"禁止此特性.

Memory Resource Controller Kernel Memory accounting
CONFIG_MEMCG_KMEM

Memory Resource Controller 添加对内核对象所占用内存的管理功能.和标准的 Memory Resource Controller 对内存的控制不同之处在于:这些内核对象所占用的内存是基于每一个内存页的,而且能够被swap到硬盘.使用这个功能能够确保cgroup中的进程不会单独耗尽全部内核资源.

HugeTLB Resource Controller for Control Groups
CONFIG_CGROUP_HUGETLB

cgroup添加对HugeTLB页的资源控制功能.开启此选项以后,你就能够针对每一个cgroup限定其对HugeTLB的使用.

Enable perf_event per-cpu per-container group (cgroup) monitoring
CONFIG_CGROUP_PERF

per-cpu模式进行扩展,使其能够监控属于特定cgroup并运行于特定CPU上的线程

Group CPU scheduler
CONFIG_CGROUP_SCHED

CPU调度程序能够在不一样的cgroup之间分配CPU的带宽

Group scheduling for SCHED_OTHER
CONFIG_FAIR_GROUP_SCHED

公平CPU调度策略,也就是在多个cgroup之间平均分配CPU带宽."鸡血补丁"CONFIG_SCHED_AUTOGROUP(自动分组调度功能)依赖于它.

CPU bandwidth provisioning for FAIR_GROUP_SCHED
CONFIG_CFS_BANDWIDTH

容许用户为运行在CONFIG_FAIR_GROUP_SCHED中的进程定义CPU带宽限制.对于没有定义CPU带宽限制的cgroup而言,能够无限制的使用CPU带宽.详情参见 Documentation/scheduler/sched-bwc.txt 文件.

Group scheduling for SCHED_RR/FIFO
CONFIG_RT_GROUP_SCHED

容许用户为cgroup分配实时CPU带宽,还能够对非特权用户的实时进程组进行调度.详情参见 Documentation/scheduler/sched-rt-group.txt 文档.

Block IO controller
CONFIG_BLK_CGROUP

通用的块IO控制器接口,能够用于实现各类不一样的控制策略.目前,IOSCHED_CFQ用它来在不一样的cgroup之间分配磁盘IO带宽(须要额外开启CONFIG_CFQ_GROUP_IOSCHED),block io throttle也会用它来针对特定块设备限制IO速率上限(须要额外开启CONFIG_BLK_DEV_THROTTLING).更多信息能够参考"Documentation/cgroups/blkio-controller.txt"文件.

Enable Block IO controller debugging
CONFIG_DEBUG_BLK_CGROUP

仅用于调试 Block IO controller 目的.

Checkpoint/restore support
CONFIG_CHECKPOINT_RESTORE

在内核中添加"检查点/恢复"支持.也就是添加一些辅助的代码用于设置进程的 text, data, heap ,而且在 /proc 文件系统中添加一些额外的条目.主要用于调试目的.不肯定的选"N".

Namespaces support
CONFIG_NAMESPACES

命名空间支持.用于支持基于容器的轻量级虚拟化技术(好比LXC).

UTS namespace
CONFIG_UTS_NS

uname() 系统调用的命名空间支持

IPC namespace
CONFIG_IPC_NS

进程间通讯对象ID的命名空间支持

User namespace
CONFIG_USER_NS

容许容器(也就是VServer)使用user命名空间.若是开启此项,建议同时开启CONFIG_MEMCGCONFIG_MEMCG_KMEM选项,以容许用户空间使用"memory cgroup"限制非特权用户的内存使用量.不肯定的选"N".

PID Namespaces
CONFIG_PID_NS

进程PID命名空间支持

Network namespace
CONFIG_NET_NS

网络协议栈的命名空间支持

Require conversions between uid/gids and their internal representation
CONFIG_UIDGID_STRICT_TYPE_CHECKS

强制将uid/gid转换为内部表示形式,以让那些未对uid/gid进行转换的内核子系统代码也能正常编译.不肯定的选"N".

Automatic process group scheduling
CONFIG_SCHED_AUTOGROUP

每一个TTY动态地建立任务分组(cgroup),这样就能够下降高负载状况下的桌面延迟.也就是传说中的桌面"鸡血补丁",桌面用户建议开启.但服务器建议关闭.

Enable deprecated sysfs features to support old userspace tools
CONFIG_SYSFS_DEPRECATED

为了兼容旧版本的应用程序而保留过期的sysfs特性.仅当在使用2008年之前的发行版时才须要开启,2009年以后的发行版中必须关闭.

Enable deprecated sysfs features by default
CONFIG_SYSFS_DEPRECATED_V2

默认开启上述特性

Kernel->user space relay support (formerly relayfs)
CONFIG_RELAY

在某些文件系统(好比debugfs)中提供中继(relay)支持(从内核空间向用户空间传递大批量数据).主要用于调试内核.

Initial RAM filesystem and RAM disk (initramfs/initrd) support
CONFIG_BLK_DEV_INITRD

初始内存文件系统(initramfs,2.6以上内核的新机制,使用cpio格式,占据的内存随数据的增减自动增减)与初始内存盘(initrd,2.4之前内核遗留的老机制,使用loop设备,占据一块固定的内存,须要额外开启CONFIG_BLK_DEV_RAM选项才生效)支持,通常经过lilo/grubinitrd指令加载.更多细节能够参考"Documentation/initrd.txt"文件,关于initrdinitramfs的进化(墙内镜像),能够参考IBM上的两篇文章:Linux2.6 内核的 Initrd 机制解析Linux 初始 RAM 磁盘(initrd)概述.

Initramfs source file(s)
CONFIG_INITRAMFS_SOURCE

若是你想initramfs镜像直接嵌入内核(好比嵌入式环境或者想使用 EFI stub kernel),而不是经过lilo/grub这样的引导管理器加载,能够使用此选项,不然请保持空白.这个选项指明用来制做initramfs镜像的原料,能够是一个.cpio文件或一个空格分隔的目录与文件列表.细节能够参考"Documentation/early-userspace/README"文档.

User ID to map to 0 (user root)
INITRAMFS_ROOT_UID

此选项仅在CONFIG_INITRAMFS_SOURCE中包含目录时才有效,将此值设为非零(例如"37"),那么全部UID=37的文件在打包到initramfs镜像内时,UID都将被设为"0".

Group ID to map to 0 (group root)
INITRAMFS_ROOT_GID

此选项仅在CONFIG_INITRAMFS_SOURCE中包含目录时才有效,将此值设为非零(例如"37"),那么全部GID=37的文件在打包到initramfs镜像内时,GID都将被设为"0".

Support initial ramdisks compressed using gzip
CONFIG_RD_GZIP

支持通过gzip压缩的ramdiskcpio镜像

Support initial ramdisks compressed using bzip2
CONFIG_RD_BZIP2

支持通过bzip2压缩的ramdiskcpio镜像

Support initial ramdisks compressed using LZMA
CONFIG_RD_LZMA

支持通过LZMA压缩的ramdiskcpio镜像

Support initial ramdisks compressed using XZ
CONFIG_RD_XZ

支持通过XZ压缩的ramdiskcpio镜像

Support initial ramdisks compressed using LZO
CONFIG_RD_LZO

支持通过LZO压缩的ramdiskcpio镜像

Built-in initramfs compression mode

选择initramfs镜像的压缩格式."gzip"是兼容性最好的格式,可是压缩率却最低."XZ"是目前渐渐流行的格式,压缩率高,解压速度也不慢.

Optimize for size
CONFIG_CC_OPTIMIZE_FOR_SIZE

编译时优化内核尺寸(使用GCC"-Os"而不是"-O2"参数编译),这会获得更小的内核,可是运行速度可能会更慢.主要用于嵌入式环境.

Configure standard kernel features (expert users)
CONFIG_EXPERT

配置标准的内核特性(仅供专家使用).这个选项容许你改变内核的"标准"特性(好比用于须要"非标准"内核的特定环境中),仅在你确实明白本身在干什么的时候才开启.

Enable 16-bit UID system calls
CONFIG_UID16

容许对UID系统调用进行过期的16-bit包装,建议关闭

Sysctl syscall support
CONFIG_SYSCTL_SYSCALL

二进制sysctl接口支持.因为如今流行直接经过/proc/sysASCII明码方式修改内核参数(须要开启CONFIG_PROC_SYSCTL选项),因此已经不须要再经过二进制接口去控制内核参数,建议关闭它以减少内核尺寸.

Load all symbols for debugging/ksymoops
CONFIG_KALLSYMS

装载全部的调试符号表信息,会增大内核体积,仅供调试时选择

Include all symbols in kallsyms
CONFIG_KALLSYMS_ALL

/proc/kallsyms中包含内核知道的全部符号,内核将会增大300K,仅在你确实须要的时候再开启

Enable support for printk
CONFIG_PRINTK

容许内核向终端打印字符信息.若是关闭,内核在初始化过程当中将不会输出字符信息,这会致使很难诊断系统故障.仅在你确实不想看到任何内核信息时选"N".不然请选"Y".

BUG() support
CONFIG_BUG

显示故障和失败条件(BUGWARN),禁用它将可能致使隐含的错误被忽略.建议仅在嵌入式设备或者没法显示故障信息的系统上关闭

Enable ELF core dumps
CONFIG_ELF_CORE

内存转储支持,能够帮助调试ELF格式的程序,用于调试和开发用户态程序

Enable PC-Speaker support
CONFIG_PCSPKR_PLATFORM

主板上的蜂鸣器支持.主板上的蜂鸣器只能发出或长或短的"""嘟嘟",通常用于系统报警.不要和可以播放音乐的扬声器混淆.若是你的主板上没有就关闭,有的话(开机自检完成后通常能听到""的一声)仍是建议开启.

Enable full-sized data structures for core
CONFIG_BASE_FULL

在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减少以节约内存,可是将会下降性能

Enable futex support
CONFIG_FUTEX

快速用户空间互斥(fast userspace mutexes)能够使线程串行化以免竞态条件,也提升了响应速度.禁用它将致使内核不能正确的运行基于glibc的程序

Enable eventpoll support
CONFIG_EPOLL

Epoll系列系统调用(epoll_*)支持,这是当前在Linux下开发大规模并发网络程序(好比Nginx)的热门人选,设计目的是取代既有POSIX select(2)poll(2)系统接口,建议开启.

Enable signalfd() system call
CONFIG_SIGNALFD

signalfd()系统调用支持,建议开启.传统的处理信号的方式是注册信号处理函数,因为信号是异步发生的,要解决数据的并发访问和可重入问题.signalfd能够将信号抽象为一个文件描述符,当有信号发生时能够对其read,这样能够将信号的监听放到select/poll/epoll监听队列中.

Enable timerfd() system call
CONFIG_TIMERFD

timerfd()系统调用支持,建议开启.timerfd能够实现定时器功能,将定时器抽象为文件描述符,当定时器到期时能够对其read,这样也能够放到select/poll/epoll监听队列中.更多信息能够参考linux新的API signalfdtimerfdeventfd使用说明

Enable eventfd() system call
CONFIG_EVENTFD

eventfd()系统调用支持,建议开启.eventfd实现了线程之间事件通知的方式,eventfd的缓冲区大小是sizeof(uint64_t),向其write能够递增这个计数器,read操做能够读取,并进行清零.eventfd也能够放到select/poll/epoll监听队列中.当计数器不是0,有可读事件发生,能够进行读取.

Use full shmem filesystem
CONFIG_SHMEM

彻底使用shmem来代替ramfs.shmem是基于共享内存的文件系统(能够使用swap),在启用CONFIG_TMPFS后能够挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多.仅在微型嵌入式环境中且没有swap的状况下才可能会须要使用原始的ramfs.

Enable AIO support
CONFIG_AIO

开启POSIX异步IO支持.它经常被高性能的多线程程序使用,建议开启

Enable PCI quirk workarounds
CONFIG_PCI_QUIRKS

开启针对多种PCI芯片组的错误规避功能,仅在肯定你的PCI芯片组确实没有没有任何bug时才关闭此功能.至于究竟哪些芯片组有bug,你能够直接打开"drivers/pci/quirks.c"文件查看.不肯定的选"Y".

Embedded system
CONFIG_EMBEDDED

若是你是为嵌入式系统编译内核,能够开启此选项,这样一些高级选项就会显示出来.单独选中此项自己对内核并没有任何改变.

Kernel Performance Events And Counters
CONFIG_PERF_EVENTS

性能相关的事件和计数器支持(既有硬件的支持也有软件的支持).大多数现代CPU都会经过性能计数寄存器对特定类型的硬件事件(指令执行,缓存未命中,分支预测失败)进行计数,同时又丝绝不会减慢内核和应用程序的运行速度.这些寄存器还会在某些事件计数到达特定的阈值时触发中断,从而能够对代码进行性能分析. Linux Performance Event 子系统对上述特性进行了抽象,提供了针对每一个进程和每一个CPU的计数器,并能够被 tools/perf/ 目录中的"perf"工具使用.

Debug: use vmalloc to back perf mmap() buffers
CONFIG_DEBUG_PERF_USE_VMALLOC

主要用于调试vmalloc代码.

Enable VM event counters for /proc/vmstat
CONFIG_VM_EVENT_COUNTERS

"/proc/vmstat"中包含了从内核导出的虚拟内存的各类统计信息.开启此项后能够显示较详细的信息(包含各类事件计数器),关闭此项则仅仅显示很简略的信息.主要用于调试和统计.

Enable SLUB debugging support
CONFIG_SLUB_DEBUG

SLUB调试支持,禁用后可显著下降内核大小,同时/sys/kernel/slab也将不复存在.

Disable heap randomization
CONFIG_COMPAT_BRK

禁用堆随机化(heap randomization)功能.堆随机化可让针对堆溢出的攻击变得困难,可是不兼容那些古董级的二进制程序(2000年之前).若是你不须要使用这些古董程序,那么选"N".

Choose SLAB allocator

选择内存分配管理器

SLAB
CONFIG_SLAB

久经考验的slab内存分配器,在大多数状况下都具备良好的适应性.

SLUB (Unqueued Allocator)
CONFIG_SLUB

SLUBSLAB兼容,但经过取消大量的队列和相关开销,简化了slab的结构.特别是在多核时拥有比slab更好的性能和更好的系统可伸缩性.

SLOB (Simple Allocator)
CONFIG_SLOB

SLOB针对小型系统设计,作了很是激进的简化,以适用于内存很是有限(小于64M)的嵌入式环境.

Profiling support
CONFIG_PROFILING

添加扩展的性能分析支持,能够被OProfile之类的工具使用.仅用于调试目的.

OProfile system profiling
CONFIG_OPROFILE

OProfile性能分析工具支持,仅用于调试目的.

OProfile multiplexing support
CONFIG_OPROFILE_EVENT_MULTIPLEX

OProfile multiplexing技术支持

Kprobes
CONFIG_KPROBES

Kprobes是一个轻量级的内核调试工具,能在内核运行的几乎任意时间点进行暂停/读取/修改等操做的调试工具.仅供调试使用.

Optimize very unlikely/likely branches
CONFIG_JUMP_LABEL

针对内核中某些"几乎老是为真"或者"几乎老是为假"的条件分支判断使用"asm goto"进行优化(在分支预测失败时会浪费不少时间在回退上,可是这种状况极少发生).不少内核子系统都支持进行这种优化.建议开启.

Transparent user-space probes
CONFIG_UPROBES

UprobesKprobes相似,但主要用于用户空间的调试.

Enable GCOV-based kernel profiling
CONFIG_GCOV_KERNEL

基于GCCgcov(代码覆盖率测试工具)代码分析支持,仅用于调试

Profile entire Kernel
CONFIG_GCOV_PROFILE_ALL

支持对整个内核进行分析.内核体积将会显著增大,而且运行速度显著减慢.

Enable loadable module support可加载模块支持

Enable loadable module support
CONFIG_MODULES

打开可加载模块支持,能够经过"make modules_install"把内核模块安装在/lib/modules/.而后能够使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具进行各类模块操做.

Forced module loading
CONFIG_MODULE_FORCE_LOAD

容许使用"modprobe --force"在不校验版本信息的状况下强制加载模块,这绝对是个坏主意!建议关闭.

Module unloading
CONFIG_MODULE_UNLOAD

容许卸载已经加载的模块

Forced module unloading
CONFIG_MODULE_FORCE_UNLOAD

容许强制卸载正在使用中的模块(rmmod -f),即便可能会形成系统崩溃.这又是一个坏主意!建议关闭.

Module versioning support
CONFIG_MODVERSIONS

容许使用为其余内核版本编译的模块,可会形成系统崩溃.这一样是个坏主意!建议关闭.

Source checksum for all modules
CONFIG_MODULE_SRCVERSION_ALL

为模块添加"srcversion"字段,以帮助模块维护者准确的知道编译此模块所须要的源文件,从而能够校验源文件的变更.仅内核模块开发者须要它.

Module signature verification
CONFIG_MODULE_SIG

加载模块时检查模块签名,详情参见"Documentation/module-signing.txt"文件.[!!警告!!]开启此选项后,必须确保模块签名后没有被strip(包括rpmbuild之类的打包工具).

Require modules to be validly signed
CONFIG_MODULE_SIG_FORCE

仅加载已签名而且密钥正确的模块,拒绝加载未签名或者签名密钥不正确的模块

Automatically sign all modules
CONFIG_MODULE_SIG_ALL

在执行"make modules_install"安装模块的时候,自动进行签名.不然你必须手动使用 scripts/sign-file 工具进行签名.

Which hash algorithm should modules be signed with?

选择对模块签名时使用的散列函数.建议使用强度最高的"SHA-512"算法.注意:所依赖的散列算法必须被静态编译进内核.对于"SHA-512"来讲,就是CONFIG_CRYPTO_SHA512CONFIG_CRYPTO_SHA512_SSSE3(若是你的CPU支持SSSE3指令集的话).

Enable the block layer块设备支持

Enable the block layer
CONFIG_BLOCK

块设备支持,使用SSD/硬盘/U/SCSI/SAS设备者必选.除非你是某些特殊的嵌入式系统,不然没有理由不使用块设备.

Block layer SG support v4
CONFIG_BLK_DEV_BSG

为块设备启用第四版SG(SCSI generic)支持.v4相比v3可以支持更复杂的SCSI指令(可变长度的命令描述块,双向数据传输,通用请求/应答协议),并且UDEV也要用它来获取设备的序列号.对于使用systemd的系统来讲,必须选"Y".对于不使用systemd的系统,若是你须要经过/dev/bsg/*访问块设备,建议开启此选项,不然(经过/dev/{sd*,st*,sr*})能够关闭.

Block layer SG support v4 helper lib
CONFIG_BLK_DEV_BSGLIB

你不须要手动开启此选项,若是有其余模块须要使用,会被自动开启.

Block layer data integrity support
CONFIG_BLK_DEV_INTEGRITY

某些块设备能够经过存储/读取额外的信息来保障端到端的数据完整性,这个选项为文件系统提供了相应的钩子函数来使用这个特性.若是你的设备支持 T10/SCSI Data Integrity Field 或者 T13/ATA External Path Protection 特性,那么能够开启此选项,不然建议关闭.

Block layer bio throttling support
CONFIG_BLK_DEV_THROTTLING

Bio Throttling 支持,也就是容许限制每一个cgroup对特定设备的IO速率.细节能够参考"Documentation/cgroups/blkio-controller.txt".

Advanced partition selection
CONFIG_PARTITION_ADVANCED

若是你想支持各类不一样的磁盘分区格式(特别是与UEFI配合使用的GPT格式),务必选中此项.

Acorn partition support
CONFIG_ACORN_PARTITION

Acorn 操做系统使用的分区格式,请根据实际状况选择子项,这里省略

Alpha OSF partition support
CONFIG_OSF_PARTITION

Alpha 平台上使用的分区格式

Amiga partition table support
CONFIG_AMIGA_PARTITION

AmigaOS 使用的分区格式

Atari partition table support
CONFIG_ATARI_PARTITION

Atari OS 使用的分区格式

Macintosh partition map support
CONFIG_MAC_PARTITION

苹果的Macintosh平台使用的分区格式

PC BIOS (MSDOS partition tables) support
CONFIG_MSDOS_PARTITION

渐成历史垃圾,但目前依然最多见的DOS分区格式.除非你确信不使用此格式,不然必选.其下的子项根据实际状况选择.

Windows Logical Disk Manager (Dynamic Disk) support
CONFIG_LDM_PARTITION

使用 Windows Logical Disk Manager 建立的分区格式.参见"Documentation/ldm.txt"

SGI partition support
CONFIG_SGI_PARTITION

SGI 平台上使用的分区格式

Ultrix partition table support
CONFIG_ULTRIX_PARTITION

DEC/Compaq Ultrix 平台上使用的分区格式

Sun partition tables support
CONFIG_SUN_PARTITION

SunOS 平台上使用的分区格式

Karma Partition support
CONFIG_KARMA_PARTITION

Rio Karma MP3 player 使用的分区格式

EFI GUID Partition support
CONFIG_EFI_PARTITION

表明将来趋势,眼下正大红大紫的EFI GPT(GUID Partition Table)分区格式.建议开启.若是你在UEFI平台上安装则必须开启.

SYSV68 partition table support
CONFIG_SYSV68_PARTITION

Motorola Delta 机器上使用的分区格式

IO Schedulers

IO调度器(另外一篇文章)

Deadline I/O scheduler
CONFIG_IOSCHED_DEADLINE

deadline调度器.简洁小巧(只有400+行代码),提供了最小的读取延迟.若是你但愿尽快读取磁盘,而不介意写入延迟,那它是最佳选择.一般对于数据库工做负载有最佳的表现.

CFQ I/O scheduler
CONFIG_IOSCHED_CFQ

cfq(Complete Fair Queuing)调度器.努力在各内核线程间公平分配IO资源,适用于系统中存在着大量内核线程同时进行IO请求的状况.但对于只有少数内核线程进行密集IO请求的状况,则会出现明显的性能降低.

CFQ Group Scheduling support
CONFIG_CFQ_GROUP_IOSCHED

容许将CFQcgroup组合使用,也就是将每一个cgroup当作一个总体,在各cgroup之间进行IO资源的分配.参见"Documentation/cgroups/blkio-controller.txt"文件.还能够参考一下《Linux内核精髓》中的"使用Block I/O控制器"一章.

BFQ I/O scheduler
CONFIG_IOSCHED_BFQ

bfq(Budget Fair Queueing)调度器.这是一个基于CFQ调度器的改进版本,更适合于对交互性要求比较高的场合,好比桌面系统和实时系统.若是静态编译进内核,还支持和cgroup配合,实现分层调度(hierarchical scheduling).

BFQ hierarchical scheduling support
CONFIG_CGROUP_BFQIO

经过cgroup文件系统接口,容许将BFQ分层使用(相似CONFIG_CFQ_GROUP_IOSCHED),这个子系统的名字是"bfqio".

Default I/O scheduler

默认IO调度器.若是上述调度器都是模块,那么将使用最简单的内置NOOP调度器.NOOP(No Operation)调度器只是一个简单的FIFO队列,不对IO请求作任何从新排序处理(但仍是会作必定程度的归并),适合于SSD/U/内存/SAN(Storage Area Networks)/虚拟机中的硬盘/iSCSI/RAID等无需寻道的存储设备,重点是能够节约CPU资源,但不适用于普通硬盘这样的须要依靠磁头来定位的设备.另外,有人说拥有TCQ/NCQ技术(可以自动从新排序)的硬盘也适合用NOOP调度器,这个说法其实并不那么合理,但笔者在此不敢断言,但愿读者在严谨的测试以后再作定夺.

Processor type and features中央处理器(CPU)类型及特性

DMA memory allocation support
CONFIG_ZONE_DMA

容许为寻址宽度不足32位的设备(也就是ISALPC总线设备)物理内存的前16MB范围内(也就是传统上x86_32架构的ZONE_DMA区域)分配内存.不肯定的选"Y".[提示]LPC总线一般和主板上的南桥物理相连,一般链接了一系列的传统设备:BIOS,PS/2键盘,PS/2鼠标,软盘,并口设备,串口设备,某些集成声卡,TPM(可信平台模块),等等.[题外话]x86_64已经没有ZONE_HIGHMEM

Symmetric multi-processing support
CONFIG_SMP

SMP(对称多处理器)支持,若是你有多个CPU或者使用的是多核CPU就选上.

Support x2apic
CONFIG_X86_X2APIC

x2apic支持.具备这个特性的CPU能够使用32位的APIC ID(能够支持海量的CPU),而且能够使用MSR而不是mmio去访问 local APIC (更加高效).能够经过"grep x2apic /proc/cpuinfo"命令检查你的CPU是否支持这个特性.注意:有时候还须要在BIOS中也开启此特性才真正生效.[提示]在虚拟机中,还须要VMM的支持(例如qemu-kvm).

Enable MPS table
CONFIG_X86_MPPARSE

若是是不支持acpi特性的古董级SMP系统就选上.但现今的64位系统早都已经支持acpi,因此能够安全的关闭.

Support for extended (non-PC) x86 platforms
CONFIG_X86_EXTENDED_PLATFORM

支持非标准的PC平台: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 绝大多数人都遇不见这些平台.

Numascale NumaChip
CONFIG_X86_NUMACHIP

Numascale NumaChip 平台支持

ScaleMP vSMP
CONFIG_X86_VSMP

ScaleMP vSMP 平台支持

SGI Ultraviolet
CONFIG_X86_UV

SGI Ultraviolet 平台支持

Intel Low Power Subsystem Support
CONFIG_X86_INTEL_LPSS

Intel Lynx Point PCH 中的 Intel Low Power Subsystem 技术提供支持.这个芯片组主要是为采用LGA1150Haswell处理器提供支持.

Single-depth WCHAN output
CONFIG_SCHED_OMIT_FRAME_POINTER

使用简化的 /proc/<PID>/wchan ,禁用此选项会使用更加精确的wchan(能够在"ps -l"结果的WCHAN域看到),但会轻微增长调度器消耗.

Linux guest support
CONFIG_HYPERVISOR_GUEST

若是这个内核将在虚拟机里面运行就开启,不然就关闭.

Enable paravirtualization code
CONFIG_PARAVIRT

半虚拟化(paravirtualization)支持.

paravirt-ops debugging
CONFIG_PARAVIRT_DEBUG

仅供调试.paravirt-ops是内核通用的半虚拟化接口.

Paravirtualization layer for spinlocks
CONFIG_PARAVIRT_SPINLOCKS

半虚拟化的自旋锁支持.开启以后运行在虚拟机里的内核速度会加快,可是运行在物理CPU上的宿主内核运行效率会下降(最多可能会下降5%).请根据实际状况选择.

Xen guest support
CONFIG_XEN

Xen半虚拟化技术支持

Enable Xen debug and tuning parameters in debugfs
CONFIG_XEN_DEBUG_FS

Xendebugfs中输出各类统计信息和调整选项.对性能有严重影响.仅供调试.

KVM Guest support (including kvmclock)
CONFIG_KVM_GUEST

KVM客户机支持(包括kvmclock).

Paravirtual steal time accounting
CONFIG_PARAVIRT_TIME_ACCOUNTING

容许进行更细粒度的 task steal time 统计.会形成性能的略微下降.仅在你确实须要的时候才开启.

Memtest
CONFIG_MEMTEST

为内核添加内存测试功能,也就是添加"memtest"内核引导参数以支持对内存进行"体检".仅在你确实知道这是什么东西而且确实须要的时候再开启.不然请关闭.

Processor family

处理器系列,请按照你实际使用的CPU选择."Generic-x86-64"表示通用于全部x86-64平台,不针对特定类型的CPU进行优化.

Supported processor vendors
CONFIG_PROCESSOR_SELECT

支持的CPU厂商,按实际状况选择.

Enable DMI scanning
CONFIG_DMI

容许扫描DMI(Desktop Management Interface)/SMBIOS(System Management BIOS)得到机器的硬件配置,从而对已知的bug bios进行规避.具体涉及到哪些机器可参见"drivers/acpi/blacklist.c"文件.除非肯定你的机器没有bug,不然请开启此项.

GART IOMMU support
CONFIG_GART_IOMMU

GART IOMMU 支持. 图形地址重映射表(Graphics Address Remapping Table)能够将物理地址不连续的系统内存映射成看上去连续的图形内存交给GPU使用,是一种挖CPU内存补GPU内存机制,这种机制也能够被认为是一种"IOMMU"(缺少地址空间隔离和访问控制).开启此选项之后,在内存大于3G的系统上,传统的32位总线(PCI/AGP)的设备将能够使用彻底DMA的方式直接访问本来超出32位寻址范围以外的系统内存区域.具体方法是:经过编程让设备在受GART控制的显存区域工做,而后使用GART将这个地址映射为真实的物理地址(4GB以上)来实现的.USB/声卡/IDE/SATA之类的设备经常须要它.开启此选项以后,除非同时开启了CONFIG_IOMMU_DEBUG选项或者使用了"iommu=force"内核引导参数,不然此特性仅在条件知足的状况下(内存足够大且确有支持GART的设备)激活.建议内存大于3G的系统上选"Y".

IBM Calgary IOMMU support
CONFIG_CALGARY_IOMMU

IBM xSeries/pSeries 系列服务器的 Calgary IOMMU 支持.

Should Calgary be enabled by default?
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT

开启此选项表示默认启用Calgary特性,关闭此选项表示默认禁用Calgary特性(能够使用"iommu=calgary"内核引导参数开启).

Enable Maximum number of SMP Processors and NUMA Nodes
CONFIG_MAXSMP

让内核支持x86_64平台所能支持的最大SMP处理器数量和最大NUMA节点数量.主要用于调试目的.

Maximum number of CPUs
CONFIG_NR_CPUS

支持的最大CPU数量,每一个CPU要占8KB的内核镜像,最小有效值是"2",最大有效值是"512".注意:对于多核CPU而言,每一个核算一个.

SMT (Hyperthreading) scheduler support
CONFIG_SCHED_SMT

Intel超线程技术(HyperThreading)支持.

Multi-core scheduler support
CONFIG_SCHED_MC

针对多核CPU进行调度策略优化

Preemption Model

内核抢占模式

No Forced Preemption (Server)
CONFIG_PREEMPT_NONE

禁止内核抢占,这是Linux的传统模式,能够获得最大的吞吐量,适合服务器和科学计算环境

Voluntary Kernel Preemption (Desktop)
CONFIG_PREEMPT_VOLUNTARY

自愿内核抢占,经过在内核中设置明确的抢占点以容许明确的内核抢占,能够提升响应速度,可是对吞吐量有不利影响.适合普通桌面环境的

Preemptible Kernel (Low-Latency Desktop)
CONFIG_PREEMPT

主动内核抢占,容许抢占全部内核代码,对吞吐量有更大影响,适合须要运行实时程序的场合或者追求最快响应速度的桌面环境.

Reroute for broken boot IRQs
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS

这是一个对某些芯片组bug(在某些状况下会发送多余的"boot IRQ")的修复功能.开启此选项以后,仅对有此bug的芯片组生效.要检查哪些芯片组有此bug能够查看"drivers/pci/quirks.c"文件中的"quirk_reroute_to_boot_interrupts_intel"函数.

Machine Check / overheating reporting
CONFIG_X86_MCE

MCE(Machine Check Exception)支持.CPU检测到硬件故障(过热/数据错误)时通知内核,以便内核采起相应的措施(如显示一条提示信息或关机等).更多信息能够"man mcelog"看看.能够经过"grep mce /proc/cpuinfo"检查CPU是否支持此特性,若支持建议选中,不然请关闭.固然,若是你对本身的硬件质量很放心,又是桌面系统的话,不选也无所谓.

Intel MCE features
CONFIG_X86_MCE_INTEL

Intel CPU 支持

AMD MCE features
CONFIG_X86_MCE_AMD

AMD CPU 支持

Machine check injector support
CONFIG_X86_MCE_INJECT

MCE注入支持,仅用于调试

Dell laptop support
CONFIG_I8K

Dell Inspiron 8000 笔记本的 System Management Mode 驱动(i8k).该驱动能够读取CPU温度和风扇转速,进而帮助上层工具控制风扇转速.该驱动仅针对 Dell Inspiron 8000 笔记本进行过测试,因此不保证必定能适用于其余型号的Dell笔记本.

CPU microcode loading support
CONFIG_MICROCODE

CPU微代码更新支持,建议选中.CPU的微代码更新就像是给CPU打补丁.好比在Gentoo,能够使用"emerge microcode-ctl"安装microcode-ctl服务,再把这个服务加入boot运行级便可在每次开机时自动更新CPU微代码.其余Linux系统能够参考这个帖子.

Intel microcode loading support
CONFIG_MICROCODE_INTEL

Intel CPU 微代码支持

AMD microcode loading support
CONFIG_MICROCODE_AMD

AMD CPU 微代码支持

Early load microcode
CONFIG_MICROCODE_INTEL_EARLY

支持从initrd镜像首部加载微代码,以便尽量早的更新CPU微代码.即便在initrd首部并未嵌入微代码也不会形成问题,因此"Y"是安全的.不过你真的须要吗?笔者认为你通常并不须要:)

/dev/cpu/*/msr - Model-specific register support
CONFIG_X86_MSR

/dev/cpu/*/msr 设备支持.也就是容许用户空间的特权进程(使用rdmsrwrmsr指令)访问x86MSR寄存器(Model-Specific Register).MSR的做用主要用于调试,程序执行跟踪,性能及状态监控,以及触发特定的CPU特性(CPU的不一样而不一样).msrtool工具能够转储出MSR的内容.不肯定的能够选"N".

/dev/cpu/*/cpuid - CPU information support
CONFIG_X86_CPUID

/dev/cpu/*/cpuid 设备支持.能够经过cpuid命令得到详细的CPU信息(CPUID).不肯定的能够选"N".

Enable 1GB pages for kernel pagetables
CONFIG_DIRECT_GBPAGES

容许内核页表使用大小为1GBHugepages并进行直线映射(linear mapping),须要高端CPU的支持(能够用"grep pdpe1gb /proc/cpuinfo"命令检查).这能够减少页表缓存(Translation Lookaside Buffer)的压力,从而提高系统的性能,这对于拥有海量内存而且运行某些特定应用(PosgreSQL,MySQL,Java,Memcached,KVM,Xen...)的系统来讲比较有意义.若是你的CPU支持,能够选"Y".

Numa Memory Allocation and Scheduler Support
CONFIG_NUMA

开启 NUMA(Non Uniform Memory Access) 支持.虽说集成了内存控制器的CPU都属于NUMA架构.但事实上,对于大多数只有一颗物理CPU的我的电脑而言,即便支持NUMA架构,也不必开启此特性.能够参考SMP/NUMA/MPP体系结构对比.此外,对于不支持"虚拟NUMA","虚拟NUMA"被禁用的虚拟机(即便所在的物理机是NUMA系统),也应该关闭此项.

Old style AMD Opteron NUMA detection
CONFIG_AMD_NUMA

由于AMD使用一种旧式的方法读取NUMA配置信息(新式方法是CONFIG_X86_64_ACPI_NUMA),因此若是你使用的是AMD多核CPU,建议开启.不过,即便开启此选项,内核也会优先尝试CONFIG_X86_64_ACPI_NUMA方法,仅在失败后才会使用此方法,因此即便你不能肯定CPU的类型也能够安全的选中此项.

ACPI NUMA detection
CONFIG_X86_64_ACPI_NUMA

使用基于 ACPI SRAT(System Resource Affinity Table) 技术的NUMA节点探测方法.这也是检测NUMA节点信息的首选方法,建议选中.

NUMA emulation
CONFIG_NUMA_EMU

仅供开发调试使用

Maximum NUMA Nodes (as a power of 2)
CONFIG_NODES_SHIFT

容许的最大NUMA节点数.须要注意其计算方法:最大容许节点数=2CONFIG_NODES_SHIFT.也就是说这里设置的值会被当作2的指数使用.取值范围是[1,10],也就最多容许1024个节点.

Memory model

内存模式."Sparse Memory"主要用来支持内存热插拔,相比其余两个旧有的内存模式,代码复杂性也比较低,并且还拥有一些性能上的优点,对某些架构而言是惟一的可选项.其余两个旧有的内存模式是:"Discontiguous Memory""Flat Memory".

Sparse Memory virtual memmap
CONFIG_SPARSEMEM_VMEMMAP

对于64CPU而言,开启此选项能够简化pfn_to_page/page_to_pfn的操做,从而提升内核的运行效率.可是在32位平台则建议关闭.更多细节能够参考这个帖子.

Enable to assign a node which has only movable memory
CONFIG_MOVABLE_NODE

容许对一个完整的NUMA节点(CPU和对应的内存)进行热插拔.通常的服务器和我的电脑不须要这么高级的特性.

Allow for memory hot-add
CONFIG_MEMORY_HOTPLUG

支持向运行中的系统添加内存.也就是内存热插支持.

Allow for memory hot remove
CONFIG_MEMORY_HOTREMOVE

支持从运行中的系统移除内存.也就是内存热拔支持.

Allow for balloon memory compaction/migration
CONFIG_BALLOON_COMPACTION

容许 balloon memory 压缩/迁移.内存的Ballooning技术是指虚拟机在运行时动态地调整它所占用的宿主机内存资源,该技术在节约内存和灵活分配内存方面有明显的优点,目前全部主流虚拟化方案都支持这项技术(前提是客户机操做系统中必须安装有相应的balloon驱动).因为内存的动态增长和减小会致使内存过分碎片化,特别是对于2M尺寸的连续大内存页来讲更加严重,从而严重下降内存性能.容许balloon内存压缩和迁移能够很好的解决在客户机中使用大内存页时内存过分碎片化问题.若是你打算在虚拟机中使用大内存页(huge page),那么建议开启,不然建议关闭.

Allow for memory compaction
CONFIG_COMPACTION

容许对大内存页(huge pages)进行压缩.主要是为了解决大内存页的碎片问题.建议在使用大内存页的状况下开启此项,不然建议关闭.

Page migration
CONFIG_MIGRATION

容许在保持虚拟内存页地址不变的状况下移动其所对应的物理内存页的位置.这主要是为了解决两个问题:(1)NUMA系统上,将物理内存转移到相应的节点上,以加快CPU与内存之间的访问速度.(2)在分配大内存页的时候,能够避免碎片问题.

Enable bounce buffers
CONFIG_BOUNCE

为那些不能直接访问全部内存范围的驱动程序开启bounce buffer支持.CONFIG_ZONE_DMA被开启后,这个选项会被默认开启(固然,你也能够在这里手动关闭).这主要是为了那些不具有IOMMU功能的PCI/ISA设备而设,但它对性能有些不利影响.在支持IOMMU的设备上,应该关闭它而是用IOMMU来代替.

Enable KSM for page merging
CONFIG_KSM

KSM(Kernel Samepage Merging)支持:周期性的扫描那些被应用程序标记为"可合并"的地址空间,一旦发现有内容彻底相同的页面,就将它们合并为同一个页面,这样就能够节约内存的使用,但对性能有不利影响.推荐和内核虚拟机KVM(Documentation/vm/ksm.txt)或者其余支持"MADV_MERGEABLE"特性的应用程序一块儿使用.KSM并不默认开启,仅在应用程序设置了"MADV_MERGEABLE"标记,而且 /sys/kernel/mm/ksm/run 被设为"1"的状况下才会生效.

Low address space to protect from user allocation
CONFIG_DEFAULT_MMAP_MIN_ADDR

2009,内核曾经爆过一个严重的NULL指针漏洞,因为其根源是将NULL指针映射到地址"0"所致,因此从2.6.32版本之后,为了防止此类漏洞再次形成严重后果,特别设置了此选项,用于指定受保护的内存低端地址范围(能够在系统运行时经过 /proc/sys/vm/mmap_min_addr进行调整),这个范围内的地址禁止任何用户态程序的写入,以从根本上堵死此类漏洞可能对系统形成的损害.但内核这种强加的限制,对于须要使用vm86系统调用(用于在保护模式的进程中模拟8086的实模式)或者须要映射此低端地址空间的程序(bitbake,dosemu,qemu,wine,...)来讲,则会形成不兼容,不过目前这些程序的新版本都进行了改进,以适应内核的这种保护.通常状况下,"4096"是个明智的选择,或者你也能够保持默认值.

Enable recovery from hardware memory errors
CONFIG_MEMORY_FAILURE

在具有MCA(Machine Check Architecture)恢复机制的系统上,容许内核在物理内存中的发生数据错误的状况下,依然坚强的纠正错误并恢复正常运行.这须要有相应的硬件(一般是ECC内存)支持.ECC内存的选,没有的就别选了.

HWPoison pages injector
CONFIG_HWPOISON_INJECT

仅用于调试.

Transparent Hugepage Support
CONFIG_TRANSPARENT_HUGEPAGE

大多数现代计算机体系结构都支持多种不一样的内存页面大小(好比x86_64支持4K2M以及1G[须要cpu-flags中含有"pdpe1gb"]).大于4K的内存页被称为"大页"(Hugepage).TLB(页表缓存)是位于CPU内部的分页表(虚拟地址到物理地址的映射表)缓冲区,既高速又很宝贵(尺寸很小).若是系统内存很大(大于4G)又使用4K的内存页,那么分页表将会变得很大而难以在CPU内缓存,从而致使较高的TLB不命中几率,进而下降系统的运行效率.开启大内存页支持以后,就能够使用大页(2M1G),从而大大缩小分页表的尺寸以大幅提升TLB的命中率,进而优化系统性能.传统上使用大内存页的方法是经过Hugetlbfs虚拟文件系统(CONFIG_HUGETLBFS),可是hugetlbfs须要专门进行配置以及应用程序的特别支持.因此从2.6.38版本开始引入了THP(Transparent Hugepages),目标是替代先前的Hugetlbfs虚拟文件系统(CONFIG_HUGETLBFS).THP容许内核在可能的条件下,透明的(对应用程序来讲)使用大页(huge pages)HugeTLB,THP不像hugetlbfs那样须要专门进行配置以及应用程序的特别支持.THP将这一切都交给操做系统来完成,也再也不须要额外的配置,对于应用程序彻底透明,于是可用于更普遍的应用程序.这对于数据库/KVM等须要使用大量内存的应用来讲,能够提高其效能,但对于内存较小(4G或更少)的我的PC来讲就没啥必要了.详见"Documentation/vm/transhuge.txt"文档.

Transparent Hugepage Support sysfs defaults

设置 /sys/kernel/mm/transparent_hugepage/enabled 文件的默认值."always"表示老是对全部应用程序启用透明大内存页支持,"madvise"表示仅对明确要求该特性的程序启用.建议选"always".

Cross Memory Support
CONFIG_CROSS_MEMORY_ATTACH

交叉内存支持,也就是process_vm_readv()process_vm_writev()系统调用支持.从而容许有权限的进程直接读取/写入另一个进程的地址空间.如今它们只用于openMPI快速进程通讯,也能够用于调试程序.将来也许还会有其余用途.

Enable cleancache driver to cache clean pages if tmem is present
CONFIG_CLEANCACHE

Cleancache能够被看做是内存页的"Victim Cache"(受害者缓存),当回收内存页时,先不把它清空,而是把其加入到内核不能直接访问的"transcendent memory",这样支持Cleancache的文件系统再次访问这个页时能够直接从"transcendent memory"加载它,从而减小磁盘IO的损耗.目前只有zcacheXEN支持"transcendent memory",不过未来会有愈来愈多的应用支持.开启此项后即便此特性不能获得利用,也仅对性能有微小的影响,因此建议开启.更多细节请参考"Documentation/vm/cleancache.txt"文件.

Enable frontswap to cache swap pages if tmem is present
CONFIG_FRONTSWAP

Frontswap是和Cleancache很是相似的东西,在传统的swap前加一道内存缓冲(一样位于"transcendent memory").目的也是减小swap时的磁盘读写.建议开启.

Check for low memory corruption
CONFIG_X86_CHECK_BIOS_CORRUPTION

低位内存脏数据检查,即便开启此选项,默认也不会开启此功能(须要明确使用"memory_corruption_check=1"内核引导选项).这些脏数据一般被认为是有bugBIOS引发的,默认每60(能够经过memory_corruption_check_period内核参数进行调整)扫描一次0-64k(能够经过memory_corruption_check_size内核参数进行调整)之间的区域.这种检查所占用的开销很是小,基本能够忽略不计.若是始终检查到错误,则能够经过"memmap="内核引导参数来避免使用这段内存.通常不必选中,若是你对BIOS不放心,带着它试运行一段时间,确认没问题以后再去掉.

Set the default setting of memory_corruption_check
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK

设置memory_corruption_check的默认值,选中表示默认开启(至关于使用"memory_corruption_check=1"内核引导选项),不选中表示默认关闭.

Amount of low memory, in kilobytes, to reserve for the BIOS
CONFIG_X86_RESERVE_LOW

BIOS设置保留的低端地址(默认是64K).内存的第一页(4K)存放的一定是BIOS数据,内核不能使用,因此必需要保留.可是有许多BIOS还会在suspend/resume/热插拔等事件发生的时候使用更多的页(通常在0-64K范围),因此默认保留0-64K范围.若是你肯定本身的BIOS不会越界使用内存的话,能够设为"4",不然请保持默认值.可是也有一些很奇葩的BIOS会使用更多的低位内存,这种状况下能够考虑设为"640"以保留全部640K的低位内存区域.

MTRR (Memory Type Range Register) support
CONFIG_MTRR

MTRR(Memory type range registers)CPU内的一组MSR(Model-specific registers),其做用是告诉CPU以哪一种模式(write-back/uncachable)存取各内存区段效率最高.这对于AGP/PCI显卡意义重大,由于write-combining技术能够将若干个总线写传输捆绑成一次较大的写传输操做,能够将图像写操做的性能提升2.5倍或者更多.这段代码有着通用的接口,其余CPU的寄存器一样可以使用该功能.简而言之,开启此选项是个明智的选择.

MTRR cleanup support
CONFIG_MTRR_SANITIZER

MTRR cleanup的意思是将MTRR的连续输出转为离散的输出,这样X驱动就能够在其中添加writeback,算是一种优化措施.建议开启.能够使用"mtrr_chunk_size"来限制最大的连续块尺寸.

MTRR cleanup enable value (0-1)
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT

"1"表示默认开启CONFIG_MTRR_SANITIZER特性,至关于使用"enable_mtrr_cleanup","0"表示默认关闭CONFIG_MTRR_SANITIZER特性,至关于使用"disable_mtrr_cleanup".建议设为"1".

MTRR cleanup spare reg num (0-7)
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT

这里设定的值等价于使用内核引导参数"mtrr_spare_reg_nr=N"中的"N".也就是告诉内核reg0N能够被清理或改写(参见"/proc/mtrr"文件).在多数状况下默认值是"1",其含义是 /proc/mtrr 中的 reg01 将会被映射.通常保持其默认值便可.修改此项的值一般是为了解决某些MTRR故障.

x86 PAT support
CONFIG_X86_PAT

PAT(Page Attribute Table)是对MTRR的补充,且比MTRR更灵活.若是你的CPU支持PAT(grep pat /proc/cpuinfo),那么建议开启.仅在开启后致使没法正常启动或者显卡驱动不能正常工做的状况下才须要关闭.

x86 architectural random number generator
CONFIG_ARCH_RANDOM

Intel  Ivy Bridge 微架构开始(对于Atom来讲是从Silvermont开始),CPU中集成了一个高效的硬件随机数生成器(称为"Bull Mountain"技术),并引入了一个新的x86指令"RDRAND",能够很是高效的产生随机数.此选项就是对此特性的支持.

Supervisor Mode Access Prevention
CONFIG_X86_SMAP

SMAP(Supervisor Mode Access Prevention)IntelHaswell微架构开始引入的一种新特征,它在CR4寄存器上引入一个新标志位SMAP,若是这个标志为1,内核访问用户进程的地址空间时就会触发一个页错误,目的是为了防止内核由于自身错误意外访问用户空间,这样就能够避免一些内核漏洞所致使的安全问题.可是因为内核在有些时候仍然须要访问用户空间,所以intel提供了两条指令STACCLAC用于临时打开/关闭这个功能,反复使用STACCLAC会带来一些轻微的性能损失,但考虑到增长的安全性,仍是建议开启.

EFI runtime service support
CONFIG_EFI

EFI/UEFI支持.若是你打算UEFI/EFI平台上安装Linux(2009年以后的机器基本都已是UEFI规格了),那么就必须开启此项(开启后也依然能够在传统的BIOS机器上启动).UEFI启动流程与传统的BIOS相差很大.虽然Linux受到了所谓"安全启动"问题的阻挠(已经解决),可是UEFI依然将迅速一统江湖.[提示]UEFI平台上安装Linux的关键之一是首先要用一个支持UEFI启动的LiveCDUEFI模式启动机器.

EFI stub support
CONFIG_EFI_STUB

EFI stub 支持.若是开启此项,就能够不经过GRUB2之类的引导程序来加载内核,而直接由EFI固件进行加载,这样就能够没必要安装引导程序了.不过这是一个看上去很美的特性,因为EFI固件只是简单的加载内核并运行,因此缺点有三:(1)不能在传统的BIOS机器上启动.(2)不能给内核传递引导参数.(3)不能使用intrd.不过,针对后两点的解决办法是:使用CONFIG_CMDLINECONFIG_INITRAMFS_SOURCE.更多细节可参考"Documentation/x86/efi-stub.txt"文档.

Enable seccomp to safely compute untrusted bytecode
CONFIG_SECCOMP

容许使用SECCOMP技术安全地运算非信任代码.经过使用管道或其余进程可用的通讯方式做为文件描述符(支持读/写调用),就能够利用SECCOMP把这些应用程序隔离在它们本身的地址空间.这是一种有效的安全沙盒技术.除非你是嵌入式系统,不然不要关闭.

Enable -fstack-protector buffer overflow detection
CONFIG_CC_STACKPROTECTOR

开启GCC"-fstack-protector"命令行选项,以使用GCC中的编译器堆栈保护技术.这样能够有效的防护以堆栈溢出为表明的缓冲区溢出攻击,不过系统的运行速度也会受到一些影响.服务器之类强调安全的场合建议开启,我的PC之类的就不是颇有必要了.

Timer frequency

内核时钟频率.对于要求快速响应的场合,好比桌面环境,建议使用1000Hz,而对于不须要快速响应的SMP/NUMA服务器,建议使用250Hz100Hz300Hz(主要处理多媒体数据).

kexec system call
CONFIG_KEXEC

提供kexec系统调用,能够没必要重启而切换到另外一个内核(不必定必须是Linux内核),不过这个特性并不老是那么可靠.若是你不肯定是否须要它,那么就是不须要.

kernel crash dumps
CONFIG_CRASH_DUMP

当内核崩溃时自动导出运行时信息的功能,主要用于调试目的.更多信息请参考"Documentation/kdump/kdump.txt"文件.

kexec jump
CONFIG_KEXEC_JUMP

kexec jump 支持.这是对CONFIG_KEXEC的加强功能,仅在你确实明白这是干啥的状况下再开启,不然请关闭.

Physical address where the kernel is loaded
CONFIG_PHYSICAL_START

加载内核的物理地址.若是内核不是可重定位的(CONFIG_RELOCATABLE=n),那么bzImage会将本身解压到该物理地址并今后地址开始运行,不然,bzImage将忽略此处设置的值,而从引导装载程序将其装入的物理地址开始运行.仅在你确实知道本身是在干什么的状况下才能够改变该值,不然请保持默认.

Build a relocatable kernel
CONFIG_RELOCATABLE

使内核能够在浮动的物理内存位置加载,主要用于调试目的.仅在你确实知道为何须要的时候再开启,不然请关闭.

Support for hot-pluggable CPUs
CONFIG_HOTPLUG_CPU

热插拔CPU支持(经过 /sys/devices/system/cpu 进行控制).

Set default setting of cpu0_hotpluggable
CONFIG_BOOTPARAM_HOTPLUG_CPU0

开启/关闭此项的意思是设置"cpu0_hotpluggable"的默认值为"on/off".开启此项表示默认将CPU0设置为容许热插拔.

Debug CPU0 hotplug
CONFIG_DEBUG_HOTPLUG_CPU0

仅用于调试目的.

Compat VDSO support
CONFIG_COMPAT_VDSO

是否将VDSO(Virtual Dynamic Shared Object)映射到旧式的肯定性地址.若是Glibc版本大于等于2.3.3"N",不然就选"Y".

Built-in kernel command line
CONFIG_CMDLINE_BOOL

将内核引导参数直接编进来.在没法向内核传递引导参数的状况下(好比在嵌入式系统上,或者想使用 EFI stub kernel),这就是惟一的救命稻草了.若是你使用grub之类的引导管理器,那么就能够不须要此特性.

Built-in kernel command string
CONFIG_CMDLINE

将要编译进内核的引导参数字符串.

Built-in command line overrides boot loader arguments
CONFIG_CMDLINE_OVERRIDE

开启此项表示彻底忽略引导加载器传递过来的参数,并仅仅只使用CONFIG_CMDLINE所指定的参数.一般状况下建议关闭此项,除非你肯定引导加载器在传递内核引导参数的时候不能正常工做.

Power management and ACPI options电源管理和ACPI选项

Suspend to RAM and standby
CONFIG_SUSPEND

"休眠到内存"(ACPI S3)支持.也就是系统休眠后,除了内存以外,其余全部部件都中止工做,重开机以后能够直接从内存中恢复运行状态.要使用此功能,你须要执行"echo mem > /sys/power/state"命令,还须要在BIOS中开启S3支持,不然可能会有问题.

Enable freezer for suspend to RAM/standby
CONFIG_SUSPEND_FREEZER

"Y".除非你知道本身在作什么

Hibernation (aka 'suspend to disk')
CONFIG_HIBERNATION

"休眠到硬盘"(ACPI S4)支持.也就是将内存的内容保存到硬盘(hibernation),全部部件全都中止工做.要使用此功能,你首先须要使用内核引导参数"resume=/dev/swappartition",而后执行"echo disk > /sys/power/state"命令.若是你不想从先前的休眠状态中恢复,那么能够使用"noresume"内核引导参数.更多信息,能够参考"Documentation/power/swsusp.txt"文件.

Default resume partition
CONFIG_PM_STD_PARTITION

默认的休眠分区.这个分区必须是swap分区.不过这里设置的值会被明确的内核引导参数中的值覆盖.

Opportunistic sleep
CONFIG_PM_AUTOSLEEP

这是一种从安卓借鉴过来的休眠方式.这个特性在安卓系统上被称为"suspend blockers""wakelocks".这是一种更激进的电源管理模式,以尽量节约电力为目的.系统默认就处于休眠状态,仅为内存和少数唤醒系统所必须的设备供电,当有任务(唤醒源)须要运行的时候才唤醒相关组件工做,工做完成后又当即进入休眠状态.不过这些特性须要相应的设备驱动程序的支持.目前除了安卓设备,PC和服务器领域,可以利用此特性的驱动还比较少,不过这是一项很是有前途的电源技术,喜欢尝鲜的能够考虑开启.

User space wakeup sources interface
CONFIG_PM_WAKELOCKS

容许用户空间的程序经过sys文件系统接口,建立/激活/撤销系统的"唤醒源".须要与CONFIG_PM_AUTOSLEEP配合使用.

Maximum number of user space wakeup sources (0 = no limit)
CONFIG_PM_WAKELOCKS_LIMIT

用户空间程序容许使用的"唤醒源"数量,"0"表示无限,最大值是"100000".

Garbage collector for user space wakeup sources
CONFIG_PM_WAKELOCKS_GC

"唤醒源"对象使用垃圾回收.主要用于调试目的和Android环境.

Run-time PM core functionality
CONFIG_PM_RUNTIME

容许IO设备(好比硬盘/网卡/声卡)在系统运行时进入省电模式,并可在收到(硬件或驱动产生的)唤醒信号后恢复正常.此功能一般须要硬件的支持.建议在笔记本/嵌入式等须要节约电力的设备上选"Y".

Power Management Debug Support
CONFIG_PM_DEBUG

仅供调试使用

ACPI (Advanced Configuration and Power Interface) Support
CONFIG_ACPI

高级配置与电源接口(Advanced Configuration and Power Interface)包括了软件和硬件方面的规范,目前已被软硬件厂商普遍支持,而且取代了许多过去的配置与电源管理接口,包括 PnP BIOS (Plug-and-Play BIOS), MPS(CONFIG_X86_MPPARSE), APM(Advanced Power Management) .总之,ACPI已经成为x86平台必不可少的组件,若是你没有特别的理由,务必选中此项.

Deprecated /proc/acpi files
CONFIG_ACPI_PROCFS

过期的 /proc/acpi 接口支持,建议关闭.

Deprecated power /proc/acpi directories
CONFIG_ACPI_PROCFS_POWER

过期的 /proc/acpi 接口支持,建议关闭.

EC read/write access through /sys/kernel/debug/ec
CONFIG_ACPI_EC_DEBUGFS

仅供调试使用.

Deprecated /proc/acpi/event support
CONFIG_ACPI_PROC_EVENT

过期的 /proc/acpi/event 接口支持,建议关闭.

AC Adapter
CONFIG_ACPI_AC

容许在外接交流电源和内置电池之间进行切换.

Battery
CONFIG_ACPI_BATTERY

容许经过 /proc/acpi/battery 接口查看电池信息.

Button
CONFIG_ACPI_BUTTON

容许守护进程经过 /proc/acpi/event 接口捕获power/sleep/lid(合上笔记本)按钮事件,并执行相应的动做,软关机(poweroff)也须要它的支持.

Video
CONFIG_ACPI_VIDEO

对主板上的集成显卡提供ACPI支持.注意:仅支持集成显卡.

Fan
CONFIG_ACPI_FAN

容许用户层的程序对风扇进行控制(//查询状态)

Dock
CONFIG_ACPI_DOCK

支持兼容ACPI规范的扩展坞(好比 IBM Ultrabay Dell Module Bay)支持.

Processor
CONFIG_ACPI_PROCESSOR

在支持 ACPI C2/C3 CPU,ACPI安装为idle处理程序.有几种CPU频率调节驱动依赖于它.并且目前的CPU都已经支持ACPI规范,建议开启此项.

IPMI
CONFIG_ACPI_IPMI

容许ACPI使用IPMI(智能平台管理接口)的请求/应答消息访问BMC(主板管理控制器).IPMI一般出如今服务器中,以容许经过诸如ipmitool这样的工具监视服务器的物理健康特征(温度/电压/风扇状态/电源状态).

Processor Aggregator
CONFIG_ACPI_PROCESSOR_AGGREGATOR

支持 ACPI 4.0 加入的处理器聚合器(processor Aggregator)功能,以容许操做系统对系统中全部的CPU进行统一的配置和控制.目前只支持逻辑处理器idling功能,其目标是下降耗电量.

Thermal Zone
CONFIG_ACPI_THERMAL

ACPI thermal zone 支持.系统温度太高时能够及时调整工做状态以免你的CPU被烧毁.目前全部CPU都支持此特性.务必开启.参见CONFIG_THERMAL选项.

NUMA support
CONFIG_ACPI_NUMA

经过读取系统固件中的ACPI,得到NUMA系统的CPU及物理内存分布信息.NUMA系统必选.

Custom DSDT Table file to include
CONFIG_ACPI_CUSTOM_DSDT_FILE

容许将一个定制过的DSDT编译进内核.详情参见"Documentation/acpi/dsdt-override.txt"文档.看不懂的请保持空白.

ACPI tables override via initrd
CONFIG_ACPI_INITRD_TABLE_OVERRIDE

容许initrd更改 ACPI tables 中的任意内容. ACPI tables BIOS提供给OS的硬件配置数据,包括系统硬件的电源管理和配置管理.详情参见"Documentation/acpi/initrd_table_override.txt"文件.

Debug Statements
CONFIG_ACPI_DEBUG

详细的ACPI调试信息,不搞开发就别选.

PCI slot detection driver
CONFIG_ACPI_PCI_SLOT

将每一个PCI插槽都做为一个单独的条目列在 /sys/bus/pci/slots/ 目录中,有助于将设备的物理插槽位置与逻辑的PCI总线地址进行对应.不肯定的选"No".

Power Management Timer Support
CONFIG_X86_PM_TIMER

ACPI PM Timer,简称"ACPI Timer",是一种集成在主板上的硬件时钟发生器,提供3.579545MHz固定频率.这是比较传统的硬件时钟发生器(HPET则是比较新型的硬件时钟发生器),目前全部的主板都支持,并且是ACPI规范不可分割的部分.除非你肯定不须要,不然必选.

Container and Module Devices
CONFIG_ACPI_CONTAINER

支持 NUMA节点/CPU/内存 的热插拔. Device ID: ACPI0004, PNP0A05, PNP0A06

Memory Hotplug
CONFIG_ACPI_HOTPLUG_MEMORY

内存热插拔支持. Device ID: PNP0C80

Smart Battery System
CONFIG_ACPI_SBS

智能电池系统(Smart Battery System)可让笔记型电脑显示及管理详细精确的电池状态信息.使用锂电池的笔记本电脑必备利器.但遗憾的是并非全部笔记本都支持这项特性.

Hardware Error Device
CONFIG_ACPI_HED

Hardware Error Device (Device ID: PNP0C33) 可以经过 SCI 报告一些硬件错误(一般是已经被纠正的错误).若是你的系统中有设备ID"PNP0C33"的设备(好比某些Intel芯片组),那么就选上.

Allow ACPI methods to be inserted/replaced at run time
CONFIG_ACPI_CUSTOM_METHOD

容许在不断电的状况下直接对ACPI的功能进行删改,包含必定危险性,它容许root任意修改内存中内核空间的内容.仅用于调试.

Boottime Graphics Resource Table support
CONFIG_ACPI_BGRT

/sys/firmware/acpi/bgrt/ 中显示 ACPI Boottime Graphics Resource Table ,以容许操做系统获取固件中的启动画面(splash).

ACPI Platform Error Interface (APEI)
CONFIG_ACPI_APEI

高级平台错误接口(ACPI Platform Error Interface)RAS(Reliability, Availability and Serviceability)的一部分,是定义在 ACPI 4.0 规范中的一个面向硬件错误管理的接口,主要是为了统一 firmware/BIOS OS 之间的错误交互机制,使用标准的错误接口进行管理,同时也扩展了错误接口的内容以便实现更加灵活丰富的功能.

APEI Generic Hardware Error Source
CONFIG_ACPI_APEI_GHES

"Firmware First Mode"支持.因为BIOS/FIRMWARE是平台相关的,所以BIOS/FIRMWAREOS更清楚硬件平台的配置状况,甚至包含各类必须的修正/定制/优化.这样,"Firmware First"模式下,BIOS/FIRMWARE利用这一优点,能够有针对性的对发生的硬件错误进行分析/处理/分发,也能够更准确的记录错误的现场信息.这样,不但对硬件错误能够作出更准确,更复杂的处理,并且能够下降OS的复杂性和冗余度.建议开启.

APEI PCIe AER logging/recovering support
CONFIG_ACPI_APEI_PCIEAER

PCIe AER errors 首先经过 APEI firmware 进行报告.

APEI memory error recovering support
CONFIG_ACPI_APEI_MEMORY_FAILURE

Memory errors 首先经过 APEI firmware 进行报告.

APEI Error INJection (EINJ)
CONFIG_ACPI_APEI_EINJ

仅供调试使用.

APEI Error Record Serialization Table (ERST) Debug Support
CONFIG_ACPI_APEI_ERST_DEBUG

仅供调试使用

SFI (Simple Firmware Interface) Support
CONFIG_SFI

简单固件接口规范(Simple Firmware Interface)使用一种轻量级的简单方法(经过内存中的一张静态表格)firmware向操做系统传递信息.目前这个规范仅用于第二代 Intel Atom 平台,其核心名称是"Moorestown".

CPU Frequency scaling
CONFIG_CPU_FREQ

CPUfreq子系统容许动态改变CPU主频,达到省电和降温的目的.现现在的CPU都已经支持动态频率调整,建议开启.不过,若是你是为虚拟机编译内核,就没有必要开启了,由宿主机内核去控制就OK.

CPU frequency translation statistics
CONFIG_CPU_FREQ_STAT

经过sysfs文件系统输出CPU频率变化的统计信息

CPU frequency translation statistics details
CONFIG_CPU_FREQ_STAT_DETAILS

输出更详细的CPU频率变化统计信息

Default CPUFreq governor

默认的CPU频率调节策略.不一样策略拥有不一样的调节效果.

'performance' governor
CONFIG_CPU_FREQ_GOV_PERFORMANCE

'性能'优先,静态的将频率设置为cpu支持的最高频率

'powersave' governor
CONFIG_CPU_FREQ_GOV_POWERSAVE

'节能'优先,静态的将频率设置为cpu支持的最低频率

'userspace' governor for userspace frequency scaling
CONFIG_CPU_FREQ_GOV_USERSPACE

既容许手动调整cpu频率,也容许用户空间的程序动态的调整cpu频率(须要额外的调频软件)

'ondemand' cpufreq policy governor
CONFIG_CPU_FREQ_GOV_ONDEMAND

'当即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不须要额外的调频软件),适合台式机

'conservative' cpufreq governor
CONFIG_CPU_FREQ_GOV_CONSERVATIVE

'保守','ondemand'类似,可是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/x86_64环境

x86 CPU frequency scaling drivers

CPU频率调节器驱动

Intel P state control
CONFIG_X86_INTEL_PSTATE

Intel CPU P-state 驱动,面向"Sandy Bridge"/"Ivy Bridge"/"Haswell"或更新的CPU微架构,能够更好的支持"Turbo Boost 2.0"技术.

Processor Clocking Control interface driver
CONFIG_X86_PCC_CPUFREQ

PCC(Processor Clocking Control)接口支持.此种接口仅对某些HP Proliant系列服务器有意义.更多细节能够参考"Documentation/cpu-freq/pcc-cpufreq.txt"文件.

ACPI Processor P-States driver
CONFIG_X86_ACPI_CPUFREQ

这是首选的驱动(CONFIG_X86_INTEL_PSTATE也依赖于它),同时支持IntelAMDCPU.除非你的CPU实在太老,不然必选.

Legacy cpb sysfs knob support for AMD CPUs
CONFIG_X86_ACPI_CPUFREQ_CPB

为了兼容旧的用户空间程序而设置,建议关闭.

AMD Opteron/Athlon64 PowerNow!
CONFIG_X86_POWERNOW_K8

过期的驱动,仅为老旧的K8核心的AMD处理器提供支持.K10以及更新的CPU应该使用CONFIG_X86_ACPI_CPUFREQ驱动.

AMD frequency sensitivity feedback powersave bias
CONFIG_X86_AMD_FREQ_SENSITIVITY

若是你使用 AMD Family 16h 或者更高级别的处理器,同时又使用"ondemand"频率调节器,开启此项能够更有效的进行频率调节(在保证性能的前提下更节能).

Intel Enhanced SpeedStep (deprecated)
CONFIG_X86_SPEEDSTEP_CENTRINO

已被时代抛弃的驱动,仅对老旧的迅驰平台 Intel Pentium M 或者 Intel Xeons 处理器有意义.

Intel Pentium 4 clock modulation
CONFIG_X86_P4_CLOCKMOD

已被时代抛弃的驱动,仅对支持老旧的Speedstep技术的 Intel Pentium 4 / XEON 处理器有意义.并且即使是在这样的CPU,由于种种兼容性问题可能致使的不稳定,也不建议开启.

CPU idle PM support
CONFIG_CPU_IDLE

CPU idle 指令支持,该指令可让CPU在空闲时"打盹"以节约电力和减小发热.只要是支持ACPICPU就应该开启.因为全部64CPU都已支持ACPI,因此没必要犹豫,开启![提示]为虚拟机编译的内核就没有必要开启了,由宿主机内核去控制就OK.

Support multiple cpuidle drivers
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS

容许CONFIG_CPU_IDLE为每一个不一样的CPU使用不一样的驱动.仅在你的系统由多个不一样型号的CPU组成,而且具备不一样的唤醒潜伏时间和状态的时候才须要开启.

Cpuidle Driver for Intel Processors
CONFIG_INTEL_IDLE

专用于Intel CPUcpuidle驱动.CONFIG_CPU_IDLE则是用于非IntelCPU.

Memory power savings

内存节能

Intel chipset idle memory power saving driver
CONFIG_I7300_IDLE

在某些具有内存节能特性的intel服务器芯片组上,让内存也能够在空闲时经过idle指令"打盹".这些芯片组必须具有 I/O AT 支持(例如 Intel 7300).同时内存也须要支持此特性.

Bus options (PCI etc.)总线选项PCI support
CONFIG_PCI

PCI是最重要的内部总线,不但PCIPCI Express设备依赖于它,并且USB/IDE/SATA/SCSI/火线(IEEE 1394)/PCMCIA/CardBus等各类内部和外部总线也都依赖于它.因此必须选"Y",除非你知道本身在干什么.

Support mmconfig PCI config space access
CONFIG_PCI_MMCONFIG

容许经过mmconfig方式访问PCI config space,这种访问方式比传统的IO方式速度更快.建议开启.MMCONFIG的意思是"Memory-Mapped config",它是PCI Express引入的新总线枚举方式.背景知识:PCI设备都有一组叫作'Configuration Space'的寄存器,PCI-E设备在PCI的基础上又增长了一组叫作'Extended Configuration Space'的寄存器.这些寄存器都被映射到了内存中(Memory-Mapped),操做系统理应提供相应的API供设备驱动和诊断程序访问这些'Configuration Space'.但若是操做系统没有提供Memory-Mapped方式的API的话,这些驱动程序和诊断程序就必须本身根据操做系统的底层规则(IO方式)去访问,这显然就增长了开发难度.这个选项的目的就是提供Memory-Mapped方式的API.

Read CNB20LE Host Bridge Windows
CONFIG_PCI_CNB20LE_QUIRK

CNB20LE芯片组PCI热插拔支持.除非你很是明确的知道你须要它,不然请关闭此项.

PCI Express support
CONFIG_PCIEPORTBUS

PCI ExpressPCI的升级版并在软件层与PCI兼容,其目标是统一电脑内部总线.基本上只要不是古董机,都早已支持PCI-E."Y".

PCI Express Hotplug driver
CONFIG_HOTPLUG_PCI_PCIE

若是你的主板和设备都支持PCI Express热插拔就能够选上.

Root Port Advanced Error Reporting support
CONFIG_PCIEAER

PCI Express Root Port Advanced Error Reporting (AER) 驱动支持.这样,发送到 Root Port Error reporting messages 就会由 PCI Express AER 处理.建议开启.背景知识:PCI Express 定义了两种错误报告范例:(1)baseline,全部PCI-E组件都必需要支持,功能也比较基础.(2)AER(Advanced Error Reporting),功能比较高级,也更可靠,但并不要求全部组件都支持.

PCI Express ECRC settings control
CONFIG_PCIE_ECRC

容许覆写firmware/bios设置的 PCI Express ECRC(端对端循环冗余校验).建议关闭,除非你确实知道为何要开启.

PCIe AER error injector support
CONFIG_PCIEAER_INJECT

容许 PCI-E AER 注入,仅用于测试目的.

PCI Express ASPM control
CONFIG_PCIEASPM

PCI Express ASPM(Active State Power Management)  Clock Power Management 支持.这是PCI-E规范制定的一种电源管理方案,能够在设备空闲时采用节电模式.建议开启.ASPM能够在运行时经过 /sys/module/pcie_aspm/parameters/policy 进行开启或关闭.

Debug PCI Express ASPM
CONFIG_PCIEASPM_DEBUG

仅供调试.

Default ASPM policy

默认的ASPM电源管理策略.下面的三个选项:"BIOS default"表示使用BIOS中的设置做为默认."Powersave"表示在可能的状况下,默认使用"L0s""L1",以尽量节约电力."Performance"表示禁止使用"L0s""L1"(即便BIOS开启也一样禁止),以保证最高性能.

Message Signaled Interrupts (MSI and MSI-X)
CONFIG_PCI_MSI

PCI/PCI-E支持三类中断:(1)INTx使用传统的IRQ中断,能够与现行的驱动程序和操做系统兼容.(2)MSIPCI2.2规范中新增的,经过写入特殊的内存地址来触发和发送中断,该种方式脱离了中断引脚带来的数目限制,而且延迟小/效率高.不过MSI方式将中断所有落在单个CPU,对多核CPU利用不佳.(3)MSI-X是在PCI3.0规范中新增的,MSI的基础上,支持更多的消息数量以及独立的消息地址,能够自动在多个CPU上分担中断,更适合多CPU系统.建议开启.开启后,也能够使用"pci=nomsi"内核引导参数关闭MSI特性.

PCI Debugging
CONFIG_PCI_DEBUG

PCI调试信息输出到系统日志里.若是你想诊断PCI设备的故障,能够开启,不然应该关闭.

Enable PCI resource re-allocation detection
CONFIG_PCI_REALLOC_ENABLE_AUTO

让内核自动检测"是否须要从新分配PCI资源".即便此项已开启,你依然能够用"pci=realloc=[on|off]"来覆盖它.此项仅在已开启CONFIG_PCI_IOV的状况下才有意义.此时,若是BIOS没有为SR-IOV(Single-Root I/O Virtualization) BAR(基地址寄存器)分配资源,那么内核将会自动对PCI资源进行从新分配.建议与CONFIG_PCI_IOV同开关.

PCI Stub driver
CONFIG_PCI_STUB

PCI Stub driver 的做用是将PCI设备跟目前绑定的驱动分离,暂时由其接管,最后再交给虚拟机本身去驱动这个PCI设备.

Xen PCI Frontend
CONFIG_XEN_PCIDEV_FRONTEND

若是你使用XEN的半虚拟化技术,而且你的硬件支持IOMMU,那么能够开启此项,不然应该关闭.

Interrupts on hypertransport devices
CONFIG_HT_IRQ

容许本地的HyperTransport设备使用中断.这个通常用于AMD平台,Intel平台不支持这个.

PCI IOV support
CONFIG_PCI_IOV

PCI I/O Virtualization支持.这须要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).

PCI PRI support
CONFIG_PCI_PRI

PCI Page Request Interface 支持.它容许IOMMU以后的设备可以从页错误中恢复过来.这须要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).

PCI PASID support
CONFIG_PCI_PASID

PASID(Process Address Space Identifiers)能够被PCI设备用来同时访问多个IO地址空间.这须要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).

PCI IO-APIC hotplug support
CONFIG_PCI_IOAPIC

PCI IO-APIC 热插拔支持.

ISA-style DMA support
CONFIG_ISA_DMA_API

ISA-style DMA控制器支持.目前基本只有LPC总线设备须要使用,最多见的是串口,并口,PS/2键盘,Super I/O芯片(能够使用Superiotoolsensors-detect工具检测).不肯定的选"Y".[说明]这是一个历史遗留问题,对于ISA架构,DMA操做是由一个专用的"DMA控制器"(最多见的是Intel 8237)来执行的,可是到了PCI架构,因为每个PCI设备均可以控制PCI总线(成为"bus master")并直接读写系统内存,因此"DMA控制器"又消失了.此选项只是为那些须要"ISA-DMA控制器"的设备提供了兼容性接口(API)而已.

PCCard (PCMCIA/CardBus) support
CONFIG_PCCARD

PCCard(PCMCIA/CardBus/ExpressCard)接口一般出如今笔记本电脑上,这些接口卡一般大小与信用卡差很少,厚度大约3-5毫米.注意:必需要配合pcmciautils工具才能正常使用PCMCIA设备.

16-bit PCMCIA support
CONFIG_PCMCIA

老旧的 16-bit PCMCIA 卡支持

Load CIS updates from userspace
CONFIG_PCMCIA_LOAD_CIS

有些PCMCIA卡须要从用户空间更新CIS(Card Information Structure)以后才能正常工做.开启此项后,内核将能够使用内置的固件加载器和热插拔子系统自动加载CIS,而再也不须要用户空间工具的辅助.建议选"Yes".

32-bit CardBus support
CONFIG_CARDBUS

常见的PCMCIA卡基本上都是32位的CardBusExpressCard设备.若是你有这样的卡,就选"Yes".因为绝大多数的卡都是"yenta-compatible",因此通常你还须要选中CONFIG_YENTA.

CardBus yenta-compatible bridge support
CONFIG_YENTA

使用PCMCIA卡的基本上都须要选择这一项,子项是一些拥有本身特定扩展的硬件,请按实际状况选择.

{省略的部分请按照本身实际使用的PCMCIA卡选择}

Support for PCI Hotplug
CONFIG_HOTPLUG_PCI

PCI热插拔不只仅针对PCIPCI-E设备,也包括CardBusExpressCard设备.请按需选择.

{省略的部分请按照本身实际使用PCI控制器进行选择}

RapidIO support
CONFIG_RAPIDIO

RapidIO总线支持.这种总线主要用于嵌入式系统.

Discovery timeout duration (seconds)
CONFIG_RAPIDIO_DISC_TIMEOUT

等待主机完成枚举(也就是初始化)的超时秒数.

Enable RapidIO Input/Output Ports
CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS

开启全部 RapidIO Input/Output 端口.

DMA Engine support for RapidIO
CONFIG_RAPIDIO_DMA_ENGINE

使用DMA引擎(CONFIG_DMADEVICES)进行RapidIO数据传输

RapidIO subsystem debug messages
CONFIG_RAPIDIO_DEBUG

RapidIO调试信息输出到系统日志里.若是你想诊断RapidIO设备的故障,能够开启,不然应该关闭.

{省略的部分请按照本身实际使用的控制器进行选择}

Executable file formats / Emulations可执行文件格式/仿真

Kernel support for ELF binaries
CONFIG_BINFMT_ELF

ELF是最经常使用的跨平台二进制文件格式,支持动态链接,支持不一样的硬件平台,支持不一样的操做系统.必选,除非你知道本身在作什么.

Write ELF core dumps with partial segments
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS

若是你打算在此Linux上开发应用程序或者帮助别人调试bug,那么就选"Y",不然选"N".注意这里的调试和开发不是指内核调试和开发,是应用程序的调试和开发.

Kernel support for scripts starting with #!
CONFIG_BINFMT_SCRIPT

支持以"#!/path/to/interpreter"行开头的脚本.务必"Y",不要"M""N",除非你知道本身在作什么.

Kernel support for MISC binaries
CONFIG_BINFMT_MISC

容许插入二进制封装层到内核中,运行Java,.NET(Mono-based),Python,Emacs-Lisp等语言编写的程序时须要它,DOSEMU也须要它.想要更方便的使用此特性,你还须要使用"mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc"挂载binfmt_misc伪文件系统.具体详情能够参考"Documentation/binfmt_misc.txt"文档.

Enable core dump support
CONFIG_COREDUMP

核心转储(core dump)支持.若是你打算在此Linux上开发应用程序或者帮助别人调试bug,那么就选"Y",不然选"N".注意这里的调试和开发不是指内核调试和开发,是应用程序的调试和开发.

IA32 Emulation
CONFIG_IA32_EMULATION

容许在64位内核中运行32位代码.除非你打算使用纯64位环境,不然请开启此项.提示:GRUB2支持引导纯64位内核,可是GRUB不支持.

IA32 a.out support
CONFIG_IA32_AOUT

早期UNIX系统的可执行文件格式(32),目前已经被ELF格式取代.除非你须要使用古董级的二进制程序.不然请关闭.

x32 ABI for 64-bit mode
CONFIG_X86_X32

容许32位程序使用完整的64位寄存器,以减少内存占用(memory footprint).这能够提升32位程序的运行性能.若是你使用binutils-2.22以上的版本(支持elf32_x86_64),就选"Y",不然选"N".

Networking support网络支持

Networking options

网络选项

Packet socket
CONFIG_PACKET

链路层PF_PACKET套接字支持.可让应用程序(好比:抓包工具tcpdump, DHCP客户端dhclient)直接与网络设备通信,而无需使用内核中的其它中介协议.不肯定的选"Y""M".

Packet: sockets monitoring interface
CONFIG_PACKET_DIAG

PF_PACKET套接字监控接口,ss这样的诊断工具须要它.

Unix domain sockets
CONFIG_UNIX

Unix domain sockets 支持.许多程序都使用它在操做系统内部进行进程间通讯(IPC),好比: X Window, syslog, udev 等等."Y",除非你确实知道本身在作什么.

UNIX: socket monitoring interface
CONFIG_UNIX_DIAG

UNIX套接字监控接口,ss这样的工具须要它.

Transformation user configuration interface
CONFIG_XFRM_USER

IPsec相关的工具提供Transformation(XFRM)用户配置接口

Transformation sub policy support
CONFIG_XFRM_SUB_POLICY

XFRM子策略支持,不肯定的选"N".

Transformation migrate database
CONFIG_XFRM_MIGRATE

用于动态的更新 IPsec SA(security association) 的定位器(locator).这个特性对于手机这类移动设备来说相当重要,由于它须要在不一样的基站之间迁移.不肯定的选"N".

Transformation statistics
CONFIG_XFRM_STATISTICS

转换统计,这不是SNMP/MIB规范的内容.用于调试目的.不肯定的选"N".

PF_KEY sockets
CONFIG_NET_KEY

PF_KEYv2 套接字支持(KAME兼容).PF_KEY协议族主要用来处理SA(安全关联),SADB(SA数据库)进行管理,主要用在IPsec协议中.PF_KEY_v2的编程APIRFC2367中定义.

PF_KEY MIGRATE
CONFIG_NET_KEY_MIGRATE

PF_KEYv2套接字中添加一个 PF_KEY MIGRATE 消息. PF_KEY MIGRATE 消息可用于动态的更新 IPsec SA(security association) 的定位器(locator).这个特性对于手机这类移动设备来说相当重要,由于它须要在不一样的基站之间迁移.不肯定的选"N".

TCP/IP networking
CONFIG_INET

TCP/IP协议,必选!

IP: multicasting
CONFIG_IP_MULTICAST

IP组播(IP multicasting)支持.指的是一个发送者向一组特定的接收者发送数据,但只需发送一份数据副本.实际应用的场合不多,MBONE算是其中之一,RTP等音视频协议相结合也算一种.不肯定的选"N".

IP: advanced router
CONFIG_IP_ADVANCED_ROUTER

高级路由支持,须要开启内核的IP转发功能(echo 1 > /proc/sys/net/ipv4/ip_forward)才能正常工做.若是这个Linux系统用做专业的路由器就选上,选上以后还须要按需选择其下的子项.通常的主机不须要这个.

FIB TRIE statistics
CONFIG_IP_FIB_TRIE_STATS

主要用于测试TRIE性能

IP: policy routing
CONFIG_IP_MULTIPLE_TABLES

策略路由

IP: equal cost multipath
CONFIG_IP_ROUTE_MULTIPATH

用于基于目的地址的负载均衡

IP: verbose route monitoring
CONFIG_IP_ROUTE_VERBOSE

显示冗余的路由监控信息

IP: kernel level autoconfiguration
CONFIG_IP_PNP

在内核启动时自动配置网卡的ip地址/路由表,配置信息来自于如下途径:内核引导参数,自举协议(BOOTP),反向地址转换协议(RARP),动态主机配置协议(DHCP).一般,须要从网络启动的无盘工做站才须要这个东西(此时还须要开启CONFIG_ROOT_NFS),通常的发行版都经过启动脚本(dhcpcd/dhclient/ifconfig)配置网络.不肯定的选"N".

IP: DHCP support
CONFIG_IP_PNP_DHCP

DHCP协议支持

IP: BOOTP support
CONFIG_IP_PNP_BOOTP

BOOTP协议支持

IP: RARP support
CONFIG_IP_PNP_RARP

RARP协议支持

IP: tunneling
CONFIG_NET_IPIP

IP隧道,主要目的是为了在TCP/IP网络中传输其余协议的数据包,固然也包括IP数据包(例如用于实现VPN).

IP: GRE demultiplexer
CONFIG_NET_IPGRE_DEMUX

GRE demultiplexer 支持.CONFIG_NET_IPGRECONFIG_PPTP所依赖.

IP: GRE tunnels over IP
CONFIG_NET_IPGRE

基于IP通用路由封装(Generic Routing Encapsulation)隧道支持.该驱动主要用于对端是Cisco路由器的场合,由于Cisco的路由器特别偏好GRE隧道(而不是CONFIG_NET_IPIP),而且GRE还容许经过隧道对组播进行再分发.

IP: broadcast GRE over IP
CONFIG_NET_IPGRE_BROADCAST

GRE/IP的一种应用是构建一个广播WAN(Wide Area Network),而其看上去却很像一个跑在互联网上的LAN(Local Area Network).若是你想要建立这样的网络,那么就选"Y"(还要加上CONFIG_IP_MROUTE).

IP: multicast routing
CONFIG_IP_MROUTE

组播路由支持.实际应用的场合不多,MBONE算是其中之一,不肯定的选"N".

IP: multicast policy routing
CONFIG_IP_MROUTE_MULTIPLE_TABLES

一般,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包.开启此项后,将能同时考虑数据包所带的标记(mark)和所经过的网络接口,并可在用户空间同时运行多个守护进程,每个进程处理一张路由表.

IP: PIM-SM version 1 support
CONFIG_IP_PIMSM_V1

Sparse Mode PIM (Protocol Independent Multicast) version 1 支持. 该协议被Cisco路由器普遍支持,你须要特定的软件(pimd-v1)才能使用它.

IP: PIM-SM version 2 support
CONFIG_IP_PIMSM_V2

Sparse Mode PIM (Protocol Independent Multicast) version 2 支持. 该协议的使用并不普遍,你须要特定的软件(pimd gated-5)才能使用它.

IP: ARP daemon support
CONFIG_ARPD

一般状况下,内核自身会使用ARP协议解析本地网络中的IP地址与MAC地址的对应关系,并进行缓存.开启此项后,内核将使用用户空间的守护进程进行ARP解析.这主要是为了使用其余的替代解析协议(好比mGRE隧道中的NHRP),或调试目的.不肯定的选"N".

IP: TCP syncookie support
CONFIG_SYN_COOKIES

TCP syncookie 支持,这是抵抗SYN flood攻击的好东西.此特性的开关能够经过"/proc/sys/net/ipv4/tcp_syncookies"文件控制,写入"1"表示开启,写入"0"表示关闭.建议服务器环境开启此项.

Virtual (secure) IP: tunneling
CONFIG_NET_IPVTI

虚拟IP隧道.能够和xfrm隧道一块儿使用,以实现IPSEC安全隧道,并在其上使用路由协议.不肯定的选"N".

IP: AH transformation
CONFIG_INET_AH

IPsec AH 支持.IPsec验证头(AH)可对整个数据包(IP报头与数据)提供身份验证/完整性/抗重播保护.可是它不提供保密性,即它不对数据进行加密.因为这个缘由,AH头正在慢慢被ESP头取代.

IP: ESP transformation
CONFIG_INET_ESP

IPsec ESP 支持.IPsec封装安全负载(ESP)不只为IP负载提供身份验证/完整性/抗重播保护,还提供保密性,也就是还对数据进行加密.ESP有两种使用模式:传输模式(ESP不对整个数据包进行签名,只对IP负载(不含IP报头)进行保护)和隧道模式(将原始IP包封装进新的带有ESP头的IP包内,可提供完整的保护).ESP能够独立使用,也可与AH组合使用(愈来愈少).

IP: IPComp transformation
CONFIG_INET_IPCOMP

IP静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持.用于支持IPsec

IP: IPsec transport mode
CONFIG_INET_XFRM_MODE_TRANSPORT

IPsec传输模式.经常使用于对等通讯,用以提供内网安全.数据包通过了加密但IP头没有加密,所以任何标准设备或软件均可查看和使用IP

IP: IPsec tunnel mode
CONFIG_INET_XFRM_MODE_TUNNEL

IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已通过加密处理且分配有新的ESP/IP/验证尾,从而可以隐藏受保护站点的拓扑结构

IP: IPsec BEET mode
CONFIG_INET_XFRM_MODE_BEET

IPsec BEET模式.

Large Receive Offload (ipv4/tcp)
CONFIG_INET_LRO

LRO(Large Receive Offload) (ipv4/tcp) 支持.它经过将多个TCP数据整合在一个skb结构中,并在稍后的某个时刻做为一个大的数据包交付给上层的网络协议栈,以减小上层协议栈处理skb的开销,提升Linux系统接收TCP数据包的能力.目前,主流网卡驱动都已支持此特性.建议开启.不过,LRO不该该在路由器上开启,由于它破坏了end-to-end原则,并会对路由性能形成显著的不利影响.

INET: socket monitoring interface
CONFIG_INET_DIAG

INET(TCP,DCCP,...) socket 监视接口,一些Linux本地工具(:包含ssiproute2)须要使用它

UDP: socket monitoring interface
CONFIG_INET_UDP_DIAG

UDP socket 监视接口,一些Linux本地工具(:包含ssiproute2)须要使用它

TCP: advanced congestion control
CONFIG_TCP_CONG_ADVANCED

高级拥塞控制,子项提供多种拥塞控制算法供选用.若是没有特殊需求就别选了,内核会自动将默认的拥塞控制设为"CUBIC"并将"new Reno"做为候补.仅在你确实知道本身须要的状况下选"Y".不肯定的选"N".

TCP: MD5 Signature Option support (RFC2385)
CONFIG_TCP_MD5SIG

RFC2385中描述了一种对TCP会话进行MD5签名的保护机制.目前仅用于保护互联网运营商骨干路由器间的BGP会话.通常的路由器/服务器等设备根本不须要这个.

The IPv6 protocol
CONFIG_IPV6

引领将来的IPv6支持.

IPv6: Privacy Extensions (RFC 3041) support
CONFIG_IPV6_PRIVACY

IPv6利用"Stateless Address Autoconfiguration"在无DHCP服务器的状况下,产生可用的"临时IPv6地址".而本选项则为这个机制增长"隐私扩展"(RFC4941)保护.默认状态下,内核并不生产"临时地址",须要"echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr"才能开启

IPv6: Router Preference (RFC 4191) support
CONFIG_IPV6_ROUTER_PREF

主机连上IPv6网络后,会发出路由器邀请包(Router Solicitation),路由器则应答路由器公告包(Router Advertisement),其中包含网关地址/IPv6前缀/DNS地址,这样主机就能取得IPv6地址,并链接到互联网上,这就是无状态地址自动分配(StateLess Address AutoConfiguration)."Router Preference""Router Advertisement"包的可选扩展.它能够改进主机选中路由器的能力,特别是在多归属(multi-homed)网络中.不肯定的选"N".

IPv6: Route Information (RFC 4191) support
CONFIG_IPV6_ROUTE_INFO

"Route Information"的实验性支持.

IPv6: Enable RFC 4429 Optimistic DAD
CONFIG_IPV6_OPTIMISTIC_DAD

乐观重复地址检测(Optimistic Duplicate Address Detection)的实验性支持.能够更快的进行自动地址配置.不肯定的选"N".

IPv6: AH transformation
CONFIG_INET6_AH

IPsec AH 支持.不肯定的选"Y""M".AH头正在慢慢被ESP头取代.

IPv6: ESP transformation
CONFIG_INET6_ESP

IPsec ESP 支持.不肯定的选"Y""M".

IPv6: IPComp transformation
CONFIG_INET6_IPCOMP

IPv6静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持.用于支持IPsec.不肯定的选"Y""M".

IPv6: Mobility
CONFIG_IPV6_MIP6

移动IPv6(RFC3775)支持.主要用于移动设备.不肯定的选"N".

IPv6: IPsec transport mode
CONFIG_INET6_XFRM_MODE_TRANSPORT

IPsec传输模式.经常使用于对等通讯,用以提供内网安全.数据包通过了加密但IP头没有加密,所以任何标准设备或软件均可查看和使用IP.不肯定的选"Y""M".

IPv6: IPsec tunnel mode
CONFIG_INET6_XFRM_MODE_TUNNEL

IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已通过加密处理且分配有新的ESP/IP/验证尾,从而可以隐藏受保护站点的拓扑结构.不肯定的选"Y""M".

IPv6: IPsec BEET mode
CONFIG_INET6_XFRM_MODE_BEET

IPsec BEET模式.不肯定的选"Y""M".

IPv6: MIPv6 route optimization mode
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION

移动IPv6(Mobile IPv6)路由优化模式.主要用于移动设备.不肯定的选"N".

IPv6: IPv6-in-IPv4 tunnel (SIT driver)
CONFIG_IPV6_SIT

IPv4网络上创建IPv6隧道.若是你但愿能够经过IPv4网络接入一个IPv6网络,能够选"Y""M",不然选"N".

IPv6: IPv6 Rapid Deployment (6RD)
CONFIG_IPV6_SIT_6RD

IPv6快速部署(6RD)支持.不肯定的选"N".

IPv6: IP-in-IPv6 tunnel (RFC2473)
CONFIG_IPV6_TUNNEL

IPv6-in-IPv6/IPv4-in-IPv6 隧道(RFC2473)支持.不肯定的选"N".

IPv6: GRE tunnel
CONFIG_IPV6_GRE

基于IPv6通用路由封装(Generic Routing Encapsulation)隧道支持.该驱动主要用于对端是Cisco路由器的场合,由于Cisco的路由器特别偏好GRE隧道(而不是CONFIG_IPV6_TUNNEL),而且GRE还容许经过隧道对组播进行再分发.

IPv6: Multiple Routing Tables
CONFIG_IPV6_MULTIPLE_TABLES

多重路由表(Multiple Routing Tables)支持.不肯定的选"N".

IIPv6: source address based routing
CONFIG_IPV6_SUBTREES

容许根据源地址或前缀进行路由.不肯定的选"N".

IPv6: multicast routing
CONFIG_IPV6_MROUTE

测试性的IPv6组播路由支持.实际应用的场合不多,不肯定的选"N".

IPv6: multicast policy routing
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES

一般,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包.开启此项后,将能同时考虑数据包所带的标记(mark)和所经过的网络接口,并可在用户空间同时运行多个守护进程,每个进程处理一张路由表.

IPv6: PIM-SM version 2 support
CONFIG_IPV6_PIMSM_V2

IPv6 PIM multicast routing protocol PIM-SMv2 支持.

NetLabel subsystem support
CONFIG_NETLABEL

NetLabel子系统支持.NetLabel子系统为诸如CIPSORIPSO之类可以在分组信息上添加标签的协议提供支持,看不懂就别选了.

Security Marking
CONFIG_NETWORK_SECMARK

对网络包进行安全标记,相似于nfmark,但主要是为安全目的而设计.看不懂的就别选了

Timestamping in PHY devices
CONFIG_NETWORK_PHY_TIMESTAMPING

容许在硬件支持的前提下,为物理层(PHY)数据包打上时间戳.这会略微增长发送与接收的开销.不肯定的选"N".

Network packet filtering framework (Netfilter)
CONFIG_NETFILTER

Netfilter能够对数据包进行过滤和修改,能够做为防火墙("packet filter""proxy-based")或网关(NAT)或代理(proxy)或网桥使用.

Network packet filtering debugging
CONFIG_NETFILTER_DEBUG

仅供开发者调试Netfilter使用

Advanced netfilter configuration
CONFIG_NETFILTER_ADVANCED

"Y"将会显示全部模块供用户选择,"N"则会隐藏一些不经常使用的模块,并自动将经常使用模块设为"M".

Bridged IP/ARP packets filtering
CONFIG_BRIDGE_NETFILTER

若是你但愿使用桥接防火墙就打开它.不肯定的选"N".

Core Netfilter Configuration

核心Netfilter配置(当包流过Chain时若是match某个规则那么将由该规则的target来处理,不然将由同一个Chain中的下一个规则进行匹配,若不match全部规则那么最终将由该Chainpolicy进行处理)

Netfilter NFACCT over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_ACCT

容许经过NFNETLINK接口支持NFACCT(记帐).

Netfilter NFQUEUE over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_QUEUE

容许经过NFNETLINK接口支持NFQUEUE(排队).

Netfilter LOG over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_LOG

容许经过NFNETLINK接口支持"LOG"(日志).该选项废弃了ipt_ULOGebg_ulog机制,并打算在未来废弃基于syslogipt_LOGip6t_LOG模块.

Netfilter connection tracking support
CONFIG_NF_CONNTRACK

链接追踪(connection tracking)支持,链接跟踪把全部链接都保存在一个表格内,并将每一个包关联到其所属的链接.可用于报文假装或地址转换,也可用于加强包过滤能力.

Connection mark tracking support
CONFIG_NF_CONNTRACK_MARK

容许对链接进行标记,与针对单独的包进行标记的不一样之处在于它是针对链接流的. CONNMARK target connmark match 须要它的支持.

Connection tracking security mark support
CONFIG_NF_CONNTRACK_SECMARK

容许对链接进行安全标记,一般这些标记包(SECMARK)复制到其所属链接(CONNSECMARK),再从链接复制到其关联的包(SECMARK).

Connection tracking zones
CONFIG_NF_CONNTRACK_ZONES

"conntrack zones"支持.一般,每一个链接须要一个全局惟一标示符,"conntrack zones"容许在不一样zone内的链接使用相同的标识符.

Supply CT list in procfs (OBSOLETE)
CONFIG_NF_CONNTRACK_PROCFS

已被废弃,"N".

Connection tracking events
CONFIG_NF_CONNTRACK_EVENTS

链接跟踪事件支持.若是启用这个选项,链接跟踪代码将提供一个"notifier",它能够被其它内核代码用来获知链接跟踪状态的改变

Connection tracking timeout
CONFIG_NF_CONNTRACK_TIMEOUT

链接跟踪"timeout"扩展.这样你就能够在网络流上经过 CT target 附加超时策略.

Connection tracking timestamping
CONFIG_NF_CONNTRACK_TIMESTAMP

时间戳支持.这样你就能在链接创建和断开时打上时间戳.

DCCP protocol connection tracking support
CONFIG_NF_CT_PROTO_DCCP

DCCP协议支持.

SCTP protocol connection tracking support
CONFIG_NF_CT_PROTO_SCTP

SCTP协议支持.

UDP-Lite protocol connection tracking support
CONFIG_NF_CT_PROTO_UDPLITE

UDP-Lite支持.

Amanda backup protocol support
CONFIG_NF_CONNTRACK_AMANDA

Amanda备份协议支持.

FTP protocol support
CONFIG_NF_CONNTRACK_FTP

文件传输协议(FTP)支持.跟踪FTP链接须要额外的帮助程序.

H.323 protocol support
CONFIG_NF_CONNTRACK_H323

H.323协议支持.

IRC protocol support
CONFIG_NF_CONNTRACK_IRC

IRC扩展协议DCC(Direct Client-to-Client Protocol)支持.该协议容许用户之间绕开服务器直接聊天和传输文件.

NetBIOS name service protocol support
CONFIG_NF_CONNTRACK_NETBIOS_NS

NetBIOS协议支持.

SNMP service protocol support
CONFIG_NF_CONNTRACK_SNMP

SNMP协议支持.

PPtP protocol support
CONFIG_NF_CONNTRACK_PPTP

RFC2637 点对点隧道协议(Point to Point Tunnelling Protocol)协议支持.

SANE protocol support
CONFIG_NF_CONNTRACK_SANE

SANE协议支持.

SIP protocol support
CONFIG_NF_CONNTRACK_SIP

SIP协议支持.

TFTP protocol support
CONFIG_NF_CONNTRACK_TFTP

TFTP协议支持.

Connection tracking netlink interface
CONFIG_NF_CT_NETLINK

基于netlink的用户接口支持.

Connection tracking timeout tuning via Netlink
CONFIG_NF_CT_NETLINK_TIMEOUT

经过Netlink机制支持对链接追踪超时进行细粒度的调节:容许为特定的网络流指定超时策略,而不是使用统一的全局超时策略.

Connection tracking helpers in user-space via Netlink
CONFIG_NF_CT_NETLINK_HELPER

经过Netlink机制为用户空间的链接追踪帮助程序提供基础框架.

NFQUEUE integration with Connection Tracking
CONFIG_NETFILTER_NETLINK_QUEUE_CT

开启此项后,即便网络包已经在队列(NFQUEUE),它依然能够包含链接追踪信息.

Transparent proxying support
CONFIG_NETFILTER_TPROXY

透明代理支持,也就是能够处理非本地的 IPv4 TCP/UDP 套接字.此功能须要配合一些iptables规则和策略路由才能工做.详见"Documentation/networking/tproxy.txt"文档.

Netfilter Xtables support (required for ip_tables)
CONFIG_NETFILTER_XTABLES

若是你打算使用 ip_tables, ip6_tables, arp_tables 之一就必须选上

nfmark target and match support
CONFIG_NETFILTER_XT_MARK

"nfmark"是用户给包打上的一个自定义标记.用于match,容许基于"nfmark"值对包进行匹配.用于target,容许在"mangle"表中建立规则以改变包的"nfmark".

ctmark target and match support
CONFIG_NETFILTER_XT_CONNMARK

"ctmark"是用户以链接为组,给同一链接中的全部包打上的自定义标记.用法与"nfmark"类似.

set target and match support
CONFIG_NETFILTER_XT_SET

"set"ipset工具建立的IP地址集合.使用match能够对IP地址集合进行匹配,使用target能够对集合中的项进行增长和删除.

AUDIT target support
CONFIG_NETFILTER_XT_TARGET_AUDIT

为被drop/accept的包建立审计记录.

CHECKSUM target support
CONFIG_NETFILTER_XT_TARGET_CHECKSUM

用于"mangle",为缺乏校验和的包添加checksum字段的值.主要是为了兼容一些老旧的网络程序(例如某些dhcp客户端).

"CLASSIFY" target support
CONFIG_NETFILTER_XT_TARGET_CLASSIFY

容许为包设置优先级,一些qdiscs排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio)须要使用它

"CONNMARK" target support
CONFIG_NETFILTER_XT_TARGET_CONNMARK

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK

"CONNSECMARK" target support
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK

针对连接进行安全标记,同时还会将链接上的标记还原到包上(若是连接中的包还没有进行安全标记),一般与 SECMARK target 联合使用

"CT" target support
CONFIG_NETFILTER_XT_TARGET_CT

容许为包加上链接追踪相关的参数,好比"event""helper".

"DSCP" and "TOS" target support
CONFIG_NETFILTER_XT_TARGET_DSCP

DSCP target 容许对IPv4/IPv6包头部的DSCP(Differentiated Services Codepoint)字段(经常使用于Qos)进行修改. TOS target 容许在"mangle"表建立规则以修改IPv4包头的TOS(Type Of Service)字段或IPv6包头的Priority字段.

"HL" hoplimit target support
CONFIG_NETFILTER_XT_TARGET_HL

HL(IPv6)/TTL(IPv4) target 容许更改包头的 hoplimit/time-to-live .

"HMARK" target support
CONFIG_NETFILTER_XT_TARGET_HMARK

容许在"raw""mangle"表中建立规则,以根据特定范围的哈希计算结果设置"skbuff"标记.

IDLETIMER target support
CONFIG_NETFILTER_XT_TARGET_IDLETIMER

每一个被匹配的包的定时器都会被强制指定为规则指定的值,当超时发生时会触发一个sysfs文件系统的通知.剩余时间能够经过sysfs读取.

"LED" target support
CONFIG_NETFILTER_XT_TARGET_LED

容许在知足特定条件的包经过的时候,触发LED灯闪烁.好比能够用于控制网卡的状态指示灯仅在有SSH活动的时候才闪烁.

LOG target support
CONFIG_NETFILTER_XT_TARGET_LOG

容许向syslog中记录包头信息.

"MARK" target support
CONFIG_NETFILTER_XT_TARGET_MARK

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK

"NETMAP" target support
CONFIG_NETFILTER_XT_TARGET_NETMAP

NETMAP用于实现一对一的静态NAT(地址转换).

"NFLOG" target support
CONFIG_NETFILTER_XT_TARGET_NFLOG

经过nfnetlink_log记录日志.

"NFQUEUE" target Support
CONFIG_NETFILTER_XT_TARGET_NFQUEUE

用于替代老旧的 QUEUE target. 由于NFQUEUE能支持最多65535个队列,QUEUE只能支持一个.

"NOTRACK" target support (DEPRECATED)
CONFIG_NETFILTER_XT_TARGET_NOTRACK

已被废弃,勿选.

"RATEEST" target support
CONFIG_NETFILTER_XT_TARGET_RATEEST

RATEEST target 容许测量网络流的传输速率.[: rateest match 容许根据速率进行匹配.]

REDIRECT target support
CONFIG_NETFILTER_XT_TARGET_REDIRECT

REDIRECT是一种特别的NAT:全部进入的链接都被映射到其入口网卡的地址,这样这些包就会"流入"本机而不是"流过"本机.这主要用于实现透明代理.

"TEE" - packet cloning to alternate destination
CONFIG_NETFILTER_XT_TARGET_TEE

对包进行克隆,并将克隆的副本路由到另外一个临近的路由器(Next Hop).

"TPROXY" target support
CONFIG_NETFILTER_XT_TARGET_TPROXY

相似于REDIRECT,但并不依赖于链接追踪和NAT,也只能用于"mangle",用于将网络流量重定向到透明代理.

"TRACE" target support
CONFIG_NETFILTER_XT_TARGET_TRACE

容许对包打标记,这样内核就能够记录每个匹配到的规则.

"SECMARK" target support
CONFIG_NETFILTER_XT_TARGET_SECMARK

容许对包进行安全标记,用于安全子系统

"TCPMSS" target support
CONFIG_NETFILTER_XT_TARGET_TCPMSS

容许更改 TCP SYN 包的MSS(Maximum Segment Size),一般=MTU-40.

"TCPOPTSTRIP" target support
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP

容许从TCP包头中剥离全部TCP选项.

"addrtype" address type match support
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE

根据地址类型进行匹配: UNICAST, LOCAL, BROADCAST, ...

"bpf" match support
CONFIG_NETFILTER_XT_MATCH_BPF

BPF(BSD Packet Filter)是一个强大的包匹配模块,用于匹配那些让过滤器返回非零值的包.

"cluster" match support
CONFIG_NETFILTER_XT_MATCH_CLUSTER

这个模块能够用于建立网络服务器/防火墙集群,而无需借助价格昂贵的负载均衡设备.一般,在包必须被本节点处理的条件下,这个match返回"true".这样,全部节点均可以看到全部的包,但只有匹配的节点才须要进行处理,这样就将负载进行了分摊.而分摊算法是基于对源地址的哈希值.

"comment" match support
CONFIG_NETFILTER_XT_MATCH_COMMENT

这是一个"match",目的是容许你在iptables规则集中加入注释

"connbytes" per-connection counter match support
CONFIG_NETFILTER_XT_MATCH_CONNBYTES

容许针对单个链接内部每一个方向(/)匹配已经传送的字节数/包数

"connlabel" match support
CONFIG_NETFILTER_XT_MATCH_CONNLABEL

容许向链接分配用户自定义的标签名.内核仅存储bit,而名称和bit之间的对应关系由用户空间处理."connmark"的不一样之处在于:能够同时为一个链接分配32个标志位(flag bit).

"connlimit" match support
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT

容许根据每个客户端IP地址(或每一段客户端IP地址段)持有的并发链接数进行匹配.

"connmark" connection mark match support
CONFIG_NETFILTER_XT_MATCH_CONNMARK

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK

"conntrack" connection tracking match support
CONFIG_NETFILTER_XT_MATCH_CONNTRACK

通用链接跟踪匹配,"state"的超集,它容许额外的连接跟踪信息,在须要设置一些复杂的规则(好比网关)时颇有用

"cpu" match support
CONFIG_NETFILTER_XT_MATCH_CPU

根据处理包所使用的CPU是哪一个进行匹配

"dccp" protocol match support
CONFIG_NETFILTER_XT_MATCH_DCCP

DCCP是打算取代UDP的新传输协议,它在UDP的基础上增长了流控和拥塞控制机制,面向实时业务

"devgroup" match support
CONFIG_NETFILTER_XT_MATCH_DEVGROUP

容许根据网卡所属的"设备组"进行匹配

"dscp" and "tos" match support
CONFIG_NETFILTER_XT_MATCH_DSCP

dscp match 容许根据IPv4/IPv6包头的DSCP字段进行匹配, tos match 容许根据IPv4包头的TOS字段进行匹配

"ecn" match support
CONFIG_NETFILTER_XT_MATCH_ECN

容许根据IPv4 TCP包头的ECN字段进行匹配

"esp" match support
CONFIG_NETFILTER_XT_MATCH_ESP

容许对IPSec包的ESP头中的SPI(安全参数序列)范围进行匹配

"hashlimit" match support
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT

此项的目的是取代"limit",它基于你选定的源/目的地址和/或端口动态建立"limit bucket"哈希表.这样你就能够迅速建立相似这样的匹配规则:(1)为给定的目的地址以每秒10k个包的速度进行匹配;(2)为给定的源地址以每秒500个包的速率进行匹配

"helper" match support
CONFIG_NETFILTER_XT_MATCH_HELPER

加载特定协议的链接跟踪辅助模块,由该模块过滤所跟踪的链接类型的包,好比ip_conntrack_ftp模块

"hl" hoplimit/TTL match support
CONFIG_NETFILTER_XT_MATCH_HL

基于IPv6包头的hoplimit字段,IPv4包头的time-to-live字段进行匹配

"iprange" address range match support
CONFIG_NETFILTER_XT_MATCH_IPRANGE

根据IP地址范围进行匹配,而普通的iptables只能根据"IP/mask"的方式进行匹配.

"ipvs" match support
CONFIG_NETFILTER_XT_MATCH_IPVS

容许根据包的IPVS属性进行匹配

"length" match support
CONFIG_NETFILTER_XT_MATCH_LENGTH

容许对包的长度进行匹配

"limit" match support
CONFIG_NETFILTER_XT_MATCH_LIMIT

容许根据包的进出速率进行规则匹配,常和"LOG target"配合使用以抵抗某些Dos攻击

"mac" address match support
CONFIG_NETFILTER_XT_MATCH_MAC

容许根据以太网的MAC地址进行匹配

"mark" match support
CONFIG_NETFILTER_XT_MATCH_MARK

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK

"multiport" Multiple port match support
CONFIG_NETFILTER_XT_MATCH_MULTIPORT

容许对TCPUDP包同时匹配多个不连续的端口(一般状况下只能匹配单个端口或端口范围)

"nfacct" match support
CONFIG_NETFILTER_XT_MATCH_NFACCT

容许经过nfnetlink_acct使用扩展记帐

"osf" Passive OS fingerprint match
CONFIG_NETFILTER_XT_MATCH_OSF

开启Passive OS Fingerprinting模块,以容许经过进入的TCP SYN包被动匹配远程操做系统.规则和加载程序能够从这里获取:http://www.ioremap.net/projects/osf

"owner" match support
CONFIG_NETFILTER_XT_MATCH_OWNER

基于建立套接字的本地进程身份(user/group)进行匹配,还能够用于检查一个套接字是否确实存在

IPsec "policy" match support
CONFIG_NETFILTER_XT_MATCH_POLICY

基于IPsec policy进行匹配

"physdev" match support
CONFIG_NETFILTER_XT_MATCH_PHYSDEV

容许对进入或离开所通过的物理网口进行匹配

"pkttype" packet type match support
CONFIG_NETFILTER_XT_MATCH_PKTTYPE

容许对封包目的地址类别(广播/组播/直播)进行匹配

"quota" match support
CONFIG_NETFILTER_XT_MATCH_QUOTA

容许对总字节数的限额值进行匹配

"rateest" match support
CONFIG_NETFILTER_XT_MATCH_RATEEST

根据 RATEEST target 评估的速率值进行匹配

"realm" match support
CONFIG_NETFILTER_XT_MATCH_REALM

容许根据iptables中的路由子系统中的realm值进行匹配.它与tc中的CONFIG_NET_CLS_ROUTE4很是相似.

"recent" match support
CONFIG_NETFILTER_XT_MATCH_RECENT

recent match 用于建立一个或多个最近使用过的地址列表,而后又能够根据这些列表再进行匹配.

"sctp" protocol match support
CONFIG_NETFILTER_XT_MATCH_SCTP

支持根据流控制传输协议(SCTP)/目的端口和"chunk type"进行匹配.

"socket" match support
CONFIG_NETFILTER_XT_MATCH_SOCKET

can be used to match packets for which a TCP or UDP socket lookup finds a valid socket. It can be used in combination with the MARK target and policy routing to implement full featured non-locally bound sockets.

"state" match support
CONFIG_NETFILTER_XT_MATCH_STATE

这是对包进行分类的有力工具,它容许利用链接跟踪信息对链接中处于特定状态的包进行匹配

"statistic" match support
CONFIG_NETFILTER_XT_MATCH_STATISTIC

容许根据一个给定的百分率对包进行周期性的或随机性的匹配

"string" match support
CONFIG_NETFILTER_XT_MATCH_STRING

容许根据包所承载的数据中包含的特定字符串进行匹配

"tcpmss" match support
CONFIG_NETFILTER_XT_MATCH_TCPMSS

容许根据TCP SYN包头中的MSS(最大分段长度)选项的值进行匹配

"time" match support
CONFIG_NETFILTER_XT_MATCH_TIME

根据包的到达时刻(外面进入的包)或者离开时刻(本地生成的包)进行匹配

"u32" match support
CONFIG_NETFILTER_XT_MATCH_U32

"u32"容许从包中提取拥有特定mask的最多4字节数据,将此数据移动(shift)特定的位数,而后测试其结果是否位于特定的集合范围内.更多细节能够直接参考内核源码(net/netfilter/xt_u32.c)

IP set support
CONFIG_IP_SET

为内核添加IP(IP set)支持,而后就能够使用CONFIG_NETFILTER_XT_SET功能.此特性必须配合用户态工具ipset一块儿使用.

Maximum number of IP sets
CONFIG_IP_SET_MAX

默认的最大"set",取值范围是[2,65534].此值也能够由ip_set模块的max_sets参数设置.

bitmap:ip set support
CONFIG_IP_SET_BITMAP_IP

"bitmap:ip"集合类型.根据IP地址范围设定集合.

bitmap:ip,mac set support
CONFIG_IP_SET_BITMAP_IPMAC

"bitmap:ip,mac"集合类型.根据IP/MAC地址对范围设定集合.

bitmap:port set support
CONFIG_IP_SET_BITMAP_PORT

"bitmap:port"集合类型.根据端口范围设定集合.

hash:ip set support
CONFIG_IP_SET_HASH_IP

"hash:ip"集合类型.为多个离散的IP地址设定集合.

hash:ip,port set support
CONFIG_IP_SET_HASH_IPPORT

"hash:ip,port"集合类型.为多个离散的IP/MAC地址对设定集合.

hash:ip,port,ip
CONFIG_IP_SET_HASH_IPPORTIP

"hash:ip,port,ip"集合类型.为多个离散的IP/端口/IP三元组设定集合.

hash:ip,port,net set support
CONFIG_IP_SET_HASH_IPPORTNET

"hash:ip,port,net"集合类型.为多个离散的IP/端口/网段三元组设定集合.

hash:net set support
CONFIG_IP_SET_HASH_NET

"hash:net"集合类型.为多个离散的网段设定集合

hash:net,port set support
CONFIG_IP_SET_HASH_NETPORT

"hash:net,port"集合类型.为多个离散的网段/端口对设定集合

hash:net,iface set support
CONFIG_IP_SET_HASH_NETIFACE

"hash:net,iface"集合类型.为多个离散的网段/网卡接口对设定集合

list:set set support
CONFIG_IP_SET_LIST_SET

"list:set"集合类型.将多个集合组成一个更大的集合

IP virtual server support
CONFIG_IP_VS

IPVS(IP Virtual Server)支持.IPVS能够帮助LVS基于多个后端真实服务器建立一个高性能的虚拟服务器.能够使用三种具体的方法实现:NAT,隧道,直接路由(使用较广).

IPv6 support for IPVS
CONFIG_IP_VS_IPV6

IPVS添加IPv6支持

IP virtual server debugging
CONFIG_IP_VS_DEBUG

IPVS添加调试支持

IPVS connection table size (the Nth power of 2)
CONFIG_IP_VS_TAB_BITS

设置IPVS链接哈希表的大小(2CONFIG_IP_VS_TAB_BITS),取值范围是[8,20],默认值12的意思是哈希表的大小是212=4096.IPVS链接哈希表使用链表来处理哈希碰撞.使用大的哈希表可以显著减小碰撞概率,特别是哈希表中有成千上万链接的时候.比较恰当的值差很少等于每秒的新建链接数乘以每一个链接的平均持续秒数.过小的值会形成太多碰撞,从而致使性能大幅降低;太大的值又会形成占用太多没必要要的内存(每一个表项8字节+每一个链接128字节).该值也能够经过ip_vs模块的conn_tab_bits参数进行设置.

TCP load balancing support
CONFIG_IP_VS_PROTO_TCP

TCP传输协议负载均衡支持

UDP load balancing support
CONFIG_IP_VS_PROTO_UDP

UDP传输协议负载均衡支持

ESP load balancing support
CONFIG_IP_VS_PROTO_ESP

IPSec ESP(Encapsulation Security Payload)传输协议负载均衡支持

AH load balancing support
CONFIG_IP_VS_PROTO_AH

IPSec AH(Authentication Header)传输协议负载均衡支持.

SCTP load balancing support
CONFIG_IP_VS_PROTO_SCTP

SCTP传输协议负载均衡支持

round-robin scheduling
CONFIG_IP_VS_RR

循环分散算法:最简单的调度算法,将链接简单的循环分散到后端服务器上

weighted round-robin scheduling
CONFIG_IP_VS_WRR

基于权重的循环分散算法:在循环分散的基础上,权重较高的后端服务器接纳较多的链接

least-connection scheduling
CONFIG_IP_VS_LC

最少链接算法:将链接优先分配到活动链接最少的后端服务器

weighted least-connection scheduling
CONFIG_IP_VS_WLC

基于权重的最少链接算法:结合考虑活动链接数与服务器权重

locality-based least-connection scheduling
CONFIG_IP_VS_LBLC

基于目的IP的最少链接算法(经常使用于缓存集群):优先根据目的IP地址将链接分配到特定的后端,仅在这些后端过载时(活动链接数大于其权重)才分散到其余后端.

locality-based least-connection with replication scheduling
CONFIG_IP_VS_LBLCR

LBLC相似,不一样之处在于:前端负载均衡器会像NAT同样同时记住客户端IP与后端的对应关系,并在新的链接到来的时候,复用这个对应关系.

destination hashing scheduling
CONFIG_IP_VS_DH

目标地址哈希表算法:简单的根据静态设定的目标IP地址哈希表将链接分发到后端

source hashing scheduling
CONFIG_IP_VS_SH

源地址哈希表算法:简单的根据静态设定的源IP地址哈希表将链接分发到后端

shortest expected delay scheduling
CONFIG_IP_VS_SED

最小指望延迟算法:将链接分配到根据指望延迟公式((Ci+1)/Ui)算得的延迟最小的后端."i"是后端服务器编号,"Ci"是该服务器当前的链接数,"Ui"是该服务器的权重.

never queue scheduling
CONFIG_IP_VS_NQ

无排队算法:这是一个两阶段算法,若是有空闲服务器,就直接分发到空闲服务器(而不是等待速度最快的服务器),若是没有空闲服务器,就分发到指望延迟最小的服务器(SED算法).

IPVS source hashing table size (the Nth power of 2)
CONFIG_IP_VS_SH_TAB_BITS

将源IP地址映射到后端服务器所使用的哈希表的大小(2CONFIG_IP_VS_SH_TAB_BITS),取值范围是[4,20],默认值8的意思是哈希表的大小是28=256.理想的大小应该是全部后端的权重乘之后端总数?

FTP protocol helper
CONFIG_IP_VS_FTP

FTP协议链接追踪帮助

Netfilter connection tracking
CONFIG_IP_VS_NFCT

Netfilter链接追踪支持

SIP persistence engine
CONFIG_IP_VS_PE_SIP

基于SIP Call-ID提供持久链接支持

IP: Netfilter Configuration

针对IPv4Netfilter配置

IPv4 connection tracking support (required for NAT)
CONFIG_NF_CONNTRACK_IPV4

IPv4连接跟踪.可用于包假装或地址转换,也可用于加强包过滤能力

proc/sysctl compatibility with old connection tracking
CONFIG_NF_CONNTRACK_PROC_COMPAT

用于兼容老旧的链接追踪用户态程序

IP tables support (required for filtering/masq/NAT)
CONFIG_IP_NF_IPTABLES

要用iptables就确定要选上

"ah" match support
CONFIG_IP_NF_MATCH_AH

容许对IPSec包头的AH字段进行匹配

"ecn" match support
CONFIG_IP_NF_MATCH_ECN

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_ECN

"rpfilter" reverse path filter match support
CONFIG_IP_NF_MATCH_RPFILTER

对进出都使用同一个网络接口的包进行匹配

"ttl" match support
CONFIG_IP_NF_MATCH_TTL

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_HL

Packet filtering
CONFIG_IP_NF_FILTER

定义filter,以容许对包进行过滤

REJECT target support
CONFIG_IP_NF_TARGET_REJECT

容许返回一个ICMP错误包而不是简单的丢弃包

ULOG target support
CONFIG_IP_NF_TARGET_ULOG

反对使用该选项,由于它已经被CONFIG_NETFILTER_NETLINK_LOG代替

IPv4 NAT
CONFIG_NF_NAT_IPV4

容许进行假装/端口转发以及其它的NAT功能,仅在你须要使用iptables中的nat表时才须要选择

MASQUERADE target support
CONFIG_IP_NF_TARGET_MASQUERADE

SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机.假装(MASQUERADE)是一种特殊类型的SNAT:MASQUERADE是用发送数据的网卡上的IP来替换源IP,用于那些IP不固定的场合(好比拨号或者经过DHCP分配)

NETMAP target support
CONFIG_IP_NF_TARGET_NETMAP

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_NETMAP.

REDIRECT target support
CONFIG_IP_NF_TARGET_REDIRECT

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_REDIRECT.

Basic SNMP-ALG support
CONFIG_NF_NAT_SNMP_BASIC

SNMP荷载实现ALG(Application Layer Gateway)支持(RFC2962).

Packet mangling
CONFIG_IP_NF_MANGLE

iptables中启用mangle表以便对包进行各类修改,经常使用于改变包的路由

CLUSTERIP target support
CONFIG_IP_NF_TARGET_CLUSTERIP

CLUSTERIP target 容许你无需使用昂贵的负载均衡设备也能建立廉价的负载均衡集群

ECN target support
CONFIG_IP_NF_TARGET_ECN

用于mangle,能够去除IPv4包头的ECN(Explicit Congestion Notification),主要用于在保持ECN功能的前提下,去除网络上的"ECN黑洞".

"TTL" target support
CONFIG_IP_NF_TARGET_TTL

这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_HL.

raw table support (required for NOTRACK/TRACE)
CONFIG_IP_NF_RAW

iptables中添加一个raw,该表在netfilter框架中很是靠前,并在PREROUTINGOUTPUT链上有钩子,从而能够对收到的数据包在链接跟踪前进行处理

Security table
CONFIG_IP_NF_SECURITY

iptables中添加一个security,以支持强制访问控制(Mandatory Access Control)策略

ARP tables support
CONFIG_IP_NF_ARPTABLES

arptables支持

ARP packet filtering
CONFIG_IP_NF_ARPFILTER

ARP包过滤.对于进入和离开本地的ARP包定义一个filter,在桥接的状况下还能够应用于被转发的ARP

ARP payload mangling
CONFIG_IP_NF_ARP_MANGLE

容许对ARP包的荷载部分进行修改,好比修改源和目标物理地址

IPv6: Netfilter Configuration

针对IPv6Netfilter配置.其子项内容相似于IPv4,须要的话能够参考前面IPv4Netfilter配置进行选择

DECnet: Netfilter Configuration

针对DECnetNetfilter配置

Ethernet Bridge tables (ebtables) support
CONFIG_BRIDGE_NF_EBTABLES

针对以太网桥的ebtables Netfilter配置

The DCCP Protocol
CONFIG_IP_DCCP

数据报拥塞控制协议(Datagram Congestion Control Protocol)UDP的基础上增长了流控和拥塞控制机制,使数据报协议可以更好地用于流媒体业务的传输

The SCTP Protocol
CONFIG_IP_SCTP

流控制传输协议(Stream Control Transmission Protocol)是一种新兴的传输层协议.TCP协议一次只能链接一个IP地址而在SCTP协议一次能够链接多个IP地址且能够自动平衡网络负载,一旦某一个IP地址失效会自动将网络负载转移到其余IP地址上

The RDS Protocol
CONFIG_RDS

可靠数据报套接字(Reliable Datagram Sockets)协议支持.

The TIPC Protocol
CONFIG_TIPC

透明内部进程间通讯协议(Transparent Inter Process Communication),以共享内存为基础实现任务和资源的调度,专门用于集群内部通讯

Asynchronous Transfer Mode (ATM)
CONFIG_ATM

异步传输模式(ATM)支持.主要用于高速LANWAN.目前已经日薄西山了.

Layer Two Tunneling Protocol (L2TP)
CONFIG_L2TP

第二层隧道协议(RFC2661)支持

802.1d Ethernet Bridging
CONFIG_BRIDGE

802.1d以太网桥

802.1Q/802.1ad VLAN Support
CONFIG_VLAN_8021Q

802.1Q虚拟局域网

DECnet Support
CONFIG_DECNET

DECnet协议

ANSI/IEEE 802.2 LLC type 2 Support
CONFIG_LLC2

PF_LLC类型套接字支持.也就是IEEE 802.2 LLC 2

The IPX protocol
CONFIG_IPX

IPX协议是由Novell公司提出的运行于OSI模型第三层的协议,具备可路由的特性,IPX的地址分为网络地址和主机地址,网络地址由管理员分配,主机地址为MAC地址.因为IP协议的普遍使用,IPX的应用早已日薄西山.

Appletalk protocol support
CONFIG_ATALK

Appletalk是苹果公司建立的一组网络协议,仅用于苹果系列计算机.

CCITT X.25 Packet Layer
CONFIG_X25

CCITT X.25协议集支持.

LAPB Data Link Driver
CONFIG_LAPB

LAPB协议支持.

Phonet protocols family
CONFIG_PHONET

PhoNetNokia开发的面相数据包的通讯协议,仅用于Nokia maemo/meego产品.

IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support
CONFIG_IEEE802154

IEEE Std 802.15.4 定义了一个低速率/低功耗/低复杂度的短距离我的无线网络规范.主要用于物联网中的传感器/交换器之类设备之间的互联.

6lowpan support over IEEE 802.15.4
CONFIG_IEEE802154_6LOWPAN

IEEE 802.15.4上支持IPv6压缩.

Generic IEEE 802.15.4 Soft Networking Stack (mac802154)
CONFIG_MAC802154

SoftMAC设备(仅实现了PHY)实现硬件独立的IEEE Std 802.15.4协议栈.使用HardMAC设备的用户应该选"N".[注意]这里的实现既未通过认证,也未进行充分的兼容性测试.

QoS and/or fair queueing
CONFIG_NET_SCHED

QoS(Quality of Service)支持.当内核有多个包须要经过网络发送的时候,它须要决定哪一个包先发,那个包后发,哪一个包丢弃.这就是包调度算法.关闭此项表示内核使用最简单的FIFO算法,开启此项后就能够使用多种不一样的调度算法(须要配合用户层工具iproute2+tc).QoS还用于支持diffserv(Differentiated Services)RSVP(Resource Reservation Protocol)功能.包调度的状态信息能够从"/proc/net/psched"文件中获取.仅在你确实须要的时候选"Y".

Data Center Bridging support
CONFIG_DCB

DCB(Data Center Bridging)支持.数据中心桥接是一组可加强传统以太网功能,以管理通讯的功能,尤为适用于网络通讯流量和传输率都很高的环境中.光纤通道可专用于承载此类型的通讯.可是,若是使用专用链路来仅提供光纤通道通讯,则成本可能会很高.所以,更多状况下使用以太网光纤通道.DCB功能可知足光纤通道对遍历以太网时包丢失的敏感度要求.DCB容许对等方基于优先级区分通讯.经过区分优先级,可确保在主机之间发生拥塞时,保持较高优先级通讯的包完整性.使用DCB交换协议,通讯主机能够交换会影响高速网络通讯的配置信息.而后,对等方可对公用配置进行协商,确保通讯流不中断,同时防止高优先级包出现包丢失.这些功能都须要底层的网卡支持.通常网卡都是不支持的.因此不肯定的能够选"N".

DNS Resolver support
CONFIG_DNS_RESOLVER

内核DNS解析支持.用于支持CONFIG_AFS_FS/CONFIG_CIFS/CONFIG_CIFS_SMB2模块.此功能须要用户态程序"/sbin/dns.resolve"和配置文件"/etc/request-key.conf"的支持.更多信息参见"Documentation/networking/dns_resolver.txt"文档,不肯定的选"N".

B.A.T.M.A.N. Advanced Meshing Protocol
CONFIG_BATMAN_ADV

B.A.T.M.A.N.(更好的移动无线网络方案)是一种用于 multi-hop ad-hoc mesh 网络的路由协议.它是一种去中心化分布式无线Adhoc模式,特别适用于天然灾害等紧急状况下,建立临时的无线网络.不肯定的选"N".

Open vSwitch
CONFIG_OPENVSWITCH

Open vSwitch 是一个多层虚拟交换标准.此选项提供了内核级的高速转发功能(须要配合用户态守护进程ovs-vswitchd来实现).

Virtual Socket protocol
CONFIG_VSOCKETS

这是一个相似于TCP/IP的协议,用于虚拟机之间以及虚拟机与宿主之间的通讯.开启此项后,还须要从子项中选择适用于特定虚拟化技术的传输协议.

VMware VMCI transport for Virtual Sockets
CONFIG_VMWARE_VMCI_VSOCKETS

适用于VMware虚拟化技术的VMCI传输协议支持.

NETLINK: mmaped IO
CONFIG_NETLINK_MMAP

基于内存映射机制的 netlink IO 支持.这样能够避免在用户空间与内存空间之间复制数据,从而提高操做速度.建议开启.

NETLINK: socket monitoring interface
CONFIG_NETLINK_DIAG

NETLINK socket 监视接口.ss这样的诊断工具须要它.

Network priority cgroup
CONFIG_NETPRIO_CGROUP

Cgroup子系统支持:基于每一个网络接口为每一个进程分配网络使用优先级.

enable BPF Just In Time compiler
CONFIG_BPF_JIT

BPF(Berkeley Packet Filter)的过滤功能一般由一个解释器(interpreter)解释执行BPF虚拟机指令的方式工做.开启此项,内核在加载过滤指令后,会将其编译为本地指令,以加快执行速度.网络嗅探程序(libpcap/tcpdump)能够从中受益.注意:须要"echo 1 > /proc/sys/net/core/bpf_jit_enable"以后才能生效.

Network testing

网络测试,仅供调试使用

Amateur Radio support
CONFIG_HAMRADIO

业余无线电支持.供无线电爱好者进行自我训练/相互通信/技术研究

CAN bus subsystem support
CONFIG_CAN

CAN(Controller Area Network)是一个低速串行通讯协议.被普遍地应用于工业自动化/船舶/医疗设备/工业设备等嵌入式领域.更多信息参见"Documentation/networking/can.txt"文件.

IrDA (infrared) subsystem support
CONFIG_IRDA

红外线通信技术支持,主要用于嵌入式环境,某些老旧的笔记本上也可能会有红外接口.

Bluetooth subsystem support
CONFIG_BT

蓝牙支持.蓝牙目前已经基本取代红外线,成为嵌入式设备/智能设备/笔记本的标配近距离(小于10)通讯设备.Linux上一般使用来自BlueZhciconfigbluetoothd工具操做蓝牙通讯.

RFCOMM protocol support
CONFIG_BT_RFCOMM

虚拟串口协议(RFCOMM)是一个面向链接的流传输协议,提供RS232控制和状态信号,从而模拟串口的功能.它被用于支持拨号网络,OBEX(Object Exchange),以及某些蓝牙程序(例如文件传输).

RFCOMM TTY support
CONFIG_BT_RFCOMM_TTY

容许在RFCOMM通道上模拟TTY终端

BNEP protocol support
CONFIG_BT_BNEP

蓝牙网络封装协议(Bluetooth Network Encapsulation Protocol)能够在蓝牙上运行其余网络协议(TCP/IP). Bluetooth PAN(Personal Area Network)须要它的支持.

Multicast filter support
CONFIG_BT_BNEP_MC_FILTER

组播支持

Protocol filter support
CONFIG_BT_BNEP_PROTO_FILTER

协议过滤器支持

CMTP protocol support
CONFIG_BT_CMTP

CMTP(CAPI消息传输协议)用于支持已在上世纪被淘汰的ISDN设备.不肯定的选"N".

HIDP protocol support
CONFIG_BT_HIDP

人机接口设备协议(Human Interface Device Protocol)用于支持各类人机接口设备(好比鼠标/键盘/耳机等).

Bluetooth device drivers

各类蓝牙设备驱动

HCI USB driver
CONFIG_BT_HCIBTUSB

使用USB接口的蓝牙设备支持

HCI SDIO driver
CONFIG_BT_HCIBTSDIO

使用SDIO接口的蓝牙设备支持

HCI UART driver
CONFIG_BT_HCIUART

使用串口的蓝牙设备支持.此外,基于UART的蓝牙PCMCIACF设备也须要此模块的支持.

UART (H4) protocol support
CONFIG_BT_HCIUART_H4

大多数使用UART接口的蓝牙设备(包括PCMCIACF)都使用这个协议.

BCSP protocol support
CONFIG_BT_HCIUART_BCSP

基于CSR(Cambridge Silicon Radio)公司的BlueCore系列芯片的蓝牙设备(包括PCMCIACF)支持

Atheros AR300x serial support
CONFIG_BT_HCIUART_ATH3K

基于Atheros AR300x系列芯片的蓝牙设备支持

HCILL protocol support
CONFIG_BT_HCIUART_LL

基于Texas Instruments公司的BRF芯片的蓝牙设备支持

Three-wire UART (H5) protocol support
CONFIG_BT_HCIUART_3WIRE

Three-wire UART (H5) 协议假定UART通讯可能存在各类错误,从而使得CTS/RTS引脚线变得无关紧要.看不懂就能够不选.

HCI VHCI (Virtual HCI device) driver
CONFIG_BT_HCIVHCI

模拟蓝牙设备支持.主要用于开发

{大多数蓝牙设备并不须要特定的独立驱动,此处省略的独立驱动仅是为了驱动那些不严格遵照蓝牙规范的芯片}

RxRPC session sockets
CONFIG_AF_RXRPC

RxRPC会话套接字支持(仅包括传输部分,不含表示部分).CONFIG_AFS_FS依赖于它.不肯定的选"N".详情参见"Documentation/networking/rxrpc.txt"文档.

Wireless
CONFIG_WIRELESS

无线网络支持.

cfg80211 - wireless configuration API
CONFIG_CFG80211

cfg80211Linux无线局域网(802.11)配置接口,是使用WiFi的前提.注意:"WiFi"是一个无线网路通讯技术的品牌,WiFi联盟所持有.目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性.现时通常人会把WiFiIEEE 802.11混为一谈,甚至把WiFi等同于无线网路(WiFi只是无线网络的一种).

nl80211 testmode command
CONFIG_NL80211_TESTMODE

仅供调试和特殊目的使用.

enable developer warnings
CONFIG_CFG80211_DEVELOPER_WARNINGS

仅供调试开发使用

cfg80211 regulatory debugging
CONFIG_CFG80211_REG_DEBUG

仅供调试开发使用

cfg80211 certification onus
CONFIG_CFG80211_CERTIFICATION_ONUS

仅在你确实明白此项含义的状况下,才考虑选"Y",不然请选"N".

enable powersave by default
CONFIG_CFG80211_DEFAULT_PS

默认开启省电模式.可能会致使某些设计拙劣的网络程序掉线.建议开启.详情参见"Documentation/power/pm_qos_interface.txt"文档.

cfg80211 DebugFS entries
CONFIG_CFG80211_DEBUGFS

仅供调试

use statically compiled regulatory rules database
CONFIG_CFG80211_INTERNAL_REGDB

因为绝大多数发行版都含有CRDA软件包,因此绝大多数人应该选"N".若是你确实须要选"Y",那么请认真阅读"net/wireless/db.txt"文件.

cfg80211 wireless extensions compatibility
CONFIG_CFG80211_WEXT

为那些老旧的用户空间程序提供兼容性,建议关闭.

lib80211 debugging messages
CONFIG_LIB80211_DEBUG

仅供调试

Generic IEEE 802.11 Networking Stack (mac80211)
CONFIG_MAC80211

独立于硬件的通用IEEE 802.11协议栈模块(mac80211).它是驱动开发者用来编写softMAC无线设备驱动的框架,softMAC设备容许用软件实现帧的管理(包括解析和产生80211无线帧),从而让系统能更好的控制硬件,如今大多数的无线网卡都是softMAC设备.不肯定的选"Y".

PID controller based rate control algorithm
CONFIG_MAC80211_RC_PID

基于比例-积分-微分控制器(PID controller)的发送速率(TX rate)控制算法.用于CONFIG_MAC80211模块.不肯定的选"N".

Minstrel
CONFIG_MAC80211_RC_MINSTREL

minstrel发送速率(TX rate)控制算法.用于CONFIG_MAC80211模块.这是首选的算法,不肯定的选"Y".

Minstrel 802.11n support
CONFIG_MAC80211_RC_MINSTREL_HT

minstrel_ht发送速率(TX rate)控制算法.适用于802.11n规范.不肯定的选"Y".

Default rate control algorithm

默认发送速率(TX rate)控制算法.至关于mac80211模块"ieee80211_default_rc_algo"参数的值.建议选择"Minstrel"算法.

Enable mac80211 mesh networking (pre-802.11s) support
CONFIG_MAC80211_MESH

802.11s草案是无线网状网络(Mesh Networking)的延伸与增补标准(amendment).它扩展了IEEE 802.11 MAC(介质访问控制)标准,定义了利用自我组态的多点跳跃拓朴(multi-hop topologies),进行无线感知(radio-aware metrics),以支援广播/组播/单播传送网络封包的架构与协定.不肯定的选"N".

Enable LED triggers
CONFIG_MAC80211_LEDS

容许在接受/发送数据时触发无线网卡的LED灯闪烁.

Export mac80211 internals in DebugFS
CONFIG_MAC80211_DEBUGFS

DebugFS中显示mac80211模块内部状态的扩展信息,仅用于调试目的.

Trace all mac80211 debug messages
CONFIG_MAC80211_MESSAGE_TRACING

跟踪全部mac80211模块的调试信息,仅用于调试目的.

Select mac80211 debugging features
CONFIG_MAC80211_DEBUG_MENU

仅供调试

WiMAX Wireless Broadband support
CONFIG_WIMAX

WiMAX(IEEE 802.16)协议支持.随着2010年英特尔放弃WiMAX以及LTE4G市场成了惟一的主流标准,WiMAX的电信运营商也逐渐向LTE转移,WiMAX论坛也于2012年将TD-LTE归入WiMAX2.1规范,一些WiMAX运营商也开始将设备升级为TD-LTE.

WiMAX debug level
CONFIG_WIMAX_DEBUG_LEVEL

设置容许使用的最大调试信息详细等级,推荐使用默认值"8",设为"0"表示容许使用全部调试信息.运行时默认禁止使用调试信息,但可经过sysfs文件系统中的debug-levels文件开启调试信息.

RF switch subsystem support
CONFIG_RFKILL

为了节约电力,不少无线网卡和蓝牙设备都有内置的射频开关(RF switche)用于开启和关闭设备(经过rfkill命令).建议选"Y".更多详情参见"Documentation/rfkill.txt"文档

RF switch input support
CONFIG_RFKILL_INPUT

这是个反对使用的特性,通常状况下建议关闭.可是某些笔记本无线网卡的开关是由按钮控制的,在这些笔记本上建议开启.

Generic rfkill regulator driver
CONFIG_RFKILL_REGULATOR

通用射频开关驱动.这是最通用的驱动,其射频开关链接在电压调节器(voltage regulator).依赖于CONFIG_REGULATOR框架.

GPIO RFKILL driver
CONFIG_RFKILL_GPIO

通用GPIO射频开关驱动.仅用于嵌入式环境,其射频开关链接在GPIO总线上,好比NVIDIATegra和三星的Exynos 4智能手机SoC芯片.

Plan 9 Resource Sharing Support (9P2000)
CONFIG_NET_9P

实验性的支持Plan 99P2000协议.

CAIF support
CONFIG_CAIF

除非你为Android/MeeGo系统编译内核,而且须要使用PF_CAIF类型的socket,不然请选"N".

Ceph core library
CONFIG_CEPH_LIB

仅在你须要使用Ceph分布式文件系统,或者rados块设备(rbd)时选"Y".不然应选"N".

NFC subsystem support
CONFIG_NFC

NFC(近场通讯)子系统.这些设备主要用于智能手机之类的嵌入式领域.

Device Drivers设备驱动程序

Generic Driver Options

驱动程序通用选项

path to uevent helper
CONFIG_UEVENT_HELPER_PATH

早年的内核(切换到基于netlink机制以前),在发生uevent事件(一般是热插拔),须要调用用户空间程序(一般是"/sbin/hotplug"),以帮助完成uevent事件的处理.此选项就是用于设定这个帮助程序的路径.因为目前的发行版都已再也不须要此帮助程序,因此请保持空白.

Maintain a devtmpfs filesystem to mount at /dev
CONFIG_DEVTMPFS

devtmpfs是一种基于CONFIG_TMPFS的文件系统(procsys有几分类似).在系统启动过程当中,随着各个设备的初始化完成,内核将会自动在devtmpfs中建立相应的设备节点(使用默认的文件名和权限)并赋予正确的主次设备号.更进一步,在系统运行过程当中,随着各类设备插入和拔除,内核也一样会自动在devtmpfs中建立和删除的相应的设备节点(使用默认的文件名和权限)并赋予正确的主次设备号.若是将devtmpfs挂载到"/dev"目录(一般是系统启动脚本),那么便拥有了一个全自动且全功能的"/dev"目录,并且用户空间程序(一般是udevd)还能够对其中的内容进行各类修改(增删节点,改变权限,建立符号连接).目前的发行版和各类嵌入式系统基本都依赖于此,除非你知道本身在作什么,不然请选"Y".

Automount devtmpfs at /dev, after the kernel mounted the rootfs
CONFIG_DEVTMPFS_MOUNT

在内核挂载根文件系统的同时,当即自动将devtmpfs挂载到"/dev"目录.由于此时init进程都还还没有启动,因此这就确保在进入用户空间以前,全部设备文件就都已经准备完毕.开启此选项至关于设置内核引导参数"devtmpfs.mount=1",关闭此选项至关于设置内核引导参数"devtmpfs.mount=0".开启此项后,你就能够放心的使用"init=/bin/sh"直接进入救援模式,而没必要担忧"/dev"目录空无一物.注意:此选项并不影响基于initramfs的启动,此种状况下,devtmpfs必须被手动挂载.因此,若是你的系统使用initrd或者有专门的启动脚本用于挂载"/dev"目录(大多数发行版都有这样的脚本),或者你看了前面的解释,仍是不肯定,那就选"N".对于实在想要使用"init=/bin/sh"直接进入救援模式的人来讲,仍是使用"init=/bin/sh devtmpfs.mount=1"!

Select only drivers that don't need compile-time external firmware
CONFIG_STANDALONE

只显示那些编译时不须要额外固件支持的驱动程序,除非你有某些怪异硬件,不然请选"Y".

Prevent firmware from being built
CONFIG_PREVENT_FIRMWARE_BUILD

不编译固件(firmware).固件通常是随硬件的驱动程序提供的,仅在更新固件的时候才须要从新编译.建议选"Y".

Userspace firmware loading support
CONFIG_FW_LOADER

用户空间固件加载支持.若是内核自带的模块须要它,它将会被自动选中.但某些内核树以外的模块也可能须要它,这时候就须要你根据实际状况手动开启了.

Include in-kernel firmware blobs in kernel binary
CONFIG_FIRMWARE_IN_KERNEL

内核源码树中包含了许多驱动程序须要的二进制固件(blob),推荐的方法是经过"make firmware_install""firmware"目录中所需的固件复制到系统的"/lib/firmware/"目录中,而后由用户空间帮助程序在须要的时候进行加载.开启此项后,将会把所需的"blob"直接编译进内核,这样就能够无需用户空间程序的帮助,而直接使用这些固件了(例如:当根文件系统依赖于此类固件,而你又不想使用initrd的时候).每一个须要此类二进制固件的驱动程序,都会有一个"Include firmware for xxx device"的选项,若是此处选"Y",那么这些选项都将被隐藏.建议选"N".

External firmware blobs to build into the kernel binary
CONFIG_EXTRA_FIRMWARE

指定要额外编译进内核的二进制固件(blob).此选项的值是一个空格分隔的固件文件名字符串,这些文件必须位于CONFIG_EXTRA_FIRMWARE_DIR目录中(其默认值是内核源码树下的"firmware"目录).

Firmware blobs root directory
CONFIG_EXTRA_FIRMWARE_DIR

指定CONFIG_EXTRA_FIRMWARE中列出的文件位于哪一个目录.默认值是当前内核源码树下的"firmware"目录.如有须要,你也能够修改为其余目录(例如"/lib/firmware/").

Fallback user-helper invocation for firmware loading
CONFIG_FW_LOADER_USER_HELPER

在内核本身直接加载固件失败后,做为补救措施,调用用户空间帮助程序(一般是udev)再次尝试加载.一般这个动做是没必要要的,所以应该选"N".仅在某些特殊的固件位于非标准位置时,才须要选"Y".

Driver Core verbose debug messages
CONFIG_DEBUG_DRIVER

让驱动程序核心在系统日志中产生冗长的调试信息,仅供调试

Managed device resources verbose debug messages
CONFIG_DEBUG_DEVRES

为内核添加一个"devres.log"引导参数.当被设为非零值时,将会打印出设备资源管理驱动(devres)的调试信息.仅供调试使用.

Contiguous Memory Allocator
CONFIG_CMA

在使用ARM等嵌入式Linux系统的时候,GPU,Camera,HDMI等都须要预留大量连续内存,这部份内存平时不用,可是传统的作法又必须先预留着.而经过连续内存分配器(Contiguous Memory Allocator)能够作到不预留内存,仅在须要的时候才将大块的连续物理内存分配给相应的驱动程序.这个机制对于那些不支持I/O mapscatter-gather的设备颇有做用.详情参见"include/linux/dma-contiguous.h"文件,不肯定的选"N".

Bus devices

总线设备.此类设备仅出如今ARM平台.

Connector - unified userspace <-> kernelspace linker
CONFIG_CONNECTOR

统一的用户空间和内核空间链接器,工做在netlink socket协议的顶层.链接器是很是便利的用户态与内核态的通讯方式,内核开发者在编写内核子系统或模块时能够采用这种方式方便地进行用户态与内核态的数据交换.内核有两个链接器应用实例:一个是进程事件链接器,另外一个是CIFS文件系统.另外还有一个Gentoo装上启动画面的例子.

Report process events to userspace
CONFIG_PROC_EVENTS

提供一个向用户空间报告进程事件(fork,exec,id变化(uid,gid,suid))的链接器.

Memory Technology Device (MTD) support
CONFIG_MTD

MTD子系统是一个闪存转换层.其主要目的是提供一个介于闪存硬件驱动程序与高级应用程序之间的抽象层,以简化闪存设备的驱动.注意:MTD经常使用于嵌入式系统,而咱们常见的U/MMC/SD/CF卡等移动存储设备以及固态硬盘(SSD),虽然也叫"flash",但它们并非使用MTD技术的存储器.仅在你须要使用主设备号为31MTD块设备(/dev/romX,/dev/rromX,/dev/flashX,/dev/rflashX),或者主设备号为90MTD字符设备(/dev/mtdX,/dev/mtdrX)时选"Y",不然选"N".

Parallel port support
CONFIG_PARPORT

25针并口(LPT接口)支持.古董级的打印机或扫描仪可能使用这种接口.目前已被淘汰.

Plug and Play support
CONFIG_PNP

即插即用(PnP)支持."Y"表示让LinuxPnP设备分配中断和I/O端口(须要在BIOS中开启"PnP OS"),"N"则表示让BIOS来分配(须要在BIOS中关闭"PnP OS").建议选"Y".

PNP debugging messages
CONFIG_PNP_DEBUG_MESSAGES

容许使用"pnp.debug"内核参数在系统启动过程当中输出PnP设备的调试信息,建议选"N".

Block devices
CONFIG_BLK_DEV

块设备,建议选"Y".

Normal floppy disk support
CONFIG_BLK_DEV_FD

通用软驱支持.已被时代抛弃的设备

Parallel port IDE device support
CONFIG_PARIDE

经过并口与计算机链接的IDE设备,好比某些老旧的外接光驱或硬盘之类.此类设备早就绝种了

Block Device Driver for Micron PCIe SSDs
CONFIG_BLK_DEV_PCIESSD_MTIP32XX

Micron P320/P325/P420/P425 系列固态硬盘支持

Compaq SMART2 support
CONFIG_BLK_CPQ_DA

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

Compaq Smart Array 5xxx support
CONFIG_BLK_CPQ_CISS_DA

基于 Compaq Smart 控制器的磁盘阵列卡

SCSI tape drive support for Smart Array 5xxx
CONFIG_CISS_SCSI_TAPE

在基于 Compaq Smart 控制器的磁盘阵列卡上使用的磁带机

Mylex DAC960/DAC1100 PCI RAID Controller support
CONFIG_BLK_DEV_DAC960

Mylex DAC960, AcceleRAID, eXtremeRAID PCI RAID 控制器.很古董的设备了.

Micro Memory MM5415 Battery Backed RAM support
CONFIG_BLK_DEV_UMEM

一种使用电池作后备电源的内存,但被用做块设备,能够像硬盘同样被分区

Loopback device support
CONFIG_BLK_DEV_LOOP

loop是指拿文件来模拟块设备(/dev/loopX),好比能够将一个iso9660镜像文件当成文件系统来挂载.建议选"Y".

Number of loop devices to pre-create at init time
CONFIG_BLK_DEV_LOOP_MIN_COUNT

系统预先初始化的loop设备个数.此值能够经过内核引导参数"loop.max_loop"修改.若是你使用util-linux-2.21以上版本,建议设为"0"(loop设备将经过/dev/loop-control动态建立),不然保持默认值便可.

Cryptoloop Support
CONFIG_BLK_DEV_CRYPTOLOOP

使用系统提供的CryptoAPIloop设备加密.注意:由于不能在Cryptoloop上建立日志型文件系统(CONFIG_DM_CRYPT模块能够),因此Cryptoloop已经逐渐淡出了.建议选"N".

DRBD Distributed Replicated Block Device support
CONFIG_BLK_DEV_DRBD

DRBD(Distributed Replicated Block Device)是一种分布式储存系统.DBRD处于文件系统之下,比文件系统更加靠近操做系统内核及IO.DRBD相似RAID1磁盘阵列,只不过RAID1是在同一台电脑内,DRBD是透过网络.注意:为了进行链接认证,你还须要选中CONFIG_CRYPTO_HMAC以及相应的哈希算法.不肯定的选"N".

DRBD fault injection
CONFIG_DRBD_FAULT_INJECTION

模拟IO错误,以用于测试DRBD的行为.主要用于调试目的

Network block device support
CONFIG_BLK_DEV_NBD

让你的电脑成为网络块设备的客户端,也就是能够挂载远程服务器经过TCP/IP网络提供的块设备(/dev/ndX).提示:这与NFSCoda没有任何关系.更多详情参见"Documentation/blockdev/nbd.txt".不肯定的选"N".

NVM Express block device
CONFIG_BLK_DEV_NVME

NVM Express是专门针对PCI-E接口高性能固态硬盘的标准规范.有了这一标准,操做系统厂商只须要编写一种驱动,就能够支持不一样厂商的不一样PCI-E SSD设备,以解决目前PCI-E SSD产品形态与规格五花八门,缺少通用性和互用性的问题.

OSD object-as-blkdev support
CONFIG_BLK_DEV_OSD

容许将一个单独的 SCSI OSD(Object-Based Storage Devices) 对象当成普通的块设备来使用.举例来讲,你能够在OSD设备上建立一个2G大小的对象,而后经过本模块将其模拟成一个2G大小的块设备使用.不肯定的选"N".

Promise SATA SX8 support
CONFIG_BLK_DEV_SX8

基于Promise公司的SATA SX8控制器的RAID

RAM block device support
CONFIG_BLK_DEV_RAM

内存中的虚拟磁盘,大小固定.详情参阅"Documentation/blockdev/ramdisk.txt".因为其功能比CONFIG_TMPFS弱许多,使用上也不方便,因此除非你有明确的理由,不然应该选"N",并转而使用CONFIG_TMPFS.

Default number of RAM disks
CONFIG_BLK_DEV_RAM_COUNT

默认RAM disk的数量.请保持默认值,除非你知道本身在作什么.

Default RAM disk size (kbytes)
CONFIG_BLK_DEV_RAM_SIZE

默认RAM disk的大小.请保持默认值,除非你知道本身在作什么.

Support XIP filesystems on RAM block device
CONFIG_BLK_DEV_XIP

XIP(eXecute In Place)支持(指应用程序能够直接在flash闪存内运行,没必要再把代码读到系统RAM).通常用于嵌入式设备.

Packet writing on CD/DVD media
CONFIG_CDROM_PKTCDVD

CD/DVD刻录机支持.详情参见"Documentation/cdrom/packet-writing.txt"文档

Free buffers for data gathering
CONFIG_CDROM_PKTCDVD_BUFFERS

用于收集写入数据的缓冲区个数(每一个占用64Kb内存),缓冲区越多性能越好.

Enable write caching
CONFIG_CDROM_PKTCDVD_WCACHE

CD-R/W设备启用写入缓冲,目前这是一个比较危险的选项.建议关闭.

ATA over Ethernet support
CONFIG_ATA_OVER_ETH

以太网ATA设备(ATA over Ethernet)支持.

Xen virtual block device support
CONFIG_XEN_BLKDEV_FRONTEND

XEN虚拟块设备前端驱动.此驱动用于与实际驱动块设备的后端驱动(一般位于domain0)通讯.

Xen block-device backend driver
CONFIG_XEN_BLKDEV_BACKEND

XEN块设备后端驱动(一般位于domain0)容许内核将实际的块设备经过高性能的共享内存接口导出给其余客户端的前端驱动(一般位于非domain0)使用.

Virtio block driver
CONFIG_VIRTIO_BLK

Virtio虚拟块设备驱动.它能够用于KVMXEN这类基于lguestQEMUVMM(Virtual Machine Monitor).

Very old hard disk (MFM/RLL/IDE) driver
CONFIG_BLK_DEV_HD

又老又旧的MFM/RLL/ESDI硬盘驱动.无需犹豫,"N".

Rados block device (RBD)
CONFIG_BLK_DEV_RBD

rados块设备(rbd)支持.它能够与分布式文件系统Ceph合做,也能独立工做.

IBM FlashSystem 70/80 PCIe SSD Device Driver
CONFIG_BLK_DEV_RSXX

IBM FlashSystem 70/80 PCIe SSD 驱动

Misc devices

杂项设备

{省略的部分请按照实际的硬件情况进行选择}

Integrated Circuits ICS932S401
CONFIG_ICS932S401

IDT ICS932S401 系列时钟频率控制芯片支持(可能会出如今某些主板上).

Enclosure Services
CONFIG_ENCLOSURE_SERVICES

SES(SCSI Enclosure Services)是一项目前大多数移动硬盘盒/硬盘托架/电脑主板都支持的硬件控制命令服务,SES可让主机端透过SCSI命令去控制外接盒内的电源/冷却装置以及其余与数据传输无关的东西.要使用这项技术,外置硬盘盒和主机上的SCSI/ATA芯片都须要支持SES技术才OK.

VMware Balloon Driver
CONFIG_VMWARE_BALLOON

VMware物理内存balloon驱动.参见CONFIG_BALLOON_COMPACTION选项.

Generic on-chip SRAM driver
CONFIG_SRAM

许多SoC系统都有芯片内嵌的SRAM.开启此项后,就能够声明将此段内存范围交给通用内存分配器(genalloc)管理.不肯定的选"N".

EEPROM support

EEPROM主要用于保存主板或板卡的BIOS,若是你想经过此Linux系统刷写BIOS能够考虑开启相应的子项.不肯定的所有选"N".

Intel Management Engine Interface
CONFIG_INTEL_MEI

Intel芯片组管理引擎,介于固件和系统驱动之间,相似于一种接口(Interface),帮助系统和固件之间交互.若是你的芯片组位于"CONFIG_INTEL_MEI_ME",能够选"Y",不过其实也没有多少实际意义.

ME Enabled Intel Chipsets
CONFIG_INTEL_MEI_ME

请根据帮助中列出的芯片组对照实际状况选择.

VMware VMCI Driver
CONFIG_VMWARE_VMCI

VMware VMCI(Virtual Machine Communication Interface)是一个在hostguest之间以及同一host上的guestguest之间进行高速通讯的虚拟设备.VMCI主要是提供一个接口让guest内的程序来调用,经过这个接口能在一个主机上的多个虚拟机之间进行直接的通讯,并且无需通过更上层的其余途径,这样将有效地下降网络通讯所产生的开支,可是这须要修改虚拟机上的软件,因此VMCI只适用于对虚拟机间通讯要求很是高的状况.不肯定的选"N".

ATA/ATAPI/MFM/RLL support (DEPRECATED)
CONFIG_IDE

已被废弃的IDE硬盘和ATAPI光驱等接口的驱动(已被CONFIG_ATA取代)."N",除非你确实知道本身在干什么.

SCSI device support

SCSI子系统

RAID Transport Class
CONFIG_RAID_ATTRS

这只是用来获得RAID信息以及未来可能用于配置RAID方式的一个类.无论你的系统使用的是哪一种RAID,均可以放心的关闭此项.不肯定的选"N".

SCSI device support
CONFIG_SCSI

SCSI协议支持.有任何SCSI/SAS/SATA/USB/Fibre Channel/FireWire设备之一就必须选上."Y".

SCSI target support
CONFIG_SCSI_TGT

内核态的通用SCSI Target实现(LIO项目).SCSI子系统使用了一种客户机-服务器(C/S)模型.一般,一台计算机是这个模型中的客户机(称为"initiator"),向目标(target)发起块操做请求,这个"target"一般是一个存储设备(例如一块硬盘).此模块的功能是将一台计算机变成一个"target"(就像一个普通的硬盘同样),响应其余"initiator"节点的操做请求,从而让"target"可以提供更加高级的功能:复制,自动精简配置,重复数据删除,高可用性,自动备份等.不肯定的选"N".

legacy /proc/scsi/ support
CONFIG_SCSI_PROC_FS

过期的/proc/scsi/接口.某些老旧的刻录程序可能须要它,建议选"N".

SCSI disk support
CONFIG_BLK_DEV_SD

使用SCSI/SAS/SATA/PATA/USB/Fibre Channel存储设备的必选."Y".

SCSI tape support
CONFIG_CHR_DEV_ST

通用SCSI磁带驱动

SCSI OnStream SC-x0 tape support
CONFIG_CHR_DEV_OSST

专用于OnStream SC-x0/USB-x0/DI-x0SCSI磁带/USB盘驱动

SCSI CDROM support
CONFIG_BLK_DEV_SR

经过SCSI/FireWire/USB/SATA/IDE接口链接的DVD/CD驱动器(基本上涵盖了全部常见的接口).

Enable vendor-specific extensions (for SCSI CDROM)
CONFIG_BLK_DEV_SR_VENDOR

仅在某些古董级的SCSI CDROM设备上才须要:NEC/TOSHIBA cdrom, HP Writers

SCSI generic support
CONFIG_CHR_DEV_SG

通用SCSI协议(/dev/sg*)支持.也就是除硬盘/光盘/磁带以外的SCSI设备(例如光纤通道).这些设备还须要额外的用户层工具支持才能正常工做.例如:SANE,Cdrtools,CDRDAO,Cdparanoia

SCSI media changer support
CONFIG_CHR_DEV_SCH

SCSI介质转换设备(SCSI Medium Changer device)是一种控制多个SCSI介质的转换器(例如在多个磁带/光盘之间进行切换),经常使用于控制磁带库或者CD自动点歌机(jukeboxes).此种设备会在/proc/scsi/scsi中以"Type: Medium Changer"列出.控制此类设备的用户层工具包是scsi-changer.更多细节参见"Documentation/scsi/scsi-changer.txt"文档.不肯定的选"N".

SCSI Enclosure Support
CONFIG_SCSI_ENCLOSURE

"Enclosure"是一种用于管理SCSI设备的背板装置.好比移动硬盘盒就是一种常见的"Enclosure"设备.此项主要用于向用户层报告一些"Enclosure"设备的状态,这些状态对于SCSI设备的正常运行并不是必须.此项依赖于CONFIG_ENCLOSURE_SERVICES选项.

Probe all LUNs on each SCSI device
CONFIG_SCSI_MULTI_LUN

默认强制在每一个SCSI设备上探测全部的逻辑设备数量(Logical Unit Number),其值会被该模块的内核引导参数"max_luns"覆盖.只在一个SCSI设备上有多个逻辑设备时才须要选它,通常的SCSI设备并不须要.一个SCSI设备上有多个逻辑设备的典型例子:多口USB读卡器,CD点唱机(jukebox),处于"mass storage"模式的智能手机,量产为多个设备后的U.注意:此项并不影响符合SCSI-3或更高标准的设备,由于这些设备会明确的向内核报告逻辑设备数.

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

以易读的方式报告SCSI错误,内核将会增大12K

SCSI logging facility
CONFIG_SCSI_LOGGING

启用SCSI日志(默认并不开启,须要"echo [bitmask] > /proc/sys/dev/scsi/logging_level"),可用于跟踪和捕获SCSI设备的错误.关于[bitmask]的说明能够查看"drivers/scsi/scsi_logging.h"文件.

Asynchronous SCSI scanning
CONFIG_SCSI_SCAN_ASYNC

异步扫描的意思是,在内核引导过程当中,SCSI子系统能够在不影响其余子系统引导的同时进行SCSI设备的探测(包括同时在多个总线上进行检测),这样能够加快系统的引导速度.可是若是SCSI设备驱动被编译为模块,那么异步扫描将会致使内核引导出现问题(解决方法是加载scsi_wait_scan模块,或者使用"scsi_mod.scan=sync"内核引导参数).不肯定的选"N".

SCSI Transports

SCSI接口类型,下面的子项能够全不选,内核中如有其余部分依赖它,会自动选上

Parallel SCSI (SPI) Transport Attributes
CONFIG_SCSI_SPI_ATTRS

传统的并行SCSI(Ultra320/160之类),已逐渐被淘汰

FiberChannel Transport Attributes
CONFIG_SCSI_FC_ATTRS

光纤通道接口

SCSI target support for FiberChannel Transport Attributes
CONFIG_SCSI_FC_TGT_ATTRS

为光纤通道添加"target"模式驱动

iSCSI Transport Attributes
CONFIG_SCSI_ISCSI_ATTRS

iSCSI协议是利用TCP/IP网络传送SCSI命令和数据的I/O技术

SAS Transport Attributes
CONFIG_SCSI_SAS_ATTRS

串行SCSI传输属性支持(SAS对于SPI的关系犹如SATA对于IDE),这是目前的主流接口

SAS Domain Transport Attributes
CONFIG_SCSI_SAS_LIBSAS

为使用了SAS Domain架构的驱动程序提供帮助.SAS Domain即整个SAS交换构架,"SAS device""SAS expander device"组成,其中Device又区分为InitiatorTarget,它们能够直接对接起来,也能够通过Expander进行链接,Expander起到通道交换或者端口扩展的做用.看不懂就说明你不须要它.

ATA support for libsas (requires libata)
CONFIG_SCSI_SAS_ATA

libsas中添加ATA支持,从而让libatalibsas协同工做.

Support for SMP interpretation for SAS hosts
CONFIG_SCSI_SAS_HOST_SMP

libsas中添加SMP解释器,以容许主机支持SAS SMP协议.

SRP Transport Attributes
CONFIG_SCSI_SRP_ATTRS

SCSI RDMA 协议(SCSI RDMA Protocol)经过将SCSI数据传输阶段映射到Infiniband远程直接内存访问(Remote Direct Memory Access)操做加速了SCSI协议.

SCSI target support for SRP Transport Attributes
CONFIG_SCSI_SRP_TGT_ATTRS

SRP添加"target"模式驱动

SCSI low-level drivers
CONFIG_SCSI_LOWLEVEL

底层SCSI驱动程序

iSCSI Initiator over TCP/IP
CONFIG_ISCSI_TCP

iSCSI协议利用TCP/IP网络在"initiator""targets"间传送SCSI命令和数据.此选项即是iSCSI initiator驱动.相关的用户层工具/文档/配置示例,能够在open-iscsi找到.

iSCSI Boot Sysfs Interface
CONFIG_ISCSI_BOOT_SYSFS

经过sysfs向用户空间显示iSCSI的引导信息.

{此处省略的部分按照实际使用的控制器进行选择}

VMware PVSCSI driver support
CONFIG_VMWARE_PVSCSI

VMware半虚拟化的SCSI HBA控制器

Microsoft Hyper-V virtual storage driver
CONFIG_HYPERV_STORAGE

微软的Hyper-V虚拟存储控制器

Intel(R) C600 Series Chipset SAS Controller
CONFIG_SCSI_ISCI

Intel C600 系列芯片组 6Gb/s SAS控制器

virtio-scsi support
CONFIG_SCSI_VIRTIO

virtio虚拟HBA控制器

PCMCIA SCSI adapter support
CONFIG_SCSI_LOWLEVEL_PCMCIA

经过PCMCIA卡与计算机链接的SCSI设备

SCSI Device Handlers
CONFIG_SCSI_DH

针对某些特定SCSI设备的驱动,具体子项请按照实际使用的控制器进行选择

OSD-Initiator library
CONFIG_SCSI_OSD_INITIATOR

OSD(Object-Based Storage Device)协议是一个T10 SCSI命令集,SCSI处于同一级别,也跟SCSI很相似,分红osd-initiator/osd-target两部分,用于对象存储文件系统,此选项实现了OSD-Initiator(libosd.ko).更多细节参见"Documentation/scsi/osd.txt"文件.看不懂就说明你不须要.[提示]此选项依赖于CONFIG_CRYPTO_SHA1CONFIG_CRYPTO_HMAC模块.

OSD Upper Level driver
CONFIG_SCSI_OSD_ULD

提供OSD上层驱动(也就是向用户层提供/dev/osdX设备).从而容许用户层控制OSD设备(好比挂载基于OSDexofs文件系统).

Serial ATA and Parallel ATA drivers
CONFIG_ATA

SATAPATA(IDE)设备.桌面级PC以及低端服务器的硬盘基本都是此种接口

Verbose ATA error reporting
CONFIG_ATA_VERBOSE_ERROR

输出详细的ATA命令描述信息.大约会让内核增大6KB.禁用它将会致使调试ATA设备错误变得困难.

ATA ACPI Support
CONFIG_ATA_ACPI

ATA相关的ACPI对象支持.这些对象与性能/安全/电源管理等相关.无论你使用的是IDE硬盘仍是SATA硬盘,都建议开启(能够使用内核引导参数"libata.noacpi=1"关闭).

SATA Zero Power Optical Disc Drive (ZPODD) support
CONFIG_SATA_ZPODD

这是SATA-3.1版规范新增的节能相关内容,用新的电源管理策略下降了整个系统的电力需求,可让处于空闲状态的光驱耗电量近乎于零.这须要主板和光驱二者都支持SATA-3.1规范才行.

SATA Port Multiplier support
CONFIG_SATA_PMP

SATA端口复用器(Port Multiplier)是一个定义在SATA规范里面的能够选择的功能,能够把一个活动主机链接多路复用至多个设备链接,至关于一个SATA HUB.不肯定的选"N".

AHCI SATA support
CONFIG_SATA_AHCI

AHCI SATA 支持.这是最佳的SATA模式(NCQ功能依赖于它).某些主板还须要在BIOS中将硬盘明确设为AHCI模式.使用SATA硬盘者必选"Y".[提示]因为各厂商芯片组内的SATA控制器都遵循同一种规范,因此并不须要各类各样针对不一样SATA控制器的驱动,就这一个驱动基本就能通吃全部SATA控制器了,这比丰富多彩的网卡驱动省事多了.

Platform AHCI SATA support
CONFIG_SATA_AHCI_PLATFORM

这是用于嵌入式系统的与AHCI接口兼容的SATA驱动.并非常见的芯片组中的SATA控制器驱动.不肯定的选"N".

{此处省略几个特殊且不常见的SATA控制器驱动}

ATA SFF support (for legacy IDE and PATA)
CONFIG_ATA_SFF

使用SATA硬盘的用户可无视此项,"N"便可.对于依然使用老旧的IDE/PATA硬盘的用户而言,按照实际状况在子项中选择相应的控制器驱动便可.

{此处省略几个罕见的Pacific/Promise芯片组}

ATA BMDMA support
CONFIG_ATA_BMDMA

这是IDE控制器的事实标准.除了上世纪的古董外,绝大多数芯片组都遵照这个标准,"Y",而后从子项中选择恰当的芯片组/控制器.

{此处省略的PIO-only SFF芯片组都是早就绝迹的老古董}

ACPI firmware driver for PATA
CONFIG_PATA_ACPI

经过ACPI BIOS去操做IDE控制器.仅用于某些比较奇特的IDE控制器."N".

Generic ATA support
CONFIG_ATA_GENERIC

这是通用的IDE控制器驱动.若是你没法肯定IDE控制器的具体型号(好比须要面对未知的硬件情况),或者不想使用针对特定芯片组的IDE驱动,就选"Y".

Multiple devices driver support (RAID and LVM)
CONFIG_MD

多设备支持(RAIDLVM).RAIDLVM的功能是使用多个物理设备组建成一个单独的逻辑设备

RAID support
CONFIG_BLK_DEV_MD

"Software RAID"(须要使用mdadm工具)支持.也就是"RAID".使用硬件RAID卡的用户并不须要此项.

Autodetect RAID arrays during kernel boot
CONFIG_MD_AUTODETECT

在内核启动过程当中自动检测RAID模式.若是你没有使用RAID,那么选中此项将会让内核在启动过程当中增长几秒延迟.若是你使用了"raid=noautodetect"内核引导参数关闭了自动检测,或者此处选了"N",那么你必须使用"md=???"内核引导参数明确告诉内核RAID模式及配置.

Linear (append) mode
CONFIG_MD_LINEAR

线性模式(简单的将一个分区追加在另外一个分区以后),通常不使用这种模式.

RAID-0 (striping) mode
CONFIG_MD_RAID0

RAID-0(等量分割)模式,能够获取最高性能,可是却损害了可靠性,通常也不使用这种模式.

RAID-1 (mirroring) mode
CONFIG_MD_RAID1

RAID-1(镜像)模式.包含内核的引导分区只能使用这种模式.

RAID-10 (mirrored striping) mode
CONFIG_MD_RAID10

RAID 1+0 模式

RAID-4/RAID-5/RAID-6 mode
CONFIG_MD_RAID456

RAID-4/RAID-5/RAID-6 模式

Multipath I/O support
CONFIG_MD_MULTIPATH

多路IO支持是指在服务器和存储设备之间使用冗余的物理路径组件建立"逻辑路径",若是这些组件发生故障并形成路径失败,多路径逻辑将为I/O使用备用路径以使应用程序仍然能够访问其数据.该选项已废弃,并已被CONFIG_DM_MULTIPATH所取代."N".

Faulty test module for MD
CONFIG_MD_FAULTY

用于MD(Multi-device)的缺陷测试模块,仅用于调试.

Block device as cache
CONFIG_BCACHE

将一个块设备用做其余块设备的缓存(Bcache).此缓存使用btree(平衡树)索引,并专门为SSD进行了优化.仅在你打算使用高速SSD做为普通硬盘的缓存时才须要此功能.详情参见"Documentation/bcache.txt"文档.

Bcache debugging
CONFIG_BCACHE_DEBUG

仅供内核开发者调试使用

Extended runtime checks
CONFIG_BCACHE_EDEBUG

仅供内核开发者调试使用

Debug closures
CONFIG_BCACHE_CLOSURES_DEBUG

仅供内核开发者调试使用

Device mapper support
CONFIG_BLK_DEV_DM

Device-mapper是一个底层的卷管理器,提供了一种从逻辑设备到物理设备的映射框架,用户能够很方便的根据本身的须要制定实现存储资源的管理策略.它不像RAID那样工做在设备层,而是经过块和扇区的映射机制,将不一样磁盘的不一样部分组合成一个大的块设备供用户使用.LVM2EVMS都依赖于它.此外,那些集成在南桥(例如ICH8R/ICH9R/ICH10R系列等)中所谓的"RAID"(准确的称呼应该是"Device Mapper RAID",又称为"Fake RAID"/"BIOS RAID")也依赖于它.

Device mapper debugging support
CONFIG_DM_DEBUG

仅供内核开发者调试使用

Crypt target support
CONFIG_DM_CRYPT

此模块容许你建立一个通过透明加密的逻辑设备(使用cryptsetup工具),要使用加密功能,除此项外,还须要在"Cryptographic API"里选中相应的加密算法,例如CONFIG_CRYPTO_AES.更多文档请参考LUKS FAQ.

Snapshot target
CONFIG_DM_SNAPSHOT

容许卷管理器为DM设备建立可写的快照(定格于特定瞬间的一个设备虚拟映像).LVM2 Snapshot须要它的支持.更多详情参见"Documentation/device-mapper/snapshot.txt"文档.不肯定的选"N".

Thin provisioning target
CONFIG_DM_THIN_PROVISIONING

"Thin provisioning"(某些地方翻译为"精简配置")的意思是容许分配给全部用户的总存储容量超过实际的存储容量(使用thin-provisioning-tools工具).例如给100个用户分配空间,每一个用户最大容许10G空间,共计须要1000G空间.但实际状况是95%的用户都只使用了不到1G的空间,那么实际准备1000G空间就是浪费.有了"thin provisioning"的帮助,你实际只须要准备150G的空间就能够了,以后,能够随着用户需求的增长,添加更多的实际存储容量,从而减小存储投资和避免浪费.更多详情参见"Documentation/device-mapper/thin-provisioning.txt"文档.

Keep stack trace of thin provisioning block lock holders
CONFIG_DM_DEBUG_BLOCK_STACK_TRACING

仅用于调试目的

Cache target
CONFIG_DM_CACHE

dm-cache经过将频繁使用的热点数据缓存到一个容量较小但性能很高的存储设备上,从而提高块设备的性能.它支持writebackwritethrough两种模式,并能够使用多种缓存策略(policy)以判断哪些是热点数据以及哪些数据须要从缓存中移除.更多详情参见"Documentation/device-mapper/cache.txt"文档.不肯定的选"N".

MQ Cache Policy
CONFIG_DM_CACHE_MQ

MQ缓存策略.这是目前惟一真正可用的缓存策略.

Cleaner Cache Policy
CONFIG_DM_CACHE_CLEANER

Cleaner简单的把全部数据都同步写入到原始设备上,至关于关闭缓存.

Mirror target
CONFIG_DM_MIRROR

容许对逻辑卷进行镜像,同时实时数据迁移工具pvmove也须要此项的支持.

RAID 1/4/5/6/10 target
CONFIG_DM_RAID

RAID 1/4/5/6/10 支持.即便使用ICH8R/ICH9R/ICH10R这样的南桥,也不推荐使用"Device Mapper RAID"(既无性能优点又依赖于特定硬件),应该直接使用更成熟的CONFIG_BLK_DEV_MD模块.

Mirror userspace logging
CONFIG_DM_LOG_USERSPACE

device-mapper用户空间日志功能由内核模块和用户空间程序两部分组成,此选项是内核模块(API定义于"linux/dm-dirty-log.h"文件).不肯定的选"N".

Zero target
CONFIG_DM_ZERO

"Zero target"相似于"/dev/zero",全部的写入都被丢弃,全部的读取均可以获得无限多个零.可用于某些恢复场合.

Multipath target
CONFIG_DM_MULTIPATH

设备映射多路径(DM-Multipath)支持.不肯定的选"N".

I/O Path Selector based on the number of in-flight I/Os
CONFIG_DM_MULTIPATH_QL

这是一个动态负载均衡路径选择器:选择当前正在处理中的I/O数量最小的通路.

I/O Path Selector based on the service time
CONFIG_DM_MULTIPATH_ST

这是一个动态负载均衡路径选择器:选择完成此I/O操做预期时间最少的通路.

I/O delaying target
CONFIG_DM_DELAY

对读/写操做进行延迟,并可将其发送到不一样的设备.仅用于测试DM子系统.

DM uevents
CONFIG_DM_UEVENT

DM事件透过netlink向用户层的udevd发出uevent通知,这样就容许udevd"/dev/"目录中执行相应的操做.

Flakey target
CONFIG_DM_FLAKEY

模拟间歇性的I/O错误,以用于调试DM子系统.

Verity target support
CONFIG_DM_VERITY

Verity target 能够建立一个只读的逻辑设备,而后根据预先生成的哈希校验和(存储在其余设备上),校验底层设备上的数据正确性.要使此模块正常工做,还须要在"Cryptographic API"部分选中相应的哈希算法.

Generic Target Core Mod (TCM) and ConfigFS Infrastructure
CONFIG_TARGET_CORE

通用TCM存储引擎与ConfigFS虚拟文件系统(/sys/kernel/config)支持.看不懂就说明你不须要.

Fusion MPT device support
CONFIG_FUSION

Fusion MPT(Message Passing Technology) LSI Logic 公司为了更容易实现SCSI和光纤通道而提出的技术,支持Ultra320 SCSI/光纤通道/SAS.

IEEE 1394 (FireWire) support

火线(IEEE 1394)是苹果公司开发的串行接口,相似于USB,PC上并不常见,算得上是个没有将来的技术了.

I2O device support
CONFIG_I2O

智能输入输出(Intelligent Input/Output)架构让硬件驱动分红了两部分:OSM(特定于操做系统)+HDM(特定于硬件,与操做系统无关).因为I2O设备上集成有专用的I/O处理器,从而加快I/O速度(由于避免了CPU的参与).I2O属于已被废弃的技术,目前能见到的此类设备都属于老古董了.

Macintosh device drivers
CONFIG_MACINTOSH_DRIVERS

苹果的Macintosh电脑上的专有设备驱动

Network device support
CONFIG_NETDEVICES

网络设备.除非你不想链接任何网络,不然必选"Y".

Network core driver support
CONFIG_NET_CORE

若是你不想使用任何高级网络功能(拨号网络/EQL/VLAN/bridging/bonding/光纤通道/虚拟网络),仅仅是通常性质的联网(普通服务器,经过路由器或者局域网上网的常规我的电脑),能够选"N".此外,某些网卡的驱动会依赖于其下的CONFIG_MII子项(会被自动选中).

Bonding driver support
CONFIG_BONDING

链路聚合技术拥有多个不一样的称谓:Linux称为"Bonding",IEEE称为"802.3ad",Sun称为"Trunking",Cisco称为"Etherchannel".该技术能够将多个以太网通道聚合为一个单独的虚拟适配器,例如将两块网卡聚合成一个逻辑网卡,能够用来实现负载均衡或硬件冗余.

Dummy net driver support
CONFIG_DUMMY

Dummy网络接口本质上是一个能够配置IP地址的bit-bucket(位桶,全部发送到此设备的流量都将被湮灭),以使应用程序看上去正在和一个常规的网络接口进行通讯.使用SLIP(小猫拨号,目前应该已经绝迹了)PPP(经常使用于PPPoE ADSL)的用户须要它

EQL (serial line load balancing) support
CONFIG_EQUALIZER

串行线路的负载均衡.若是有两个MODEM和两条SLIP/PPP线路,该选项可让你同时使用这两个通道以达到双倍速度(网络的对端也要支持EQL技术).曾经昙花一现的ISDN就这项技术的一个实例.

Fibre Channel driver support
CONFIG_NET_FC

光纤通道(Fibre Channel)是一种高速网络串行协议,主要用于存储局域网(SAN),它与SCSI协议兼容,并意在取代SCSI.与传统的SCSI技术相比,除了提供更高的数据传输速度,更远的传输距离,更多的设备链接支持,更稳定的性能,更简易的安装之外,最重要的是支持最新的网络区域存储(SAN)技术.若是你的机器上有光纤通道卡(FC),除了须要开启此项外,还须要开启相应的FC卡驱动,以及CONFIG_CHR_DEV_SG选项.

Generic Media Independent Interface device support
CONFIG_MII

媒体独立接口(Media Independent Interface)又称介质无关接口,IEEE-802.3(规定了以太网相关协议的具体内容)定义的以太网行业标准.它包括一个数据接口,以及一个位于MACPHY之间的控制接口.[提示]大多数以太网卡都有MII收发器,其驱动都依赖于此项,也会自动选中此项.

Intermediate Functional Block support
CONFIG_IFB

IFB是一个中间层驱动,能够用来灵活的配置资源共享.更多信息参见iproute2文档.看不懂就说明你不须要.

Ethernet team driver support
CONFIG_NET_TEAM

容许经过"ip link add link [ address MAC ] [ NAME ] type team"命令,将多个以太网卡(称为"port")组合在一块儿,建立一个虚拟的"team"网络设备,其目的是取代传统的"Bonding"(CONFIG_BONDING)驱动."ip"iproute2包中的一个命令.不肯定的选"N".

MAC-VLAN support
CONFIG_MACVLAN

MAC-VLAN是经过MAC地址来划分VLAN的方式,Linux则用来给网卡添加多个MAC地址.你能够使用"ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"命令建立一个虚拟的"macvlan"设备(系统会自动打开网卡的混杂模式),而后就能够在同一个物理网卡上虚拟出多个以太网口.

MAC-VLAN based tap driver
CONFIG_MACVTAP

基于MAC-VLAN接口的tap(虚拟以太网设备)字符设备(macvtap)驱动,旨在简化虚拟化的桥接网络,目的是替代TUN/TAPBridge内核模块.能够经过与建立macvlan设备相同的"ip"命令建立一个虚拟的"macvtap"设备,并经过TAP用户空间接口进行访问.

Virtual eXtensible Local Area Network (VXLAN)
CONFIG_VXLAN

"vxlan"虚拟接口能够在第三层网络上建立第二层网络(跨多个物理IP子网的虚拟二层子网),是一种在UDP中封装MAC的简单机制,主要用于虚拟化环境下的隧道虚拟网络(tunnel virtual network).

Network console logging support
CONFIG_NETCONSOLE

网络控制台(netconsole)的做用是经过网络记录内核日志信息.详情参见"Documentation/networking/netconsole.txt"文档.不肯定的选"N".

Dynamic reconfiguration of logging targets
CONFIG_NETCONSOLE_DYNAMIC

容许经过configfs导出的用户空间接口,在运行时更改日志目标(网口, IP地址, 端口号, MAC地址).

Netpoll traffic trapping
CONFIG_NETPOLL_TRAP

netpoll的目的是让内核在网络和I/O子系统尚不能完整可用时,依然能发送和接收数据包.主要用于网络控制台(netconsole)和远程内核调试(KGDBoE).不肯定的选"N".

Virtual Ethernet over NTB
CONFIG_NTB_NETDEV

PCI-E非透明桥(CONFIG_NTB)上的虚拟网卡.不肯定的选"N".

RapidIO Ethernet over messaging driver support
CONFIG_RIONET

在标准的RapidIO通讯方式上发送以太网数据包.不肯定的选"N".

Universal TUN/TAP device driver support
CONFIG_TUN

TUN/TAP能够为用户空间提供包的接收和发送服务,能够用来虚拟一张网卡或点对点通道.当程序打开"/dev/net/tun"设备时,驱动程序就会注册相应的"tunX""tapX"网络设备,当程序关闭"/dev/net/tun"设备时,驱动程序又会删除相应的"tunX""tapX"网络设备以及全部与之相关联的路由.详情参见"Documentation/networking/tuntap.txt"文档.看不懂就代表你不须要.

Virtual ethernet pair device
CONFIG_VETH

该驱动提供了一个本地以太网隧道(设备会被成对的建立).

Virtio network driver
CONFIG_VIRTIO_NET

virtio虚拟网卡驱动.能够用于lguest或者基于QEMU的虚拟机管理程序(例如KVM/Xen).

ARCnet support
CONFIG_ARCNET

ARCnet1977年由Datapoint公司开发的一种局域网技术,它采用令牌总线方案来管理LAN上工做站和其余设备之间的共享线路,主要用于工业控制领域中.

ATM drivers
CONFIG_ATM_DRIVERS

可怜的ATM(异步传输模式),曾经在90年代风靡一时,如今已经消失的无影无踪了.

{这里省略几个专用于Android/MeeGo系统的PF_CAIF类型套接字相关的选项}

Distributed Switch Architecture drivers

分布式交换架构驱动,其子项都是Marvell系列以太网交换机芯片组的驱动

Ethernet driver support
CONFIG_ETHERNET

最多见的以太网卡驱动

{省略的部分请按照实际的硬件情况进行选择,这里仅以两个常见公司的以太网芯片为例进行说明}

AMD devices
CONFIG_NET_VENDOR_AMD

AMD出品的以太网控制芯片

AMD PCnet32 PCI support
CONFIG_PCNET32

这是VMware/VirtualBox虚拟机中经常使用的网卡

Broadcom devices
CONFIG_NET_VENDOR_BROADCOM

博通(Broadcom)公司的网卡

Broadcom 440x/47xx ethernet support
CONFIG_B44

Broadcom 44xx/47xx 10/100M PCI

Broadcom NetXtremeII support
CONFIG_BNX2

NetXtreme II 1 Gigabit ( BCM5706/5708/5709/5716 )

Broadcom CNIC support
CONFIG_CNIC

NetXtremeII 系列网卡的TCP减负引擎(TCP Offload Engine)特性支持.不过,TOE并不适合高链接数/小文件的Web服务器类应用,它的主要目的是和IP存储协议(iSCSI/NFS)一块儿使用.[注意]TOE"Large Receive Offload"是两个不一样的东西,不要混淆.

Broadcom Tigon3 support
CONFIG_TIGON3

这是最流行的驱动,其涵盖的型号特别多,可是"Tigon3"的名称却很是具备迷惑性.简单说来,除了B44,BNX2,BNX2X中明确列出的型号外,其余型号用的都是这个驱动.

Broadcom NetXtremeII 10Gb support
CONFIG_BNX2X

NetXtreme II 10 Gigabit ( BCM57710/57711/57711E/57712/57800/57810 )

Broadcom 578xx and 57712 SR-IOV support
CONFIG_BNX2X_SRIOV

支持578xx/57712单根I/O虚拟化(Single Root IOV)技术

FDDI driver support
CONFIG_FDDI

光纤分布式数据接口(FDDI)

HIPPI driver support
CONFIG_HIPPI

高性能并行接口(HIgh Performance Parallel Interface)是一个在短距离内高速传送大量数据的点对点协议.经常使用于集群和超级计算机.

General Instruments Surfboard 1000
CONFIG_NET_SB1000

SURFboard 1000 插卡式Cable Medem(ISA接口),这玩意早就绝种了

PHY Device support and infrastructure
CONFIG_PHYLIB

数据链路层芯片简称为MAC控制器,物理层芯片简称之为PHY,一般的网卡把MACPHY的功能作到了一颗芯片中,但也有一些仅含PHY"软网卡".此选项就是对这些"软网卡"的支持.请根据实际状况选择其下的子项.

Micrel KS8995MA 5-ports 10/100 managed Ethernet switch
CONFIG_MICREL_KS8995MA

Micrel KS8995MA 5端口 10/100M 以太网交换芯片

PLIP (parallel port) support
CONFIG_PLIP

PLIP(Parallel Line Internet Protocol)用于将两台电脑经过并口进行联网,组成一个简单的客户机/服务器结构.详情参见"Documentation/networking/PLIP.txt".如今的电脑都使用网卡进行互联,并口早就经被丢进历史的垃圾箱了.

PPP (point-to-point protocol) support
CONFIG_PPP

点对点协议(Point to Point Protocol)SLIP的继任者,使用PPP须要用户层程序pppd的帮助.PPP实际上有两个版本:基于普通模拟电话线的"异步PPP"和基于数字线路(例如ISDN线路)"同步PPP".使用电脑直接拨号的 PPPoE ADSL 用户须要此项.

PPP BSD-Compress compression
CONFIG_PPP_BSDCOMP

PPP提供BSD(等价于LZW压缩算法,没有gzip高效)压缩算法支持,须要通讯双方的支持才有效.大多数ISP都不支持此算法.

PPP Deflate compression
CONFIG_PPP_DEFLATE

PPP提供Deflate(等价于gzip压缩算法)压缩算法支持,须要通讯双方的支持才有效.这是比BSD更好的算法(压缩率更高且无专利障碍).

PPP filtering
CONFIG_PPP_FILTER

容许对经过PPP接口的包进行过滤.仅在你须要使用pppdpass-filter/active-filter选项时才须要开启.不肯定的选"N".

PPP MPPE compression (encryption)
CONFIG_PPP_MPPE

PPP提供MPPE加密协议支持,它被用于微软的P2P隧道协议中.此特性须要PPTP Client工具的支持.

PPP multilink support
CONFIG_PPP_MULTILINK

多重链路协议(RFC1990)容许你将多个线路(物理的或逻辑的)组合为一个PPP链接一充分利用带宽,这不但须要pppd的支持,还须要ISP的支持

PPP over ATM
CONFIG_PPPOATM

ATM上跑的PPP.果断"N".

PPP over Ethernet
CONFIG_PPPOE

这就是ADSL用户最多见的PPPoE,也就是在以太网上跑的PPP协议.这须要RP-PPPoE工具的帮助

PPP over IPv4 (PPTP)
CONFIG_PPTP

点对点隧道协议(Point-to-Point Tunneling Protocol)是一种主要用于VPN的数据链路层网络协议.此功能须要ACCEL-PPTP工具的支持.

PPP over L2TP
CONFIG_PPPOL2TP

第二层隧道协议(L2TP)是一种经过UDP隧道传输PPP流量的技术,对于VPN用户来讲,L2TP VPN是比PPTP VPN的更好解决方案.

PPP support for async serial ports
CONFIG_PPP_ASYNC

基于普通模拟电话线或标准异步串口(COM1,COM2)"异步PPP"支持. PPPoE ADSL 使用的就是这个.不能与下面的CONFIG_PPP_SYNC_TTY同时并存.

PPP support for sync tty ports
CONFIG_PPP_SYNC_TTY

基于同步tty设备(好比SyncLink适配器)"同步PPP"支持.经常使用于高速租用线路(好比T1/E1).不肯定的选"N".

SLIP (serial line) support
CONFIG_SLIP

一个在串行线上(例如电话线)传输IP数据报的TCP/IP协议.最原始的经过电话线拨号上网就用这个协议,现在基本绝迹了.不肯定的选"N".

CSLIP compressed headers
CONFIG_SLIP_COMPRESSED

CSLIP协议基于SLIP,但比SLIP,它将TCP/IP(而非数据)进行压缩传送,须要通讯双方的支持才有效

Keepalive and linefill
CONFIG_SLIP_SMART

SLIP驱动支持RELCOM linefillkeepalive监视,这在信号质量比较差的模拟线路上是个好主意

Six bit SLIP encapsulation
CONFIG_SLIP_MODE_SLIP6

这种线路很是罕见,"N".

USB Network Adapters

USB网络适配器

Wireless LAN
CONFIG_WLAN

无线网卡

{省略的部分请按照实际的硬件情况进行选择,这里仅以Intel公司的主流无线网卡为例进行说明}

Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
CONFIG_IWLWIFI

这是目前主流Intel无线网卡的驱动.此驱动依赖于二进制uCode微代码,它一般被安装到"/lib/firmware"目录,不过你最好亲自用眼睛检查一下"/etc/hotplug/firmware.agent"脚本中的"FIRMWARE_DIR"变量的设置是否正确.

Intel Wireless WiFi DVM Firmware support
CONFIG_IWLDVM

DVM固件支持(这也是当前惟一可用的固件)."Y/M".

Intel Wireless WiFi MVM Firmware support
CONFIG_IWLMVM

MVM固件支持(这是专用于7000系列无线网卡的固件).

Debugging Options

仅供调试使用,其下全部选项都选"N".

iwlwifi experimental P2P support
CONFIG_IWLWIFI_P2P

iwlwifi驱动实验性的P2P支持.不肯定的选"N".

WiMAX Wireless Broadband devices

WiMAX无线设备

Wan interfaces support
CONFIG_WAN

广域网(Wide Area Network)网卡支持.这种网卡很罕见.不肯定的选"N".

IEEE 802.15.4 drivers
CONFIG_IEEE802154_DRIVERS

IEEE 802.15.4描述了低速率无线我的局域网的物理层和媒体接入控制协议

Xen network device frontend driver
CONFIG_XEN_NETDEV_FRONTEND

XEN半虚拟化网络设备前端驱动(一般是被"domain 0"导出的)

Xen backend network device
CONFIG_XEN_NETDEV_BACKEND

XEN半虚拟化网络设备后端驱动,一般被用在"domain 0"内核上,用于向其余domain导出半虚拟化网络设备.

VMware VMXNET3 ethernet driver
CONFIG_VMXNET3

VMware vmxnet3 虚拟以太网卡驱动

Microsoft Hyper-V virtual network driver
CONFIG_HYPERV_NET

Microsoft Hyper-V 虚拟以太网卡驱动

ISDN support
CONFIG_ISDN

上世纪在ADSL流行以前曾经有太短暂流行,但如今已经绝迹了

Input device support

输入设备

Generic input layer (needed for keyboard, mouse, ...)
CONFIG_INPUT

通用输入层.只要你有任何输入设备(键盘,鼠标,手写板,触摸板,游戏杆,方向盘,游戏键盘...),就必须选"Y".

Support for memoryless force-feedback devices
CONFIG_INPUT_FF_MEMLESS

游戏玩家使用的力反馈设备,例如Logitech WingMan Force 3D 飞行摇杆,ThrustMaster FireStorm Dual Power 2.若是你有此类设备,除了本项以外,还须要开启特定于硬件的驱动.

Polled input device skeleton
CONFIG_INPUT_POLLDEV

使用轮询机制的输入设备支持,此项主要是为源码树以外的驱动准备的,内核自带的驱动如有须要会自动选中.不肯定的选"N".

Sparse keymap support library
CONFIG_INPUT_SPARSEKMAP

使用"sparse keymap"的输入设备支持,此项主要是为源码树以外的驱动准备的,内核自带的驱动如有须要会自动选中.不肯定的选"N".

Matrix keymap support library
CONFIG_INPUT_MATRIXKMAP

使用"matrix keymap"的输入设备支持,此项主要是为源码树以外的驱动准备的,内核自带的驱动如有须要会自动选中.不肯定的选"N".

Mouse interface
CONFIG_INPUT_MOUSEDEV

鼠标接口(/dev/input/mouseX,/dev/input/mice).用鼠标的必选.[提示]若是系统上有多个鼠标,那么,mouseX对应单个特定的鼠标,mice则是全部鼠标的集合(全部鼠标的事件都会被发送到这个设备文件中).

Provide legacy /dev/psaux device
CONFIG_INPUT_MOUSEDEV_PSAUX

仍然支持传统的/dev/psaux接口,这是为兼容老旧的程序而设置."N".

Horizontal screen resolution
CONFIG_INPUT_MOUSEDEV_SCREEN_X

做为鼠标使用的数字化转换器(digitizer)手写板(graphic tablet)须要知道X window的水平分辩率.通常可理解为显示屏的水平分辨率.

Vertical screen resolution
CONFIG_INPUT_MOUSEDEV_SCREEN_Y

做为鼠标使用的数字化转换器(digitizer)手写板(graphic tablet)须要知道X window的垂直分辩率.通常可理解为显示屏的垂直分辨率.

Joystick interface
CONFIG_INPUT_JOYDEV

游戏杆(joystick)和游戏键盘(gamepad)支持(/dev/input/jsX)

Event interface
CONFIG_INPUT_EVDEV

将全部的输入设备事件都经过"/dev/input/eventX"以一种通用的方式进行处理.Xorg须要使用此接口.不肯定的选"Y".

Event debugging
CONFIG_INPUT_EVBUG

将全部输入设备的动做(键盘按下,鼠标移动等)都记录到系统日志当中.主要用于调试,同时也会带来安全漏洞(键盘输入中极可能包含你的密码)."N".

Keyboards
CONFIG_INPUT_KEYBOARD

键盘驱动

AT keyboard
CONFIG_KEYBOARD_ATKBD

标准AT键盘或者PS/2键盘.[提示]除了台式机PS/2接口上的键盘外,许多笔记本的键盘其实也是PS/2键盘.使用USB键盘或者ADB键盘(旧式苹果键盘)的能够选"N".

{此处被省略的键盘都很罕见,基本上没必要考虑}

Mice
CONFIG_INPUT_MOUSE

鼠标驱动

PS/2 mouse
CONFIG_MOUSE_PS2

标准的两键或三键的PS/2鼠标,同时兼容Microsoft/Logitech/Genius生产的带有滚轮或者额外按键的PS/2鼠标.使用Synaptics/ALPS/Elantech触摸板的用户还能够看看其专用的X驱动,这些驱动能够提供更多的高级功能.使用USB鼠标的能够选"N".其下的子项是针对各厂商特定产品的扩展协议支持.按需选择便可.[提示]除了台式机PS/2接口上的鼠标外,许多笔记本的触摸板其实也是PS/2鼠标.

{此处被省略的鼠标都很罕见,基本上没必要考虑}

Joysticks/Gamepads

游戏杆,6自由度摇杆,游戏键盘,方向盘,射击武器...等各类游戏装置

Tablets
CONFIG_INPUT_TABLET

平板输入设备

Touchscreens
CONFIG_INPUT_TOUCHSCREEN

触摸屏输入设备

Miscellaneous devices
CONFIG_INPUT_MISC

其余杂项输入设备

PC Speaker support
CONFIG_INPUT_PCSPKR

标准蜂鸣器.建议开启.

{此处被省略的其余设备都很罕见,基本上没必要考虑}

Hardware I/O ports

硬件I/O端口

Serial I/O support
CONFIG_SERIO

串行I/O硬件支持.标准AT键盘,PS/2鼠标,串口鼠标,Sun键盘,游戏杆,6自由度摇杆等设备都依赖于它.不肯定的选"Y".

i8042 PC Keyboard controller
CONFIG_SERIO_I8042

标准AT键盘,PS/2鼠标,这两种设备须要它的支持.

Serial port line discipline
CONFIG_SERIO_SERPORT

RS232串口(COM).串口鼠标,游戏杆,6自由度摇杆等设备都依赖于它.

ct82c710 Aux port controller
CONFIG_SERIO_CT82C710

一种德州仪器TravelMate笔记本上使用QuickPort接口的鼠标

Parallel port keyboard adapter
CONFIG_SERIO_PARKBD

并口键盘适配器,用于将AT/XT键盘或PS/2鼠标转接到并口上.很是罕见.

PCI PS/2 keyboard and PS/2 mouse controller
CONFIG_SERIO_PCIPS2

接在移动式扩展坞(Docking station)上的PS/2键盘或鼠标

PS/2 driver library
CONFIG_SERIO_LIBPS2

PS/2接口上的设备提供驱动(好比PS/2鼠标和标准AT键盘)

Raw access to serio ports
CONFIG_SERIO_RAW

raw方式访问serio接口(echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl),例如i8042键盘控制器的AUX端口.看不懂的就别选了.

Altera UP PS/2 controller
CONFIG_SERIO_ALTERA_PS2

Altera University Program PS/2 端口支持.不肯定的选"N".

TQC PS/2 multiplexer
CONFIG_SERIO_PS2MULT

TQC板上的PS/2端口复用器(multiplexer)

ARC PS/2 support
CONFIG_SERIO_ARC_PS2

ARC FPGA 平台上的PS/2控制器

Gameport support
CONFIG_GAMEPORT

15针电脑游戏接口(Gameport).

Character devices

字符设备

Enable TTY
CONFIG_TTY

字符终端和串口都须要TTY的支持."Y",除非你知道本身在干什么.[提示]你想在控制台上显示汉字?试试CJKTTY补丁吧!

Virtual terminal
CONFIG_VT

虚拟终端能够在一个物理终端设备上虚拟出多个"显示器+键盘"的组合(能够使用"Alt+Fn"组合键在多个虚拟终端间切换).除非是嵌入式系统,不然必选"Y".

Enable character translations in console
CONFIG_CONSOLE_TRANSLATIONS

在虚拟控制台(console)上支持字体映射和Unicode转换.建议选"Y".

Support for console on virtual terminal
CONFIG_VT_CONSOLE

内核默认将第一个虚拟终端(/dev/tty0)用做系统控制台(能够经过"console=tty3"这样的参数去修改),将诸如模块错误/内核错误/启动信息之类的警告信息发送到这里,并且以单用户模式登陆时也须要使用这个控制台.除非是嵌入式系统,不然必选"Y".

Support for binding and unbinding console drivers
CONFIG_VT_HW_CONSOLE_BINDING

虚拟终端是经过控制台驱动程序与物理终端交互的,但在某些系统上能够使用多个控制台驱动程序(framebuffer控制台驱动程序),该选项使得你能够选择其中之一.若是你须要使用多个控制台驱动,能够选"Y",不肯定的选"N".参见"Documentation/console/console.txt""Documentation/fb/fbcon.txt"获取更多细节.

Unix98 PTY support
CONFIG_UNIX98_PTYS

伪终端(PTY)是指一个"软件终端",它是由slave(等价于一个物理终端)master(被一个诸如xterms之类的进程用来读写slave设备)两部分组成的软设备.须要使用telnetssh远程登陆者必选.

Support multiple instances of devpts
CONFIG_DEVPTS_MULTIPLE_INSTANCES

容许多个"devpts"文件系统实例(使用"-o newinstance"挂载选项),以容许相互隔离的PTY命名空间(好比在虚拟化容器中).不肯定的选"N".

Legacy (BSD) PTY support
CONFIG_LEGACY_PTYS

使用过期的BSD风格的/dev/ptyxx做为master,/dev/ttyxx做为slave,这个方案有一些安全问题,"N".

Non-standard serial port support
CONFIG_SERIAL_NONSTANDARD

非标准串口支持.这样的设备很是罕见,"N".

HSDPA Broadband Wireless Data Card - Globe Trotter
CONFIG_NOZOMI

一种PCMCIA接口的HSDPA(WCDMA) 3G 无线上网卡

Multi-Tech multiport card support
CONFIG_ISI

Multi-Tech公司生产的多端口卡(拥有多个串口)实验性支持.不肯定的选"N".

HDLC line discipline support
CONFIG_N_HDLC

Microgate SyncLink.不肯定的选"N".

GSM MUX line discipline support
CONFIG_N_GSM

GSM MUX(多路复用器)支持.不肯定的选"N".

Trace data router for MIPI P1149.7 cJTAG standard
CONFIG_TRACE_ROUTER

仅用于调试内含modem设备的手机系统.

Trace data sink for MIPI P1149.7 cJTAG standard
CONFIG_TRACE_SINK

仅用于调试内含modem设备的手机系统.

KCopy

内核Copy

Memory-to-memory copies using kernel assist
CONFIG_KCOPY

高性能的进程间内存复制(能够减小一次向共享内存的复制动做).主要用于高性能并行计算领域,好比基于消息传递接口(Message Passing Interface)协议的开发的并行程序.不肯定的选"N".

/dev/kmem virtual device support
CONFIG_DEVKMEM

"/dev/kmem"虚拟设备是内核看到的虚拟内存的全镜像,能够用来访问内核内存.通常能够用来查看内核变量或者用做rootkit之类(!危险!).仅供调试,不肯定的选"N".

Serial drivers

串口(COM)驱动.串口在台式机主板上正在逐渐消亡,而在笔记本和服务器上早就已经绝迹了.大多数人应该将全部子项都选"N".

8250/16550 and compatible serial support
CONFIG_SERIAL_8250

这是标准串口(COM)驱动.只要你想使用串口,就必选此项.不过,大多数人应该选"N".

Support 8250_core.* kernel options
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS

"N".

8250/16550 PNP device support
CONFIG_SERIAL_8250_PNP

即插即用串口支持,不肯定的选"Y".

Console on 8250/16550 and compatible serial port
CONFIG_SERIAL_8250_CONSOLE

将串口当作系统控制台(接受全部内核消息,单用户模式登陆)使用(须要使用"console=ttyS1"参数).仅在没有显示接口嵌入式设备上有用.不肯定的选"N".

DMA support for 16550 compatible UART controllers
CONFIG_SERIAL_8250_DMA

与标准8250/16650兼容的通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)DMA支持.在嵌入式设计中,UART用来主机与辅助设备通讯,如汽车音响与外接AP之间的通讯,PC机通讯包括与监控调试器和其它器件(EEPROM)通讯.不肯定的选"Y".

8250/16550 PCI device support
CONFIG_SERIAL_8250_PCI

PCI串口支持."N"表示仅支持传统的标准串口.

8250/16550 PCMCIA device support
CONFIG_SERIAL_8250_CS

16-bit PCMCIA串口支持."N"表示仅支持传统的标准串口.

Maximum number of 8250/16550 serial ports
CONFIG_SERIAL_8250_NR_UARTS

容许的最大串口数量,保持默认值便可.

Number of 8250/16550 serial ports to register at runtime
CONFIG_SERIAL_8250_RUNTIME_UARTS

内核在启动时注册的串口数量(能够经过"8250.nr_uarts"参数修改),保持默认便可.

Extended 8250/16550 serial driver options
CONFIG_SERIAL_8250_EXTENDED

非标准的串口驱动选项(例如HUB6,中断共享,多端口,超过4COM).不肯定的选"N".

Support more than 4 legacy serial ports
CONFIG_SERIAL_8250_MANY_PORTS

若是你的板子上有超过4COM接口就选"Y".

Support for sharing serial interrupts
CONFIG_SERIAL_8250_SHARE_IRQ

有些板子上集成了共享IRQ的硬件支持.若是有就选"Y".

Autodetect IRQ on standard ports (unsafe)
CONFIG_SERIAL_8250_DETECT_IRQ

让内核去猜串口的IRQ.不安全,"N".

Support RSA serial ports
CONFIG_SERIAL_8250_RSA

RSA串口.看不懂的选"N".

Support for Synopsys DesignWare 8250 quirks
CONFIG_SERIAL_8250_DW

Synopsys DesignWare APB UART 中非标准特性的支持.

Medfield High Speed UART support
CONFIG_SERIAL_MFD_HSU

MedfieldIntelx86为架构开发的SoC手机芯片.

{此处被省略的都是非标准的串口设备,按实际状况选择便可}

TTY driver to output user messages via printk
CONFIG_TTY_PRINTK

经过"/dev/ttyprintk"设备使用printk发送用户消息.用于在内核中嵌入用户消息.不肯定的选"N".

Parallel printer support
CONFIG_PRINTER

并口打印机

Support for user-space parallel port device drivers
CONFIG_PPDEV

用户空间的原始并口设备(/dev/parportN)支持,这样用户空间的程序就能够用原始模式直接访问并口(至关于并口版本的CONFIG_CHR_DEV_SG).并口打印机/CD-ROM/硬盘都不依赖于此项,因此大部分人能够关闭该选项.

Xen Hypervisor Console support
CONFIG_HVC_XEN

XEN虚拟控制台设备驱动

Xen Hypervisor Multiple Consoles support
CONFIG_HVC_XEN_FRONTEND

若是你须要多个虚拟控制台,能够选"Y".

Virtio console
CONFIG_VIRTIO_CONSOLE

Virtio虚拟控制台设备驱动.此外,该驱动还能够做为普通的串口设备(/dev/vportNpX),用于客户机和宿主机之间的通讯.Virtio的目标是为各类半虚拟化的虚拟机管理程序(特别是KVM)提供一组通用的模拟设备.

IPMI top-level message handler
CONFIG_IPMI_HANDLER

智能平台管理接口(Intelligent Platform Management Interface)是标准的传感器(温度,电压,风扇,电源,机箱入侵)管理规范.IPMI的核心是专用的基板管理控制器(BMC)硬件,BMC并不依赖于服务器的CPU/BIOS/OS,是一个独立在系统内运行的管理子系统,只要有BMCIPMI固件即可工做.BMC一般是一个安装在服务器主板上的独立的板卡(也有少数服务器主板内置).IPMI良好的独立特性便克服了以往基于操做系统的管理方式所受的限制,例如操做系统不响应或未加载的状况下,仍然能够进行开关机等操做.更多详情参见"Documentation/IPMI.txt"文档.此项技术主要用于服务器领域,我的PC和笔记本上是没有的.

Generate a panic event to all BMCs on a panic
CONFIG_IPMI_PANIC_EVENT

当内核panic(发生紧急状况),IPMI消息处理器将会向每个已注册的底板管理控制器(BMC)接口生成一个描述该panicIPMI事件,这些事件能够引起日志记录/报警/重启/关机等动做.

Generate OEM events containing the panic string
CONFIG_IPMI_PANIC_STRING

当发生紧急状况(panic),IPMI消息处理器将会产生OEM类型(f0)的事件

Device interface for IPMI
CONFIG_IPMI_DEVICE_INTERFACE

IPMI消息处理器提供一个IOCTL接口以便用户空间进程也能够使用IPMI,目前支持 poll() select()

IPMI System Interface handler
CONFIG_IPMI_SI

向系统提供接口(KCS,SMIC),建议选"Y".

IPMI Watchdog Timer
CONFIG_IPMI_WATCHDOG

启用IPMI Watchdog定时器.若是硬件有这种功能,推荐选"Y".

IPMI Poweroff
CONFIG_IPMI_POWEROFF

容许经过IPMI消息处理器关闭机器

Hardware Random Number Generator Core support
CONFIG_HW_RANDOM

硬件随机数发生器设备(/dev/hw_random)支持.此设备并不会直接向内核的随机数发生器填充(这是"rngd"守护进程的职责).详情参见"Documentation/hw_random.txt"文档.不肯定的选"Y".

Timer IOMEM HW Random Number Generator support
CONFIG_HW_RANDOM_TIMERIOMEM

Technologic Systems TS-7800单板计算机,这是一个嵌入式设备.

Intel HW Random Number Generator support
CONFIG_HW_RANDOM_INTEL

Intel基于i8xx芯片组的硬件随机数发生器

AMD HW Random Number Generator support
CONFIG_HW_RANDOM_AMD

AMD基于76x芯片组的硬件随机数发生器

Atmel Random Number Generator support
CONFIG_HW_RANDOM_ATMEL

Atmel AT91 硬件随机数发生器

VIA HW Random Number Generator support
CONFIG_HW_RANDOM_VIA

VIA芯片组的硬件随机数发生器

VirtIO Random Number Generator support
CONFIG_HW_RANDOM_VIRTIO

Virtio虚拟的硬件随机数发生器

EXYNOS HW random number generator support
CONFIG_HW_RANDOM_EXYNOS

基于EXYNOSSOC嵌入式系统上的硬件随机数发生器

TPM HW Random Number Generator support
CONFIG_HW_RANDOM_TPM

可信赖平台模块(Trusted Platform Module)提供的硬件随机数发生器

/dev/nvram support
CONFIG_NVRAM

直接存取主板上"CMOS RAM"的接口,太危险!建议选"N".

Siemens R3964 line discipline
CONFIG_R3964

与使用西门子R3964协议的设备同步通讯,除非你有一些诸如PLC之类的特殊设备,不然别选

Applicom intelligent fieldbus card support
CONFIG_APPLICOM

Applicom international公司生产的用于现场总线(fieldbus)的链接卡.不肯定的选"N".

PCMCIA character devices

PCMCIA接口的字符设备

ACP Modem (Mwave) support
CONFIG_MWAVE

IBM Thinkpad上的一种软猫,古董产品

RAW driver (/dev/raw/rawN)
CONFIG_RAW_DRIVER

裸设备的含义是将一个原始块设备(能够是一整块磁盘,也能够是一个分区)当作一个线性的字节流来访问.它是一种没有通过格式化,不通过操做系统缓存,也不能经过文件系统来访问的特殊字符设备.FreeBSD不一样,Linux反对使用裸设备,且被列入了废除计划(建议的作法是使用"O_DIRECT"标志打开对应的块设备文件,例如"/dev/hda1").不肯定的选"N".

HPET - High Precision Event Timer
CONFIG_HPET

高精度事件定时器(HPET Timer),又被称为"Multimedia Timer",是一种取代传统"ACPI Timer"(CONFIG_X86_PM_TIMER)的硬件时钟发生器,提供14.31818MHz固定频率.2007年之后的芯片组通常都支持(有的主板还须要在BIOS里面明确开启HPET支持),建议开启.

Allow mmap of HPET
CONFIG_HPET_MMAP

容许对HPET寄存器进行映射.可是某些包含HPET硬件寄存器的页中同时还含有其余不应暴露给用户的信息,在此种状况下,须要选"N".

Hangcheck timer
CONFIG_HANGCHECK_TIMER

宕机检测定时器周期性地检查系统任务调度程序以肯定系统的运行情况,若是超过阈值,计算机将从新启动.不肯定的选"N".

TPM Hardware Support
CONFIG_TCG_TPM

基于硬件的可信赖平台模块(Trusted Platform Module),它其实是一个含有密码运算部件和存储部件的小芯片上的系统,CPU,存储器,I/O,密码运算器,随机数产生器和嵌入式操做系统等部件组成.使用此功能须要TrouSerS工具的帮助.

TPM Interface Specification 1.2 Interface
CONFIG_TCG_TIS

TCG TIS 1.2 TPM 规范支持

TPM Interface Specification 1.2 Interface (I2C - Infineon)
CONFIG_TCG_TIS_I2C_INFINEON

仅须要对InfineonTPM设备选"Y".

National Semiconductor TPM Interface
CONFIG_TCG_NSC

仅须要对NationalTPM设备选"Y".

Atmel TPM Interface
CONFIG_TCG_ATMEL

仅须要对AtmelTPM设备选"Y".

Infineon Technologies TPM Interface
CONFIG_TCG_INFINEON

仅须要对InfineonTPM设备(SLD 9630 TT 1.1 SLB 9635 TT 1.2)"Y".此驱动支持的硬件列表.

STMicroelectronics ST33 I2C TPM
CONFIG_TCG_ST33_I2C

意法半导体(STMicroelectronics)出品的I2C总线的TPM安全芯片.

Telecom clock driver for ATCA SBC
CONFIG_TELCLOCK

没见过这种硬件,"N".

I2C support
CONFIG_I2C

I2CSMBus支持.I2C(读着"I-squared-C")是用于单片机(又称"微控制器")的低速串行总线协议,它为微控制器(Microcontroller)与各类不一样的低速设备通讯提供了一种廉价的总线(由于只须要使用两个引脚,称为"2线"),所以普遍的应用于嵌入式环境.SMBus(System Management Bus)差很少至关因而I2C的子集,经常使用于硬件监控(电压/风扇转速/温度/电池等)以及内存模块的配置(使用I2C EEPROM),所以全部PC主板都依赖于SMBus协议.系统硬件监控工具lm_sensorsi2c-tools依赖于此模块,硬件传感器和"Video For Linux"也须要该模块的支持.详情参见"Documentation/i2c/summary"文档及整个"i2c"文件夹.不肯定的选"Y".

Enable compatibility bits for old user-space
CONFIG_I2C_COMPAT

为了与 lm-sensors 3.1.2 以前的版本兼容而设置.某些2011年以前版本的i2c相关程序也须要此兼容性.

I2C device interface
CONFIG_I2C_CHARDEV

I2C设备一般都是由内核控制的,但此选项能够向用户空间提供I2C设备接口,以容许用户空间的程序经过/dev/i2c-*字符设备文件使用I2C总线.详情参见"Documentation/i2c/dev-interface"文档.不肯定的选"N".

I2C bus multiplexing support
CONFIG_I2C_MUX

多路复用I2C总线支持.不肯定的选"N".

Multiplexer I2C Chip support

I2C多路复用芯片,其下的子项按实际状况选择就OK

Autoselect pertinent helper modules
CONFIG_I2C_HELPER_AUTO

有一些I2C驱动程序须要"I2C algorithm"的帮助才能工做."I2C算法"本质上是I2C接口的纯软件抽象.开启此项后,若有须要,则会自动选上这些算法,而无需你再手动选择.推荐选"Y".仅在你想使用额外的算法时,才选"N".

SMBus-specific protocols
CONFIG_I2C_SMBUS

SMBus特有的扩展支持.目前惟一实际支持的扩展是SMBus报警协议.建议选"Y".

I2C Algorithms

I2C算法,子项能够全不选,如有其余部分依赖其子项时,会自动选上

I2C Hardware Bus support

I2C硬件支持

*** PC SMBus host controller drivers ***

这部分按照主板芯片组的实际状况选择就OK

SMBus Control Method Interface
CONFIG_I2C_SCMI

SMBus控制方法接口(Control Method Interface)SMBusACPI接口.用于在ACPI环境中使用SMBus设备.不肯定的选"M"(i2c-scmi).

{其他被省略的都是用于嵌入式系统或者额外的I2C/SMBus扩展卡,按实际状况选择便可}

I2C/SMBus Test Stub
CONFIG_I2C_STUB

用于帮助开发SMBus client驱动(特别是某些传感器芯片).详情参见"Documentation/i2c/i2c-stub"文档.不肯定的选"N".

I2C Core debugging messages
CONFIG_I2C_DEBUG_CORE

向系统日志中传递大量的I2C Core调试信息.仅用于调试I2C设备故障

I2C Algorithm debugging messages
CONFIG_I2C_DEBUG_ALGO

向系统日志中传递大量的I2C Algorithm调试信息.仅用于调试I2C设备故障

I2C Bus debugging messages
CONFIG_I2C_DEBUG_BUS

向系统日志中传递大量的I2C Bus调试信息.仅用于调试I2C设备故障

SPI support
CONFIG_SPI

串行外设接口(Serial Peripheral Interface)是一种标准的四线同步双向串行总线.SPI相似于I2C,但比I2C"2线"稍微复杂一些,SPI须要4个引脚("4线"),不但传输速率比I2C更高,还能实现全双工通讯.大多数SPI设备不支持动态设备检测,有些甚至是只读或者只写的.SPI经常使用于微控制器(Microcontroller)与外围设备(RTC,传感器,EEPROM,FLASH,/编码器,模数转换器,数字信号处理器)之间的通讯,MMCSD卡也能够经过SPI协议访问,MMC接口的DataFlash卡则必须经过SPI才能访问.仅用于嵌入式环境,PC平台上没有这样的设备.

Qualcomm MSM SSBI bus support
CONFIG_SSBI

高通(Qualcomm)骁龙系列智能手机处理器内嵌的单线串行总线接口(Single-wire Serial Bus Interface)

HSI support
CONFIG_HSI

高速同步串行接口(High speed synchronous Serial Interface)是移动产业处理器接口(MIPI)联盟的高速同步接口工做组发布的一项技术规范.MIPI(Mobile Industry Processor Interface)2003年由ARM,Nokia,ST,TI等公司成立的一个联盟,目的是把手机内部的接口(如摄像头,显示屏接口,射频/基带接口等)标准化,从而减小手机设计的复杂程度和增长设计灵活性.MIPI联盟下面有不一样的工做组,分别定义了一系列的手机内部接口标准,好比摄像头接口CSI,显示接口DSI,射频接口DigRF,麦克风/扬声器接口SLIMbus.统一接口标准的好处是手机厂商根据须要能够从市面上灵活选择不一样的芯片和模组,更改设计和功能时更加快捷方便.目前,MIPI联盟的董事成员包括英特尔,摩托罗拉,诺基亚,三星,意法半导体,德州仪器.

PPS support
CONFIG_PPS

秒脉冲(Pulse Per Second)GPS天线的一项功能,用于获取GPS卫星的授时.PPS的精度能够到纳秒级,并且没有累积偏差.

PTP clock support
CONFIG_PTP_1588_CLOCK

精密时间协议(Precision Time Protocol)IEEE 1588定义的一种基于以太网的高精度时间同步协议.PTP采用硬件与软件结合设计,能够提供比纯软件方式的NTP(网络时间协议)高的多的精度(微秒级).GPS授时相比,在提供和GPS相同的精度状况下,PTP不须要为每一个设备安装GPS那样昂贵的组件,只须要一个高精度的本地时钟和提供高精度时钟戳的部件,成本较低.通常的PC和服务器上没有PTP硬件.

GPIO Support
CONFIG_GPIOLIB

每一个芯片都会有至少一个引脚(PIN),CPU或者芯片组这种复杂的芯片,其引脚会有成白上千个,这些PIN就是芯片与外部沟通的渠道,每一个PIN都会有它特定的功能.GPIO(General Purpose I/O)就是芯片上的一种通用功能的引脚,其功能可由使用者经过编程的方式自定义(所谓"可编程引脚"),好比使用两条PIN就能够组成I2C,使用4PIN就能够组成SPI.嵌入式系统常常须要控制结构简单但数量众多的外部设备(好比LED的亮与灭),使用传统的串口或者并口就太"大炮打蚊子",GPIO则很是适合用于控制此类数量众多的简单设备.GPIO在嵌入式设备中使用普遍,PC平台的芯片组大多也集成有GPIO引脚.详情参见"Documentation/gpio/gpio.txt"文档.

Debug GPIO calls
CONFIG_DEBUG_GPIO

仅供调试使用

/sys/class/gpio/... (sysfs interface)
CONFIG_GPIO_SYSFS

GPIO设备添加sysfs接口.主要用于调试和问题排查.不肯定的选"N".

Generic memory-mapped GPIO controller support (MMIO platform device)
CONFIG_GPIO_GENERIC_PLATFORM

这是最简单的GPIO控制器驱动(platform总线驱动),仅支持单独一个"data"寄存器,用于读/GPIO的状态.不肯定的选"Y".

{这里被省略的部分,按主板上实际集成的芯片选择便可}

Dallas's 1-wire support
CONFIG_W1

Dallas公司发明的单总线是比I2C更简单的总线,仅使用一个引脚(1-wire),使用Master-Slave结构,用于链接慢速的单引脚设备,好比iButton和热传感器.主要用于嵌入式系统.

Power supply class support
CONFIG_POWER_SUPPLY

容许用户空间程序经过sysfs/uevent接口对电源(电池,交流电,USB)进行监控.建议选"Y".

Power supply debug
CONFIG_POWER_SUPPLY_DEBUG

仅供调试使用

Generic PDA/phone power driver
CONFIG_PDA_POWER

通用的PDA/phone电源切换驱动.用于在内部电池和外部电源(AC/USB)之间进行切换.

Generic battery support using IIO
CONFIG_GENERIC_ADC_BATTERY

为使用IIO总线(CONFIG_IIO)的电池提供的通用驱动

Test power driver
CONFIG_TEST_POWER

仅供测试使用

SBS Compliant gas gauge
CONFIG_BATTERY_SBS

智能电池系统(Smart Battery System)规范兼容的气压计(集成在电池组中)支持.

GPIO charger
CONFIG_CHARGER_GPIO

支持充电器经过GPIO引脚报告其在线状态.

Board level reset or power off
CONFIG_POWER_RESET

容许经过操做板载的主电源,关闭或重启整个系统.

{这里被省略的部分,按实际电池控制芯片选择便可}

Adaptive Voltage Scaling class support
CONFIG_POWER_AVS

自适应电压调节(Adaptive Voltage Scaling)技术可以动态的对设备工做电压进行精细的调整,拥有比DVFS更佳的电力利用效率,是一种下降功耗与优化性能并举的电源与性能管理技术.AVSOMAP设备上也被称为"SmartReflex".目前仅用于嵌入式领域.

Hardware Monitoring support
CONFIG_HWMON

当前主板大多都有一个监控硬件温度/电压/风扇转速等情况的设备,请按照主板实际使用的芯片选择相应的子项.若是你不知道究竟须要使用哪一个驱动,能够使用Superiotoolsensors-detect工具进行检测.另外,该功能还须要CONFIG_I2C的支持.更多详情参见"Documentation/hwmon/userspace-tools"文档.

Hardware Monitoring Chip debugging messages
CONFIG_HWMON_DEBUG_CHIP

在系统日志中输出大量的I2C调试信息,仅用于故障调试

{被省略的部分,按实际的硬件监控芯片选择便可}

GPIO fan
CONFIG_SENSORS_GPIO_FAN

链接在GPIO引脚上的风扇

PMBus support
CONFIG_PMBUS

电源管理总线(Power Management Bus)是一种基于SMBus(CONFIG_I2C)的开放标准的数字电源管理协议,能够用于配置/监控/操做电源变换器,目前全球有超过40IC厂商提供知足PMBus标准的产品.最新的PMBus+ 1.3标准增长AVS(CONFIG_POWER_AVS)支持,能够动态控制设备的工做电压.根据你的实际硬件情况选择子项.

ACPI 4.0 power meter
CONFIG_SENSORS_ACPI_POWER

ACPI 4.0(20096月发布)中定义的瓦特表(用于测量功耗)当作硬件监控设备导出到用户空间.须要固件支持ACPI 4.0规范,而且有一个瓦特表.不肯定的选"N".

ASUS ATK0110
CONFIG_SENSORS_ATK0110

许多华硕主板都有这种ACPI硬件监控接口.此驱动能够经过主板固件读取风扇/电压/温度信息.

Generic Thermal sysfs driver
CONFIG_THERMAL

ACPI规范中定义的"thermal"(发热控制)提供一个通用的sysfs接口,以方便与诸如温度传感器和风扇之类的设备通讯.因为目前全部PC和服务器都已支持ACPI,而且发热控制也愈来愈重要,因此建议选"Y".详情参见"Documentation/thermal/sysfs-api.txt"文档.

Default Thermal governor

选择默认的热调节器,建议选"step_wise".

Fair-share thermal governor
CONFIG_THERMAL_GOV_FAIR_SHARE

此调节器根据设备对所属区域的"贡献"(contribution)进行调节.

Step_wise thermal governor
CONFIG_THERMAL_GOV_STEP_WISE

此调节器以线性方式进行调节,也就是每次调节都只在紧邻的两档之间进行切换.

User_space thermal governor
CONFIG_THERMAL_GOV_USER_SPACE

此调节器让用户空间程序去决定如何调节

generic cpu cooling support
CONFIG_CPU_THERMAL

通用的CPU降温机制(经过下降频率来实现,而不是经过ACPI接口).显然经过ACPI接口是更好的机制,因此建议选"N".

Thermal emulation mode support
CONFIG_THERMAL_EMULATION

"Thermal"模拟.仅供调试使用,切勿用于生产系统!!

Intel PowerClamp idle injection driver
CONFIG_INTEL_POWERCLAMP

Intel PowerClamp 驱动经过利用Nehalem以后的CPU支持的"package-level C-state"特性,强制为在线的CPU注入"idle"指令(经过"/sys/class/thermal/"接口设定"idle"百分比),以确保CPU的功耗不会超过特定的阈值(发热量也就不会超过特定的阈值).这样刻意的下降系统性能峰值还有一个好处,那就是相对于传统的动态频率调节技术而言,可以达到更高的每瓦特性能.详见Documentation/thermal/intel_powerclamp.txt文档.若是你对节能和限制发热量特别在乎,同时又不在意系统峰值性能的下降,能够选"Y".

Watchdog Timer Support
CONFIG_WATCHDOG

"Y"并选中下面相应的驱动以后,再建立一个主/次设备号为10/130的字符设备"/dev/watchdog",便可拥有一只看门狗.其工做原理是:/dev/watchdog设备被打开后,若是喂狗守护进程超过60秒没有喂狗(写入"/dev/watchdog"),那么底层的看门狗硬件将会触发整个机器硬重启(至关于按下面板上的"RESET"按钮).这对于提升服务器的在线率来讲意义重大.详情参见"Documentation/watchdog/watchdog-api.txt"文档.

WatchDog Timer Driver Core
CONFIG_WATCHDOG_CORE

看门狗核心驱动,它为全部特定于具体硬件的看门狗驱动提供了统一的框架和"/dev/watchdog"接口(将来还会包括sysfs接口).使用看门狗的必选.

Disable watchdog shutdown on close
CONFIG_WATCHDOG_NOWAYOUT

默认状况下(此项="N")若是喂狗进程关闭"/dev/watchdog"文件,那么表示中止看门狗功能.开启此项后,看门狗一旦启用就不能被中止(即便关闭"/dev/watchdog"文件也不会中止).

Software watchdog
CONFIG_SOFT_WATCHDOG

内核提供的"软看门狗".使用它不须要有任何硬件的支持,但可靠性不如硬件看门狗,仅能应对喂狗进程的崩溃,不能应对内核自己的崩溃.在某些状况下(例如Oracle数据库),CONFIG_HANGCHECK_TIMER是比"软看门狗"更好的选择.

{此处省略的看门狗硬件请按照实际使用的芯片进行选择}

Sonics Silicon Backplane support
CONFIG_SSB

SSB(Sonics Silicon Backplane)是一种仅在嵌入式环境中使用的总线.

Broadcom specific AMBA
CONFIG_BCMA

Broadcom特有的AMBA(Advanced Microcontroller Bus Architecture)总线支持.仅用于嵌入式环境

Multifunction device drivers

MFD(多功能设备)的含义是"在单个芯片上集成多个功能(GPIO,触摸屏,键盘,电流调节,电源管理...)".此种芯片一般经过一个或多个IRQ线和低速数据总线(SPI/I2C/GPIO)与主CPU进行通讯.对于主系统来讲,它们经过数据总线显示为一个单独的MFD设备.但透过MFD框架,又能够拥有多个相互独立的子设备(子功能).MFD多用于嵌入式环境.

Intel ICH LPC
CONFIG_LPC_ICH

LPC(Low Pin Count)总线是Intel1998年发布的一个旨在取代传统ISA总线的接口规范,用于链接南桥和Super I/O芯片(用于链接低速外设:串口,并口,PS/2键鼠,软盘控制器,TPM(可信平台模块),温度传感器,风扇速度监测器)以及Flash芯片(BIOS).以往南桥必须保留ISA总线,以链接老旧的ISA插槽和Super I/O芯片(能够使用Superiotoolsensors-detect工具检测)以及Flash芯片.可是ISA须要占用大量针脚,主板的线路设计也比较复杂.随着ISA插槽的消失,LPC就瓜熟蒂落的出现了,它与ISA在软件层面是相似的,同时LPC工做速率由PCI总线速率同步驱动,可是引脚数大大下降,以方便在拥挤的现代主板上布局,这也是取名"Low Pin Count"的缘由.此选项支持几乎全部Intel芯片组的LPC总线,以方便其余驱动控制MFD(目前仅有GPIOwatchdog).具体支持的芯片能够查看"drivers/mfd/lpc_ich.c"文件.

Intel SCH LPC
CONFIG_LPC_SCH

用于 Intel Atom 处理器的 Intel SCH(System Controller Hub) LPC 总线支持.目前仅支持SMBusGPIO.

{此处省略的硬件请按照实际使用的芯片进行选择}

Voltage and Current Regulator Support
CONFIG_REGULATOR

通用的电压与电流调节器框架.除了提供通用的电压与电流调节接口外,还能经过sysfs向用户空间提供电压与电流的状态信息.目的在于经过动态调节电压和电流,下降能耗,延长电池寿命.建议笔记本用户选"Y".

Multimedia support
CONFIG_MEDIA_SUPPORT

多媒体设备:摄像头,视频采集,模拟电视,数字电视,机顶盒,收音机,遥控器,数字视频广播(DVB)...内核多媒体子系统由LinuxTV项目负责维护.

Cameras/video grabbers support
CONFIG_MEDIA_CAMERA_SUPPORT

摄像头,视频采集卡

Analog TV support
CONFIG_MEDIA_ANALOG_TV_SUPPORT

模拟电视信号接收器,包括那些既能接收模拟信号又能接收数字信号的电视卡

Digital TV support
CONFIG_MEDIA_DIGITAL_TV_SUPPORT

数字电视信号接收器,包括那些既能接收模拟信号又能接收数字信号的电视卡

AM/FM radio receivers/transmitters support
CONFIG_MEDIA_RADIO_SUPPORT

AM/FM无线电接收机和发射机,包括那些带有收音机功能的电视卡

Remote Controller support
CONFIG_MEDIA_RC_SUPPORT

基于红外线/射频的遥控器,用于控制视频采集卡或者电视卡.大多数电视卡和视频采集卡都须要它的支持,即便这些卡实际并不须要遥控器.

Media Controller API
CONFIG_MEDIA_CONTROLLER

API用于查询多媒体设备内部的拓扑结构,并进行动态配置.主要用于嵌入式环境中的摄像头配置.

V4L2 sub-device userspace API
CONFIG_VIDEO_V4L2_SUBDEV_API

API用于配置视频的格式/尺寸/帧率.主要用于嵌入式环境中的摄像头配置.

Enable advanced debug functionality on V4L2 drivers
CONFIG_VIDEO_ADV_DEBUG

开启V4L2驱动程序的高级调试特性,不肯定的选"N".

Enable old-style fixed minor ranges on drivers/video devices
CONFIG_VIDEO_FIXED_MINOR_RANGES

仅在你使用mknod而不是udev进行设备管理时才须要开启.不肯定的选"N".

V4L2 int device (DEPRECATED)
CONFIG_VIDEO_V4L2_INT_DEVICE

仅用于旧式的图像传感器驱动(omap24xxcamtcm825x),反对使用此项."N".

DVB Network Support
CONFIG_DVB_NET

DVB(数字视频广播)是一系列国际公认的数字电视标准.此项提供了DVB网络(DVB标准的一部分)支持,可用于数字机顶盒(Set-Top-Box)的自动固件升级以及经过DVB卡访问互联网.

maximum number of DVB/ATSC adapters
CONFIG_DVB_MAX_ADAPTERS

最大容许的DVB/ATSC电视卡数量.取值范围是[1,255],但通过测试的范围是[4,32].不肯定的请保持默认值"8".

Dynamic DVB minor allocation
CONFIG_DVB_DYNAMIC_MINORS

DVB设备节点动态分配次设备号,这样每张DVB卡就能够拥有最多4个同类型的设备(例如demux(分离器)frontend(前端)).此特性须要udev的支持.

Compile Remote Controller keymap modules
CONFIG_RC_MAP

将各类遥控器的keymap表编译进内核.这些表都很小,可是若是你不打算使用遥控器,或者更喜欢使用v4l-utils包内的ir-keytable工具从用户空间加载这些表,能够选"N".

Remote controller decoders
CONFIG_RC_DECODERS

遥控器解码器.其下的子项是各类不一样的遥控通讯协议.

Remote Controller devices
CONFIG_RC_DEVICES

各类遥控器产品.其下子项按实际的厂商和型号选择便可.

Media USB Adapters
CONFIG_MEDIA_USB_SUPPORT

各类USB总线的多媒体设备

USB Video Class (UVC)
CONFIG_USB_VIDEO_CLASS

UVC(USB Video Class)是一个开放的通用USB视频捕获标准.目前大多数摄像头都是UVC摄像头,也就是俗称的"免驱摄像头".全部符合UVC规格的硬件均可以使用通用UVC驱动程序,而无需再使用专用驱动.

UVC input events device support
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV

某些UVC摄像头上会带有按钮(经常使用于开关LED/拍照),此选项能够将此按钮注册为一个输入设备,以用于报告按钮事件.

GSPCA based webcams
CONFIG_USB_GSPCA

基于GSPCA框架的摄像头驱动(依赖于CONFIG_VIDEO_V4L2),这是一位60岁的法国医生的杰做.该驱动适用于大多数常见的非UVC摄像头.具体支持的芯片列表能够查看"Documentation/video4linux/gspca.txt"文档.

{此处省略的非GSPCA摄像头,电视卡,电视棒等其余硬件请按照实际使用的芯片进行选择}

Media PCI Adapters
CONFIG_MEDIA_PCI_SUPPORT

各类PCI/PCIe总线的多媒体设备

V4L platform devices
CONFIG_V4L_PLATFORM_DRIVERS

特定于平台的V4L(Video For Linux)设备,这些设备不是经过USB/PCI这样的总线链接的.通常用于单片机之类的嵌入式环境.

SoC camera support
CONFIG_SOC_CAMERA

所谓"SoC Camera"是指那些不经过PCIUSB总线链接的摄像头(例如经过I2C直接与SoC数据总线链接).此选项为这类摄像头提供了通用的支持.

platform camera support
CONFIG_SOC_CAMERA_PLATFORM

仅用于调试目的

{此处省略的部分请按照实际使用的芯片进行选择}

Memory-to-memory multimedia devices
CONFIG_V4L_MEM2MEM_DRIVERS

使用系统内存做为源和目标缓存(Memory-to-memory)的多媒体设备.通常的采集输出驱动仅将系统内存用于源或目标缓存之一.不肯定的选"N".

Media test drivers
CONFIG_V4L_TEST_DRIVERS

仅用于调试目的.

Siano SMS1xxx based MDTV via SDIO interface
CONFIG_SMS_SDIO_DRV

使用SDIO接口的一种移动数字电视(MDTV),基于Siano SMS1xxx芯片.主要用于嵌入式设备

ISA and parallel port devices
CONFIG_MEDIA_PARPORT_SUPPORT

使用ISA或并口的多媒体设备,古董级别的设备

Radio Adapters
CONFIG_RADIO_ADAPTERS

AM/FM无线电广播接收设备

FireDTV and FloppyDTV
CONFIG_DVB_FIREDTV

Digital Everywhere生产的FireWire(IEEE 1394)接口的DVB电视接收卡

Cypress firmware helper routines
CONFIG_CYPRESS_FIRMWARE

Cypress(赛普拉斯)多媒体产品的固件加载帮助程序.

Enable Remote Controller support for Siano devices
CONFIG_SMS_SIANO_RC

Siano多媒体设备遥控器

Enable debugfs for smsdvb
CONFIG_SMS_SIANO_DEBUGFS

仅供调试使用,当前仅可用于Siano USB设备

Autoselect ancillary drivers (tuners, sensors, i2c, frontends)
CONFIG_MEDIA_SUBDRV_AUTOSELECT

为多媒体设备驱动自动选择全部相关的辅助驱动(tuner[调谐器],sensor[传感器],视频编/解码器以及前端),以避免去手动选择的麻烦.一般这是个好主意,建议选"Y".可是对于某些嵌入式环境来讲,却但愿去掉部分有用的辅助驱动以保持内核尽量短小,这时应该选"N".

I2C module for IR
CONFIG_VIDEO_IR_I2C

大多数板子都经过GPIO总线链接红外线芯片,但少数板子却使用I2C总线链接.此项便是对I2C总线链接的红外线芯片提供支持.

Encoders, decoders, sensors and other helper chips

编码器,解码器,传感器,混频器...等辅助芯片

Sensors used on soc_camera driver

用于"SoC Camera"(CONFIG_SOC_CAMERA)的各类传感器

Customize TV tuners

各类专用的电视调谐器

Customise DVB Frontends

各类专用的数字电视前端

Graphics support

图形设备/显卡支持.对于不须要使用图形界面以及不须要进行图形渲染的用户来讲,如下全部选项都应该选"N".

/dev/agpgart (AGP Support)
CONFIG_AGP

GART(图形地址重映射表)能够看作一种被各类显卡(不仅是AGP显卡,还包括PCI-E显卡与集成显卡以及核心显卡)使用的"IOMMU"(参见CONFIG_GART_IOMMU选项),它将物理地址不连续的系统内存映射成连续的"显存"GPU使用.当物理显存容量不够时(大多数集成显卡甚至根本没有物理显存),GART容许经过DMA(直接内存访问)方式将这部分"显存"用于纹理贴图,Z轴缓冲,ALPHA混合,多边形网格生成...等各类3D操做.若是没有GART支持,OpenGL直接渲染将会变得特别慢.GLXDRI(CONFIG_DRM)也依赖于此.简而言之,须要使用图形化界面的人都应该选"Y".不须要图形界面的用户应该选"N".[注意]对于使用304或更老版本的nVidia闭源驱动的用户,若是使用的是某些老旧的芯片组,那么此处应该选"N".由于在这些特定的芯片组上,闭源驱动本身的agpgart实现(NvAGP)是更好的选择.[提示]老版本的AMD/ATI/NVIDIA闭源驱动都曾经有本身的agpgart实现,但在新版本中都已经被移除.Intel显卡一直使用的都是内核的agpgart实现.

AMD Opteron/Athlon64 on-CPU GART support
CONFIG_AGP_AMD64

该项仅适用于以下AMD处理器:(1)AMD K8微架构CPU[cpu family : 15] (2)AMD K10微架构CPU[cpu family : 16] (3)AMD 推土机微架构CPU[cpu family : 21 而且 model: 小于15].[提示]除了前面列出的三种CPU,其余AMD处理器(例如A4/A6/A8系列APU)并不须要此选项.具体支持的CPU能够查看"arch/x86/kernel/amd_nb.c"文件中的"AMD_NB_GART"常量的使用.

Intel 440LX/BX/GX, I8xx and E7x05 chipset support
CONFIG_AGP_INTEL

该项仅适用于:(1)某些Intel芯片组(440LX/BX/GX, 8xx系列, E7205/E7505/E7221, 9xx系列, 全部3/4系列). (2)所有Intel集成显卡(包括Intel核心显卡).具体支持的芯片组和集显能够查看"drivers/char/agp/intel-*"系列文件.[提示]若是你使用的既不是此处所列的芯片组(例如Xeon芯片组或者5/6/7/8系列芯片组)也不是Intel的集成显卡(例如AMD/nVidia独立显卡),那么应该选"N".

SiS chipset support
CONFIG_AGP_SIS

该项仅适用于SiS芯片组,但不包括上世纪古董级的SiS 5591/5592芯片组.

VIA chipset support
CONFIG_AGP_VIA

该项仅适用于VIA芯片组.具体支持的芯片组型号能够查看"drivers/char/agp/via-agp.c"中的"via_agp_device_ids"数组.

VGA Arbitration
CONFIG_VGA_ARB

图形设备是经过I/O或内存的特定地址范围进行访问的.大多数现代的显卡都容许对这个范围进行从新定位,可是某些基于PCI"传统"VGA设备仍然使用"硬编码"的地址范围,没法对其进行从新定位.若是系统上有多个这样的"传统"VGA设备,就会形成地址冲突,这时候就须要进行VGA仲裁.此选项主要用于处理多个显卡(好比集成显卡和独立显卡)之间的切换.若是你的系统上有多个显卡,能够选"Y",不然应该选"N".详情参见"Documentation/vgaarbiter.txt"文档.

Maximum number of GPUs
CONFIG_VGA_ARB_MAX_GPUS

最多容许支持多少个显卡

Laptop Hybrid Graphics - GPU switching support
CONFIG_VGA_SWITCHEROO

支持多个显卡之间的切换(一般是在集显和独显之间),这项技术有多个不一样的名称:"Hybrid Graphics","PowerXpress","HybridPower".这项特性主要用于笔记本,台式机通常不支持.

Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
CONFIG_DRM

DRI(Direct Rendering Infrastructure)容许应用程序以高效安全的方式直接访问GPU,主要用于硬件3D加速.桌面用户建议选"Y".[提示]KMS+DRI2+GEM+UXA+WaylandLinux图形革命的基石,这里还有两篇须要越墙的文章能够帮助加深对Linux图形技术的理解:(1)关于Xorg的一些整理,(2)厘清了xorg里的一些概念.

Allow to specify an EDID data set instead of probing for it
CONFIG_DRM_LOAD_EDID_FIRMWARE

EDID(扩展显示器识别数据)是一种VESA(视频电子标准协会)制定的标准数据格式,其中包含有关显示器的各类参数:供应商信息,最大图像尺寸,颜色设置,厂商预设置,频率范围,显示器名,序列号字符串等等.EDID保存在显示器的PROMEEPROM,显卡或read-edid通常经过I2C总线使用DDC协议进行读取.可是在某些脑残的硬件(显示器或显卡)上却不能正确获取EDID数据.此选项就是为了解决这个问题而设置的.此选项能够容许从"/lib/firmware/"目录加载EDID数据,或者将EDID数据在编译时直接嵌入内核.不肯定的选"N".详情参见"Documentation/EDID/HOWTO.txt"文档.[提示]EDID的继任者是DisplayID,但目前DisplayID还没有被普遍应用.

I2C encoder or helper chips

I2C编码器或辅助芯片

Chrontel ch7006 TV encoder
CONFIG_DRM_I2C_CH7006

Chrontel ch7006 电视解码器支持.某些nVidia显卡上有这个芯片.此选项仅对NVIDIA显卡开源驱动(nouveau)有意义.

Silicon Image sil164 TMDS transmitter
CONFIG_DRM_I2C_SIL164

Silicon Image SIL164 最小化传输差分信号(TMDS)发送器,用于实现DVI信号的合成和发送.TMDS不如LVDS应用普遍,仅在某些nVidia显卡上有出现.

NXP Semiconductors TDA998X HDMI encoder
CONFIG_DRM_I2C_NXP_TDA998X

NXP(恩智浦) TDA998X HDMI 发射器.用于实现HDMI信号的合成和发送.

3dfx Banshee/Voodoo3+
CONFIG_DRM_TDFX

3dfx Banshee/Voodoo3+ 系列古董显卡

ATI Rage 128
CONFIG_DRM_R128

ATI Rage 128 系列古董显卡

ATI Radeon
CONFIG_DRM_RADEON

Radeon系列显卡开源驱动(radeon).[提示]R600及更新的GPU须要额外的固件/微代码(radeon-ucode)的帮助才能使用开源驱动.若是你打算在R600及更新的GPU上使用此开源驱动,那么建议选"M"而不是"Y".由于"Y"须要将微代码(一般位于"/lib/firmware/radeon/"目录)一块儿编译进内核(使用CONFIG_EXTRA_FIRMWARE="radeon/GPU-MODEL.bin").[注意]若是你打算使用目前尚不支持KMSRadeon闭源驱动(Catalyst/fglrx),那么此项必须选"N".

Enable userspace modesetting on radeon (DEPRECATED)
CONFIG_DRM_RADEON_UMS

禁用KMS支持.目的是为了兼容远古版本的DDX驱动.除非你有充足的理由,不然请选"N".

Nouveau (nVidia) cards
CONFIG_DRM_NOUVEAU

nVidia系列显卡开源驱动(nouveau).[注意]若是你打算使用也许永远不会支持KMSnVidia闭源驱动(nvidia-drivers),那么此项必须选"N".

Maximum debug level
CONFIG_NOUVEAU_DEBUG

最大调试级别,也就是最高容许显示的调试信息详细程度.取值范围是[0,7],数字越大,在内核中编入的调试信息就越多,建议设为"4",过大的级别会致使驱动运行缓慢.

Default debug level
CONFIG_NOUVEAU_DEBUG_DEFAULT

默认调试级别,必须小于等于CONFIG_NOUVEAU_DEBUG的值.数字越大,输出的调试信息就越详细,建议设为"2",过大的级别会致使驱动运行缓慢.

Support for backlight control
CONFIG_DRM_NOUVEAU_BACKLIGHT

容许调整显示器背光亮度,主要用于液晶显示屏等使用背光技术的显示器.建议选"Y".

Intel I810
CONFIG_DRM_I810

专为古董级Intel集成显卡(i810/i815)准备的驱动

Intel 8xx/9xx/G3x/G4x/HD Graphics
CONFIG_DRM_I915

Intel GMA(芯片组集成显卡)HD Graphics(核心集成显卡)开源驱动(intel).除了个别老古董(i810/i815)与基于PowerVR的芯片(Atom z5xx)以外,此驱动支持全部Intel集成显卡(包括Atom中的集成显卡).[提示]三大主流显卡厂商对Linux的驱动支持,Intel是最完全的,官方只提供开源驱动.

Enable modesetting on intel by default
CONFIG_DRM_I915_KMS

默认开启KMS(Kernel Mode Setting)特性,做用是能够在内核级别(而不是用户级别)设置显示分辨率和颜色深度.KMS使用了更新的技术,能够减小失真,加强3D性能,甚至能够使用内核的节能功能.KMS是大势所趋,只要用户层软件不太旧(2010年以后),都建议开启.[注意]开启此项后,应该:(1)关闭CONFIG_FB_INTEL选项并禁止加载任何framebuffer驱动(包括CONFIG_FB_UVESA),(2)取消内核引导参数"vga=xxx""video=xxx",(3)必须开启CONFIG_FRAMEBUFFER_CONSOLE选项.

Matrox g200/g400
CONFIG_DRM_MGA

Matrox G200, G400, G450 系列古董显卡

SiS video cards
CONFIG_DRM_SIS

SiS 630 系列古董显卡

Via unichrome video cards
CONFIG_DRM_VIA

Via unichrome 系列古董显卡

Savage video cards
CONFIG_DRM_SAVAGE

Savage3D/4/SuperSavage/Pro/Twister 系列古董显卡

DRM driver for VMware Virtual GPU
CONFIG_DRM_VMWGFX

VMware SVGA2 虚拟显卡驱动.支持3D加速,支持KMS.若是你打算在VMware内使用图形化界面,建议选"Y".

Enable framebuffer console under vmwgfx by default
CONFIG_DRM_VMWGFX_FBCON

若是你使用的VMware Tools不太旧就选"Y".

Intel GMA5/600 KMS Framebuffer
CONFIG_DRM_GMA500

Intel基于Poulsbo架构的集成显卡实验性支持.此类显卡并不常见,仅用于Atom z5xx系列处理器.

DisplayLink
CONFIG_DRM_UDL

DisplayLink是一个经过USB接口实现显示器链接到电脑的链接技术,能够很是简单的链接电脑和多个显示设备,经常使用于经过USB接口扩展虚拟的电脑的桌面.目前DisplayLink技术最多能够支持6台显示器同时显示32位色彩的任意分辨率画面.

AST server chips
CONFIG_DRM_AST

AST系列显卡实验性支持.此种显卡仅出如今服务器环境.

Kernel modesetting driver for MGA G200 server engines
CONFIG_DRM_MGAG200

MGA G200服务器芯片组的KMS支持.[注意]仅用于服务器芯片,不要用于桌面芯片!

Cirrus driver for QEMU emulated device
CONFIG_DRM_CIRRUS_QEMU

这是QEMU虚拟的cirrus显卡KMS驱动.千万不要用于真正的物理cirrus显卡.

QXL virtual GPU
CONFIG_DRM_QXL

用于SPICE的虚拟桌面的QXL虚拟显卡(cirrus)KMS支持.

Lowlevel video output switch controls
CONFIG_VIDEO_OUTPUT_CONTROL

底层视频输出开关控制(经过sysfs接口).这是ACPI视频控制所依赖的功能,也被许多显卡驱动所依赖."Y".

Support for frame buffer devices
CONFIG_FB

帧缓冲(framebuffer)设备(/dev/fb*)是一种对图形硬件的抽象,它把屏幕上的全部像素点都直接映射到一段线性的内存空间,这样就为软件提供了访问图形硬件的统一接口,这些软件不须要了解硬件的底层细节(例如寄存器),只要简单的改变相应内存位置的值,就能改变屏幕上显示的内容(颜色/亮度等).Xorg的高度可移植性也就根源于此.图形界面用户必选.

Enable firmware EDID
CONFIG_FIRMWARE_EDID

EDID(扩展显示器识别数据)保存在显示器的PROMEEPROM,显卡或read-edid通常经过I2C总线使用DDC协议进行读取.可是在某些脑残的硬件(显示器或显卡)上却不能正确获取EDID数据.此选项就是为了解决这个问题而设置的(参见CONFIG_DRM_LOAD_EDID_FIRMWARE).开启此项后,将容许三种驱动(nvidiafb,i810fb,savagefb)经过Video BIOS获取EDID.建议选"N",仅在你确实遭遇EDID读取失败,而且确实须要使用nvidiafb/i810fb/savagefb驱动的时候才须要考虑选"Y".[提示]EDID的继任者是DisplayID,但目前DisplayID还没有被普遍应用.

Framebuffer foreign endianness support
CONFIG_FB_FOREIGN_ENDIAN

若是你想混合使用不一样字节序的主板和显卡(Little-Endian主板上使用Big-Endian显卡,或者相反),能够选"Y".绝大多数人都应该选"N".除非你确实知道本身在作什么.

Enable Video Mode Handling Helpers
CONFIG_FB_MODE_HELPERS

使用GTFEDID解析程序来帮助处理显示模式,建议选"N",如有其余选项依赖于它时,会自动选上.

Enable Tile Blitting Support
CONFIG_FB_TILEBLITTING

此项仅对matroxfb驱动有意义,建议选"N",如有其余选项依赖于它时,会自动选上

{虽然此处省略的各类Framebuffer驱动提供了对图形硬件的统一抽象,Xorg没必要与硬件直接对话,但这些Framebuffer驱动仅能提供2D功能,在现在3D硬件加速和视频硬件解码早已铺天盖地的状况下,Xorg直接与GPU硬件对话才更符合潮流,而传统的Framebuffer驱动(CONFIG_FB_*)反而成为了绊脚石,不但没有必要与新的DRI