Device Drivers 设备驱动程序

优质
小牛编辑
127浏览
2023-12-01

Device Drivers
设备驱动程序

Generic Driver Options
驱动程序通用选项.[提示]Linux Kernel Driver DataBase
站是搜索驱动程序与硬件型号对应关系的绝佳网站.如果你不知道某个驱动(例如"CONFIG_INTEL_IOATDMA")究竟对应着哪些型号的硬件,
那么可以直接根据该驱动选项的首字母(本例是"I")进入对应的索引页去查找到该驱动的详情页面(本例是"https://cateee.net
/lkddb/web-lkddb/INTEL_IOATDMA.html").[提示]可以使用"lspci
-nn"与"lsusb"命令查看本机所有PCI/USB设备的"vendor id"与"device id"及文本名称.也可以根据已知的id到pci.idsusb.ids数据库中搜索设备的名称.
Support for uevent helper
CONFIG_UEVENT_HELPER
早年的内核(切换到基于netlink机制之前),在发生uevent
件(通常是热插拔)时,需要调用用户空间程序(通常是"/sbin/hotplug"),以帮助完成uevent事件的处理.此选项就是用于开启此功能.
由于目前的发行版都已不再需要此帮助程序,所以请选"N".此外,如果你使用了systemd或udev则必须选"N".
path to uevent helper
CONFIG_UEVENT_HELPER_PATH
早年的内核(切换到基于netlink机制之前),在发生uevent
件(通常是热插拔)时,需要调用用户空间程序(通常是"/sbin/hotplug"),以帮助完成uevent事件的处理.此选项就是用于设定这个帮助
程序的路径.由于目前的发行版都已不再需要此帮助程序,所以请保持空白.此外,如果你使用了systemd或udev则必须保持空白.
Maintain a devtmpfs filesystem to mount at /dev
CONFIG_DEVTMPFS
devtmpfs
是一种基于CONFIG_TMPFS的文件系统(与proc和sys有几分相似).在系统启动过程中,随着各个设备的初始化完成,内核将会自动在
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",如果你使用了udev或systemd,则必须选"N".仅在某些特殊的固件位于非标准位置时,才需要选"Y".
Allow device coredump
CONFIG_ALLOW_DEV_COREDUMP
为驱动程序开启coredump机制,仅供调试.
Driver Core verbose debug messages
CONFIG_DEBUG_DRIVER
让驱动程序核心在系统日志中产生冗长的调试信息,仅供调试
Managed device resources verbose debug messages
CONFIG_DEBUG_DEVRES
为内核添加一个"devres.log"引导参数.当被设为非零值时,将会打印出设备资源管理驱动(devres)的调试信息.仅供调试使用.
Bus devices
总线设备.此类设备仅出现在ARM平台.
Connector - unified userspace <-> kernelspace linker
CONFIG_CONNECTOR
统一的用户空间和内核空间连接器,
工作在netlink
socket协议的顶层.连接器是非常便利的用户态与内核态的通信方式,这些驱动使内核知道当进程fork并使用proc连接器更改UID/GID
/SID(会话ID).内核需要知道什么时候进程fork(CPU中运行多个任务)并执行,否则,内核可能会低效管理资源.内核有几个连接器应用实
例:CONFIG_HYPERV_UTILS,CONFIG_FB_UVESA,CONFIG_W1_CON,CONFIG_DM_LOG_USERSPACE.
另外还有一个给Gentoo装上启动画面的例子.建议选"Y".
Report process events to userspace
CONFIG_PROC_EVENTS
提供一个向用户空间报告进程事件(fork,exec,id变化(uid,gid,suid))的连接器.建议选"Y".
Memory Technology Device (MTD) support
CONFIG_MTD
MTD子系统是一个闪存转换层.
其主要目的是提供一个介于闪存硬件驱动程序与高级应用程序之间的抽象层,以简化闪存设备的驱动.注意:MTD常用于嵌入式系统,而我们常见的U盘/MMC
卡/SD卡/CF卡等移动存储设备以及固态硬盘(SSD),虽然也叫"flash",但它们并不是使用MTD技术的存储器.仅在你需要使用主设备号为31
的MTD块设备(/dev/romX,/dev/rromX,/dev/flashX,/dev/rflashX),或者主设备号为90的MTD字符设备
(/dev/mtdX,/dev/mtdrX)时选"Y",否则选"N".
Device Tree and Open Firmware support
CONFIG_OF
Device Tree基础架构与Open Firmware支持.主要用于嵌入式环境.不确定的选"N".内核中若有其它选项依赖于它,则会自动选中此项.
Parallel port support
CONFIG_PARPORT
25针并口(LPT接口)支持.古董级的打印机或扫描仪可能使用这种接口.目前已被淘汰.
Plug and Play support
CONFIG_PNP
即插即用(PnP)支持.选"Y"表示让Linux为PnP设备分配中断和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".
Null test block driver
CONFIG_BLK_DEV_NULL_BLK
仅供调试使用
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 系列固态硬盘支持
Compressed RAM block device support
CONFIG_ZRAM
zram
一种基于压缩内存的虚拟块设备,它允许你创建"/dev/zramN"块设备文件,并将它当作普通的磁盘一样使用.它完全位于物理内存中,并被实时压缩与
解压以节约物理内存的用量,所有对"/dev/zramN"的读写实质上都是对内存的读写,从而可以获得比一般的磁盘快的多的IO速度.常将它用做'
/tmp'分区或作为swap分区挂载.你可以把它看作是CONFIG_BLK_DEV_RAM的升级版.具体用法可以参考内核文档'Documentation/blockdev/zram.txt'.
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
使用系统提供的CryptoAPI对loop设备加密.注意:因为不能在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).提示:这与NFS或Coda没有任何关系.更多详情参见"Documentation/blockdev/nbd.txt".不确定的选"N".
OSD object-as-blkdev support
CONFIG_BLK_DEV_OSD
允许将一个单独的 SCSI OSD(Object-Based Storage Devices) 对象当成普通的块设备来使用.举例来说,你可以在OSD设备上创建一个2G大小的对象,然后通过本模块将其模拟成一个2G大小的块设备使用.不确定的选"N".
STEC S1120 Block Driver
CONFIG_BLK_DEV_SKD
STEC公司的S1120 PCIe SSD
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和CONFIG_ZRAM弱许多,使用上也不方便,所以除非你有明确的理由,否则应该选"N",并转而使用CONFIG_TMPFS或CONFIG_ZRAM.
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虚拟块设备驱动.仅可用在基于lguestQEMU的半虚拟化客户机中(一般是KVMXEN).
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 Flash Adapter 900GB Full Height PCIe Device Driver
CONFIG_BLK_DEV_RSXX
IBM Flash Adapter 900GB Full Height PCIe SSD 驱动
NVM Express block device
CONFIG_BLK_DEV_NVME
NVM Express
专门针对PCI-E接口高性能固态硬盘的标准规范.有了这一标准,操作系统厂商只需要编写一种驱动,就可以支持不同厂商的不同PCI-E
SSD设备,以解决过去PCI-E
SSD产品形态与规格五花八门,缺乏通用性和互用性的问题.如果你有一块较新的PCIE固态硬盘,那么很大可能就是NVMe接口.
Misc devices
杂项设备
{省略的部分请按照实际的硬件状况进行选择}
Integrated Circuits ICS932S401
CONFIG_ICS932S401
IDT ICS932S401 系列时钟频率控制芯片支持(可能会出现在某些主板上).
Enclosure Services
CONFIG_ENCLOSURE_SERVICES
SES(SCSI Enclosure Services)
是SCSI协议中用于查询设备状态(温度/风扇/电源/指示灯)的一项服务.这里的设备可以是移动硬盘盒/磁盘阵列柜/硬盘托架等.SES可以让主机端透
过SCSI命令去控制外接SCSI设备的电源/风扇以及其他与数据传输无关的东西.要使用这项技术,外置设备和主机上的SCSI/ATA控制芯片都需要支
持SES技术才OK.事实上,目前大多数外置移动硬盘和所有磁盘阵列柜都支持SES规范.
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芯片组管理引擎,是一种面向企业环境的远程管理技术,其中的重头戏是英特尔主动管理技术.如果你的芯片组位于"CONFIG_INTEL_MEI_ME"中,可以考虑选"Y",不过如果你不明白这是什么东西,那就说明你不需要它,就应该选"N".此外,在某些服务器上此驱动(mei)还可能可能导致监视程序计时器错误,还可能导致无法正常关机.
ME Enabled Intel Chipsets
CONFIG_INTEL_MEI_ME
请根据帮助中列出的芯片组对照实际情况选择.
VMware VMCI Driver
CONFIG_VMWARE_VMCI
VMware VMCI(Virtual
Machine Communication
Interface)是一个在host和guest之间以及同一host上的guest和guest之间进行高速通信的虚拟设备.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".
SCSI: use blk-mq I/O path by default
CONFIG_SCSI_MQ_DEFAULT
对所有SCSI块设备默认使用新式的多重队列I/O调度机制(blk-mq),也就是将I/O请求分散至多个CPU处理以提高性能.相当于开启"scsi_mod.use_blk_mq"内核模块参数.尤其适合于SSD(高IOP)/磁盘阵列(多通道)这类存储设备.
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-x0的SCSI磁带/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 +=75K)
CONFIG_SCSI_CONSTANTS
以易读的方式报告SCSI错误,内核将会增大75K
SCSI logging facility
CONFIG_SCSI_LOGGING
启用SCSI日志(默认并不开
启,需要"echo [bitmask] >
/proc/sys/dev/scsi/logging_level"),可用于跟踪和捕获SCSI设备的错误.关于[bitmask]的说明可以查
看"drivers/scsi/scsi_logging.h"文件.不确定的选"N".
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又区分为Initiator和Target,它们可以直接对接起来,也可以经过Expander进行连
接,Expander起到通道交换或者端口扩展的作用.看不懂就说明你不需要它.
ATA support for libsas (requires libata)
CONFIG_SCSI_SAS_ATA
在libsas中添加ATA支持,从而让libata和libsas协同工作.
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的引导信息.不确定的选"N".
{此处省略的部分按照实际使用的控制器进行选择}
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控制器.仅可用在基于lguestQEMU的半虚拟化客户机中(一般是KVMXEN).
PCMCIA SCSI adapter support
CONFIG_SCSI_LOWLEVEL_PCMCIA
通过PCMCIA卡与计算机连接的SCSI设备
SCSI Device Handlers
CONFIG_SCSI_DH
针对某些多路径安装的SCSI设备的驱动,用在每个节点都需要一个到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_SHA1和CONFIG_CRYPTO_HMAC模块.
OSD Upper Level driver
CONFIG_SCSI_OSD_ULD
提供OSD上层驱动(也就是向用户层提供/dev/osdX设备).从而允许用户层控制OSD设备(比如挂载基于OSD的exofs文件系统).
Serial ATA and Parallel ATA drivers
CONFIG_ATA
SATA与PATA(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).RAID和LVM的功能是使用多个物理设备组建成一个单独的逻辑设备
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")也依赖于它.还有企业级高可用环境中经常使用的多路径设备也依赖于它.
request-based DM: use blk-mq I/O path by default
CONFIG_DM_MQ_DEFAULT
对所有Device-mapper块设备默认使用新式的多重队列I/O调度机制(blk-mq),也就是将I/O请求映射至多个硬件或软件队列以提高性能.相当于开启"dm_mod.use_blk_mq"内核模块参数.推荐选"Y".
Device mapper debugging support
CONFIG_DM_DEBUG
仅供内核开发者调试使用
Keep stack trace of persistent data block lock holders
CONFIG_DM_DEBUG_BLOCK_STACK_TRACING
仅供内核开发者调试使用
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通过将频繁使用的热点数据缓存到一个容量较小但性能很高的存储设备上,从而提升块设备的性能.它支持writeback和writethrough两种模式,并可以使用多种缓存策略(policy)以判断哪些是热点数据以及哪些数据需要从缓存中移除.更多详情参见"Documentation/device-mapper/cache.txt"文档.不确定的选"N".
MQ Cache Policy
CONFIG_DM_CACHE_MQ
MQ缓存策略.这是目前唯一真正可用的缓存策略.
Cleaner Cache Policy
CONFIG_DM_CACHE_CLEANER
Cleaner简单的把所有数据都同步写入到原始设备上,相当于关闭缓存.
Era target
CONFIG_DM_ERA
跟踪块设备上的哪些部分被写入,用于在使用vendor快照时维护缓存一致性.不确定的选"N".
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)支持.常用于对可靠性要求比较苛刻的场合.
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"部分选中相应的哈希算法.
Switch target support
CONFIG_DM_SWITCH
Switch target 可以创建这样的逻辑设备:将固定尺寸区块的I/O操作任意映射到一组固定的路径上.通过向target发送一个消息,即可动态的切换指定区块的I/O操作所使用的路径.
Log writes target support
CONFIG_DM_LOG_WRITES
此种target需要两个设备:主设备按照常规方式使用,辅设备则专门记录所有主设备的写操作.主要用于帮助文件系统的开发者验证文件系统的一致性,仅供开发调试使用.
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. VirtualBox与VMware的虚拟SCSI控制器"LSI Logic
SAS"就使用该目录下的CONFIG_FUSION_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/team/光纤通道/虚拟网络等),仅仅是一般性质的联网(普通低端服务器,通过路由器或者局域网上网的常规个人电脑或办公电脑),可以选"N".
Bonding driver support
CONFIG_BONDING
链路聚合技术拥有多个不同的称谓:Linux称为"Bonding",IEEE称为"802.3ad",Sun称为"Trunking",Cisco称为"Etherchannel".该技术可以将多个以太网通道聚合为一个单独的虚拟适配器,例如将两块网卡聚合成一个逻辑网卡,可以用来实现负载均衡或硬件冗余.此项技术目前已逐渐被CONFIG_NET_TEAM取代.
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),与传统的iSCSI技术相比,除了提供更高的数据传输速度(此优势不是绝对
的),更远的传输距离,更多的设备连接支持,更稳定的性能,更简易的安装以外,最重要的是支持网络区域存储(SAN)技术.FC与SCSI兼容,并意在取
代iSCSI(看起来难以如愿,并且有可能被40Gb以上的iSCSI反超).如果你的机器上有光纤通道卡(FC卡),除了需要开启此项外,还需要开启相
应的FC卡驱动,以及CONFIG_CHR_DEV_SG选项.
Generic Media Independent Interface device support
CONFIG_MII
媒体独立接口(Media Independent Interface)又称介质无关接口,是IEEE-802.3(规定了以太网相关协议的具体内容)定义的以太网行业标准.它包括一个数据接口,以及一个位于MAC和PHY之间的控制接口.[提示]大多数以太网卡都有MII收发器,其驱动都依赖于此项,也会自动选中此项.
Intermediate Functional Block support
CONFIG_IFB
IFB是一个中间层驱动,可以用来灵活的配置资源共享.更多信息参见iproute2文档.看不懂就说明你不需要.
Ethernet team driver support
CONFIG_NET_TEAM
team驱动.允许通过"ip link add link [ address MAC ] [ NAME ] type team"命令,或者使用将多个以太网卡(称为"port")组合在一起,创建一个虚拟的"team"网络设备,从而允许故障转移或者提高吞吐率,其目的是取代传统的"Bonding"(CONFIG_BONDING)驱动."ip"是iproute2包中的一个命令.不确定的选"N".
Broadcast mode support
CONFIG_NET_TEAM_MODE_BROADCAST
广播模式:所有网卡共用同一个MAC地址,每一个包都从所有网卡同时发送,不做负载均衡,仅做链路冗余,需要和交换机的"聚合强制不协商"方式配合使用.此模式最浪费资源,但可靠性最高,容错能力最强.常用于强调极端可靠的金融业.
Round-robin mode support
CONFIG_NET_TEAM_MODE_ROUNDROBIN

环均衡模式:所有网卡共用同一个MAC地址,数据包依次从每个网卡循环分发(例如,在三个网卡一组的情况下,第0个包走eth0,第1个包走eth1,第
2个包走eth2,第3个包走eth0,第4个包走eth1,第5个包走eth2,第6个包走eth0,...一直循环分发下去,直到传输完毕),带宽增
加,支持容错(故障链路会被自动踢出),交换机需要配置聚合口(思科叫"port
channel").数据包从不同的网卡发出,若中途再经过不同的链路,在到达客户端时可能会乱序,从而造成吞吐量达不到理论上的翻倍效果.
Random mode support
CONFIG_NET_TEAM_MODE_RANDOM
随机均衡模
式:所有网卡共用同一个MAC地址,数据包依次随机选择一个网卡分发(例如,在三个网卡一组的情况下,第0个包走eth2,第1个包走eth0,第2个包
走eth2,第3个包走eth1,第4个包走eth1,第5个包走eth0,第6个包走eth2,...一直随机分发下去,直到传输完毕),带宽增加,支
持容错(故障链路会被自动踢出),交换机需要配置聚合口(思科叫"port
channel").数据包从不同的网卡发出,若中途再经过不同的链路,在到达客户端时可能会乱序,从而造成吞吐量达不到理论上的翻倍效果.
Active-backup mode support
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP

备模式:无需更改每个网卡的原生MAC地址,但是team的MAC地址对外仅在主网卡上可见并且保持不变,同一时刻仅有主网卡处于激活状态,其他备用网卡
都处于等待状态,所有流量仅通过主网卡发送,仅在主网卡故障时,某个备用网卡才会被激活成主网卡.此模式仅提供容错能力,可靠性高,但是资源利用率最低.
此模式最大的好处是不需要在交换机上做特别的设置.
Load-balance mode support
CONFIG_NET_TEAM_MODE_LOADBALANCE
BPF均衡模式:均衡算法由用户空间通过BPF接口(bpf_hash_func)设置.
MAC-VLAN support
CONFIG_MACVLAN
MAC-VLAN是通过MAC地址来划分VLAN
方式,在Linux则用来给网卡添加多个MAC地址.你可以使用"ip link add link <real dev> [
address MAC ] [ NAME ] type macvlan"命令创建一个虚拟的"macvlan"设备(系统会自动打开网卡的混杂模式),然后就可以在同一个物理网卡上虚拟出多个以太网口.Docker依赖于它.
MAC-VLAN based tap driver
CONFIG_MACVTAP
基于MAC-VLAN接口的tap(虚拟以太网设备)字符设备(macvtap)驱动,旨在简化虚拟化的桥接网络,目的是替代TUN/TAP(CONFIG_TUN)和Bridge(CONFIG_BRIDGE)内核模块.可以通过与创建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可以为用户空间提供包的接收和发送服务,可以用来虚拟一张网卡或点对点通道(例如为QEMU提供虚拟网卡支持).当程序打开"/dev/net/tun"设备时,驱动程序就会注册相应的"tunX"或"tapX"网络设备,当程序关闭"/dev/net/tun"设备时,驱动程序又会删除相应的"tunX"或"tapX"网络设备以及所有与之相关联的路由.详情参见"Documentation/networking/tuntap.txt"文档.看不懂就表明你不需要.
Support for cross-endian vnet headers on little-endian kernels
CONFIG_TUN_VNET_CROSS_LE
允许小端序(little-endian)内核中的TUN/TAP与MACVTAP设备驱动解析来自大端序(big-endian)内核的老旧的virtio设备的vnet头.不确定的选"N".
Virtual ethernet pair device
CONFIG_VETH
该驱动提供了一个本地以太网隧道(设备会被成对的创建).Docker依赖于它.
Virtio network driver
CONFIG_VIRTIO_NET
virtio虚拟网卡驱动.仅可用在基于lguestQEMU的半虚拟化客户机中(一般是KVMXEN).
Virtual netlink monitoring device
CONFIG_NLMON
提供一个可以监视netlink skbs的网络设备,以允许tcpdump之类的工具通过packet socket来分析netlink消息.仅供调试使用.
ARCnet support
CONFIG_ARCNET
ARCnet是1977年由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中明确列出的型号外,其他型号用的都是这个驱动.[注
意]某些型号还需要额外到固件支持,例如:BCM5703/BCM5704需要tigon/tg3_tso.bin,BCM5701A0需要tigon
/tg3.bin,BCM5705需要tigon/tg3_tso5.bin
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,通常的网卡把MAC和PHY的功能做到了一颗芯片中,但也有一些仅含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接口的包进行过滤.仅在你需要使用pppd的pass-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 linefill和keepalive监视,这在信号质量比较差的模拟线路上是个好主意
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"目录,不过你最好亲自用眼睛检查一下其中是否存在"iwlwifi-*.ucode"这样的文件.[提示]下面两种固件与网卡之间的对应关系可参考iwlwifi驱动的wiki文档.
Intel Wireless WiFi DVM Firmware support
CONFIG_IWLDVM
DVM固件支持(适用于较老的无线网卡).选"Y/M".[提示]如果你将此驱动静态编译进内核,那么务必使用CONFIG_EXTRA_FIRMWARE功能将固件也一起编译进内核.
Intel Wireless WiFi MVM Firmware support
CONFIG_IWLMVM
MVM固件支持(适用于较新的无线网卡).选"Y/M".[提示]如果你将此驱动静态编译进内核,那么务必使用CONFIG_EXTRA_FIRMWARE功能将固件也一起编译进内核.
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 虚拟以太网卡驱动
FUJITSU Extended Socket Network Device driver
CONFIG_FUJITSU_ES
FUJITSU PRIMEQUEST 2000 E2 系列网卡
Microsoft Hyper-V virtual network driver
CONFIG_HYPERV_NET
Microsoft Hyper-V 虚拟以太网卡驱动
ISDN support
CONFIG_ISDN
上世纪在ADSL流行之前曾经有过短暂流行,但现在已经绝迹了
Open-Channel SSD target support
CONFIG_NVM
Open-channel SSD 是一种遵守NVMe规范且不使用FTL技术的固态硬盘.目前此种SSD由于过于前卫还非常罕见.但是非常有前途.
Open-Channel SSD debugging support
CONFIG_NVM_DEBUG
提供 /sys/module/lnvm/parameters/configure_debug 调试接口以允许创建/删除"target".仅供调试使用.
Generic NVM manager for Open-Channel SSDs
CONFIG_NVM_GENNVM
为Open-Channel SSD提供NVM介质管理(media manager)支持,也就是将数据存放位置与垃圾回收策略的决定权收归操作系统内核,以剥夺固态硬盘设备自身的介质管理功能,或者说允许使用自身不包含介质管理功能的固态硬盘.
Round-robin Hybrid Open-Channel SSD target
CONFIG_NVM_RRPC
允许将open-channel SSD在主机上显示为一个块设备:使用线性映射表实现,使用基于开销(cost-based)的垃圾回收机制,并对4K大小的IO操作进行了优化.
Input device support
输入设备
Generic input layer (needed for keyboard, mouse, ...)
CONFIG_INPUT
通用输入层.只要你有任何输入设备(键盘,鼠标,手写板,触摸板,游戏杆,方向盘,游戏键盘...),就必须选"Y".
Export input device LEDs in sysfs
CONFIG_INPUT_LEDS
将输入设备上的LED指示灯当作标准的LED类设备导出到sysfs中.不确定的选"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).用鼠标的必选(包括USB鼠标).[提示]如果系统上有多个鼠标,那么,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",否则将无法在控制台上显示Unicode字符.[提示]如果已经使用了CJKTTY补丁,则必选"Y".
Support for console on virtual terminal
CONFIG_VT_CONSOLE

核默认将第一个虚拟终端(/dev/tty0)用作系统控制台(可以通过"console=tty3"这样的参数去修改),将诸如模块错误/内核错误/启
动信息之类的警告信息发送到这里,而且以单用户模式登录时也需要使用这个控制台.若选"N"则会导致黑屏.除非是嵌入式系统,否则必选"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(被一个诸如xterm之类的进程用来读写slave设备)两部分组成的软设备.图形界面用户与需要支持ssh/telnet远程登录者必选.
Support multiple instances of devpts
CONFIG_DEVPTS_MULTIPLE_INSTANCES
允许多个"devpts"文件系统实例(使用"-o newinstance"挂载选项),以允许相互隔离的PTY命名空间(比如在虚拟化容器中).Docker依赖于它.systemd的PrivateNetwork/PrivateDevices特性依赖于它.
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/mem virtual device support
CONFIG_DEVMEM
"/dev/mem"虚拟设备是整个处理器地址空间的全映射(包括所有物理内存/设备IO空间/总线映射空间),可以用来直接存取物理内存,常用于访问物理IO设备,例如dmidecode工具可以从中提取系统识别信息(序列号,制造商,型号,等等),或者Xorg可以用来访问显卡的物理内存或者实现用户空间驱动,同时拥有root权限的攻击者也可以使用它完成很多标准rootkit的行为.如果你需要使用用户空间的驱动或不确定,那么选"Y".如果你觉得安全特别重要,可以选"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,中断共享,多端口,超过4个COM口).不确定的选"N".
Support more than 4 legacy serial ports
CONFIG_SERIAL_8250_MANY_PORTS
如果你的板子上有超过4个COM接口就选"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(Remote Supervisor Adapter)串口,是一种IBM特定的硬件.看不懂的选"N".
Support for Synopsys DesignWare 8250 quirks
CONFIG_SERIAL_8250_DW
Synopsys DesignWare APB UART 中非标准特性的支持.
Medfield High Speed UART support
CONFIG_SERIAL_MFD_HSU
Medfield是Intel以x86为架构开发的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),用于客户机和宿主机之间的通信.仅可用在基于lguestQEMU的半虚拟化客户机中(一般是KVMXEN).
IPMI top-level message handler
CONFIG_IPMI_HANDLER
智能平台管理接口(Intelligent Platform Management Interface)
是标准的传感器(温度,电压,风扇,电源,机箱入侵)管理规范.IPMI的核心是专用的基板管理控制器(BMC)硬件,BMC并不依赖于服务器的
CPU/BIOS/OS,是一个独立运行的管理子系统,只要有BMC与IPMI固件便可工作.BMC通常是一个安装在服务器主板上的独立的板卡(也有少数
服务器主板内置).IPMI良好的独立特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下,仍然可以进行开关机等操
作.更多详情参见"Documentation/IPMI.txt"文档.此项技术主要用于服务器领域,个人PC和笔记本上是没有的.
Generate a panic event to all BMCs on a panic
CONFIG_IPMI_PANIC_EVENT
当内核panic(发生紧急情况)时,IPMI消息处理器将会向每一个已注册的底板管理控制器(BMC)接口生成一个描述该panic的IPMI事件,这些事件可以引发日志记录/报警/重启/关机等动作.
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".
Probe for all possible IPMI system interfaces by default
CONFIG_IPMI_SI_PROBE_DEFAULTS

新的硬件通常使用ACPI或DMI机制导出IPMI接口,但是老旧的硬件并不这么做,所以驱动程序必须直接探测硬件,这会导致启动延迟.选"N"表示禁止
直接探测.选"Y"表示强制直接探测(相当于使用"ipmi_si_intf.trydefaults=1"内核引导选项).
IPMI SMBus handler (SSIF)
CONFIG_IPMI_SSIF
使用I2C总线上的SMBus接口访问BMC(而不是标准接口).建议选"N".
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"文档.
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芯片组(这是2005年以前的老产品了)的硬件随机数发生器
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虚拟的硬件随机数发生器.仅可用在基于lguestQEMU的半虚拟化客户机中(一般是KVMXEN).
EXYNOS HW random number generator support
CONFIG_HW_RANDOM_EXYNOS
基于EXYNOS的SOC嵌入式系统上的硬件随机数发生器
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".
Enable HPET MMAP access by default
CONFIG_HPET_MMAP_DEFAULT
默认开启HPET寄存器映射
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
仅需要对Infineon的TPM设备选"Y".
National Semiconductor TPM Interface
CONFIG_TCG_NSC
仅需要对National的TPM设备选"Y".
Atmel TPM Interface
CONFIG_TCG_ATMEL
仅需要对Atmel的TPM设备选"Y".
Infineon Technologies TPM Interface
CONFIG_TCG_INFINEON
仅需要对Infineon的TPM设备(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".
Xillybus generic FPGA interface
CONFIG_XILLYBUS
Xillybus是一个通用的FPGA接口,仅用于嵌入式设备.
I2C support
CONFIG_I2C
I2C与SMBus支持.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".
ACPI I2C Operation region support
CONFIG_ACPI_I2C_OPREGION
3.17版内核新增功能,允许BIOS中的代码通过I2C主机控制器驱动访问I2C slave设备(例如智能电池).
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总线."sensors-detect"工具依赖于此功能.详情参见"Documentation/i2c/dev-interface"文档.建议选"M".
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了.[提示]可用"sensors-detect"工具帮助检测
SMBus Control Method Interface
CONFIG_I2C_SCMI
SMBus控制方法接口(Control Method Interface)是SMBus的ACPI接口.用于在ACPI环境中使用SMBus设备.不确定的选"M"(i2c-scmi).
{其余被省略的都是用于嵌入式系统或者额外的I2C/SMBus扩展卡,按实际情况选择即可}
I2C/SMBus Test Stub
CONFIG_I2C_STUB
用于帮助开发SMBus client驱动(特别是某些传感器芯片).详情参见"Documentation/i2c/i2c-stub"文档.不确定的选"N".
I2C slave support
CONFIG_I2C_SLAVE
I2C slave模式支持.不确定的选"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常用于SoC与外围设备(RTC,LCD,传感器[温度,压力,触摸屏,游戏控制器],EEPROM,FLASH,
数字电位器,相机镜头,音频编解码器,模数转换器,数字信号处理器,通信设备[以太网,USB,USART,CAN,IEEE
802.15.4,IEEE
802.11])之间的通信,MMC和SD卡也可以通过SPI协议访问,而MMC接口的DataFlash卡则必须通过SPI才能访问.2016年英特尔
推出了旨在取代传统LPC/SPI/SMbus总线的eSPI(Enhanced Serial Peripheral
Interface)总线,eSPI总线可与SPI设备共用以节省引脚或与SPI总线分离以提高性能,使用eSPI总线可以降低主板布线复杂度,提高与外
设的通信性能,降低功耗.不确定的选"Y".
SPMI support
CONFIG_SPMI
系统电源管理接口(SPMI, System Power Management Interface)是一种连接PMIC(Power Management Integrated Circuits)的双线串行接口.仅用于嵌入式环境.
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)驱动用来控制电流脉冲速率,可用于计时.PPS的精度可以到纳秒级,而且没有累积误差.这通常是GPS天线的一项功能,用于获取GPS卫星的授时.
PTP clock support
CONFIG_PTP_1588_CLOCK
精密时间协议(Precision Time Protocol)是IEEE 1588
义的一种基于以太网的高精度时间同步协议.PTP采用硬件与软件结合设计,可以提供比纯软件方式的NTP(网络时间协议)高的多的精度(微秒级).与
GPS授时相比,在提供和GPS相同的精度情况下,PTP不需要为每个设备安装GPS那样昂贵的组件,只需要一个高精度的本地时钟和提供高精度时钟戳的部
件,成本较低.一般的PC和服务器上没有PTP硬件.
Pin controllers
Pin控制器.其下的各选项请根据实际硬件状况选择(皆为低功耗或嵌入式平台).
GPIO Support
CONFIG_GPIOLIB
每个芯片都会有至少一个引脚(PIN),像CPU或者芯片组这种复杂的芯片,其引脚会有成白上千个,这些PIN就是芯片与外部沟通的渠道,每个PIN都会有它特定的功能.GPIO(General Purpose I/O)
就是芯片上的一种通用功能的引脚,其功能可由使用者通过编程的方式自定义(所谓"可编程引脚"),比如使用两条PIN就可以组成I2C,使用4条PIN就
可以组成SPI.嵌入式系统经常需要控制结构简单但数量众多的外部设备(比如LED的亮与灭),使用传统的串口或者并口就太"大炮打蚊子",而GPIO则
非常适合用于控制此类数量众多的简单设备.GPIO在嵌入式设备中使用广泛,但PC平台的芯片组南桥大多也集成有GPIO引脚(但只有BIOS才知道如何使用他们),以支持某些特殊的定制硬件.详情参见"Documentation/gpio/gpio.txt"文档.不确定的选"N".
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)进行监控.主要用于笔记本与嵌入式设备.
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更佳的电力利用效率,是一种降低功耗与优化性能并举的电源与性能管理技术.AVS在OMAP设备上也被称为"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)的开放标准的数字电源管理协议,可以用于配置/监控/操作电源变换器,目前全球有超过40个IC厂商提供满足PMBus标准的产品.最新的PMBus+ 1.3标准增加AVS(CONFIG_POWER_AVS)支持,可以动态控制设备的工作电压.根据你的实际硬件状况选择子项.
ACPI 4.0 power meter
CONFIG_SENSORS_ACPI_POWER
ACPI 4.0(2009年6月发布)中定义的瓦特表(用于测量功耗)当做硬件监控设备导出到用户空间.需要固件支持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"文档.
Expose thermal sensors as hwmon device
CONFIG_THERMAL_HWMON
将温度传感器同时注册为一个硬件监控设备,从而让温度传感器同样在sysfs中拥有hwmon接口.
Enable writable trip points
CONFIG_THERMAL_WRITABLE_TRIPS
允许用户空间程序更改温度报警阀值(trip temperature).
Default Thermal governor
选择默认的热调节器,建议选"step_wise".
Fair-share thermal governor
CONFIG_THERMAL_GOV_FAIR_SHARE
此调节器根据设备对所属区域的"贡献"(contribution)进行调节.
Step_wise thermal governor
CONFIG_THERMAL_GOV_STEP_WISE
此调节器以线性方式进行调节,也就是每次调节都只在紧邻的两档之间进行切换.
Bang Bang thermal governor
CONFIG_THERMAL_GOV_BANG_BANG
此调节器仅能让散热风扇处于开/关两种状态(根据温度阀值)而不能调节风扇的速度.某些Acer笔记本风扇驱动(acerhdf)依赖于此调节器.不能将此调节器设为默认调节器.
User_space thermal governor
CONFIG_THERMAL_GOV_USER_SPACE
此调节器让用户空间程序去决定如何调节
Power allocator thermal governor
CONFIG_THERMAL_GOV_POWER_ALLOCATOR
此调节器可对特定的设备动态分配和限制能量的使用.不确定的选"N".
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".
X86 package temperature thermal driver
CONFIG_X86_PKG_TEMP_THERMAL
所谓"CPU温度"
实际上是个多重概念:(1)Socket温度,是指CPU插座里的测温二极管探测到的温度,相当于CPU外表面的温度;(2)Package温度,是封装
在CPU内部的测温二极管探测到的温度,是真正的CPU内部的温度,此温度永远比Socket温度高;(3)Core温度,是每个CPU核心内嵌的温度传
感器检测到的温度,有多少个核心就有多少个Core温度;此选项提供了检测Package温度的驱动.并将此温度用于监控CPU温度(对于拥有多颗物理
CPU的服务器来说每颗物理CPU对应一个Package温度).同时,选中此项后,温度报警阀值也变为可以设置两个严重级别不同的值.建议选"Y".
Intel SoCs DTS thermal driver
CONFIG_INTEL_SOC_DTS_THERMAL
专用于Intel SoC(BayTrail等)平台的CPU内嵌温度传感器驱动.
ACPI INT340X thermal drivers
CONFIG_INT340X_THERMAL
除了
CPU/SOC内置的温度传感器之外,新式笔记本或平板电脑还经常包含探测整机不同位置温度的传感器,这些温度传感器以INT3400
ACPI设备作为主设备(master),并以INT3401~INT340B
ACPI设备为从设备(slave),此选项提供了对此类温度传感器的驱动支持.
Intel PCH Thermal Reporting Driver
CONFIG_INTEL_PCH_THERMAL
专用于Intel PCH芯片组内置温度传感器的驱动.
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框架,又可以拥有多个相互独立的子设备(子功能).
Intel ICH LPC
CONFIG_LPC_ICH
LPC(Low Pin Count)总线是Intel于1998年发布的一个旨在取代传统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(目前仅有GPIO和watchdog).具体支持的芯片可以查看"drivers/mfd/lpc_ich.c"文件.不确定的选"Y".
Intel SCH LPC
CONFIG_LPC_SCH
用于 Intel Atom 处理器的 Intel SCH(System Controller Hub) LPC 总线支持.目前仅支持SMBus和GPIO.
{此处省略的硬件请按照实际使用的芯片进行选择}
Voltage and Current Regulator Support
CONFIG_REGULATOR
通用的电压与电流调节器框架.除了提供通用的电压与电流调节接口外,还能通过sysfs向用户空间提供电压与电流的状态信息.目的在于通过动态调节电压和电流,降低能耗,延长电池寿命.主要用于嵌入式环境.
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
仅用于旧式的图像传感器驱动(omap24xxcam和tcm825x),反对使用此项.选"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"是指那些不通过PCI或USB总线连接的摄像头(例如通过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
图形设备/显卡支持.对于不需要使用图形界面的服务器环境来说,必须的最小选项集取决于平台
(BIOS/UEFI)和引导程序(GRUB/LILO/GRUB4DOS)的设置(全选"N"则屏幕将无任何显示).具体如下:(1)以UEFI方式启
动的,一律都必须"CONFIG_FB=y,CONFIG_FB_EFI=y,CONFIG_FRAMEBUFFER_CONSOLE=y"[补充说明:
对于3.12或以上版本,则应该
是"CONFIG_X86_SYSFB=y,CONFIG_FB=y,CONFIG_FB_SIMPLE=y,FRAMEBUFFER_CONSOLE=y"];
(2)以BIOS+GRUB2启动,且在'grub.cfg'中明确将"gfxpayload"变量设置为非'text'值或者内核引导参数中存在
'vga=...',那么必
须"CONFIG_FB=y,CONFIG_FB_VESA=y,CONFIG_FRAMEBUFFER_CONSOLE=y"[补充说明:对于3.12
或以上版本,则应该
是"CONFIG_X86_SYSFB=y,CONFIG_FB=y,CONFIG_FB_SIMPLE=y,FRAMEBUFFER_CONSOLE=y"];
(3)以BIOS方式启动的其他情况,必须"CONFIG_VGA_CONSOLE=y"
/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/9系列芯片组)也不是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加速.不需要图形界面的用户应该选"N".桌面用户建议选"Y".[提示]KMS+DRI2+GEM+UXA+WaylandLinux图形革命的基石,这里还有两篇需要越墙的文章可以帮助加深对Linux图形技术的理解:(1)关于Xorg的一些整理,(2)厘清了xorg里的一些概念.
Enable legacy fbdev support for your modesetting driver
CONFIG_DRM_FBDEV_EMULATION
为传统的fbdev设备提供支持,由于CONFIG_FRAMEBUFFER_CONSOLE依赖于fbdev设备,因此务必选"Y",否则将会遭遇控制台黑屏.
Allow to specify an EDID data set instead of probing for it
CONFIG_DRM_LOAD_EDID_FIRMWARE
EDID(扩展显示器识别数据)是一种VESA(视频电子标准协会)制定的标准数据格式,其中包含有关显示器的各种参数:供应商信息,最大图像尺寸,颜色设置,厂商预设置,频率范围,显示器名,序列号字符串等等.EDID保存在显示器的PROM或EEPROM中,显卡或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").[注意]如果你打算使用目前尚不支持KMS的Radeon闭源驱动(Catalyst/fglrx),那么此项必须选"N".
Enable userspace modesetting on radeon (DEPRECATED)
CONFIG_DRM_RADEON_UMS
禁用KMS支持.目的是为了兼容远古版本的DDX驱动.除非你有充足的理由,否则请选"N".
Nouveau (nVidia) cards
CONFIG_DRM_NOUVEAU
nVidia系列显卡开源驱动(nouveau).[注意]如果你打算使用也许永远不会支持KMS的nVidia闭源驱动(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选项.
Enable legacy fbdev support for the modesetting intel driver
CONFIG_DRM_I915_FBDEV
使用此驱动为传统的fbdev设备提供支持,由于CONFIG_FRAMEBUFFER_CONSOLE依赖于fbdev设备,因此务必选"Y",否则将会遭遇控制台黑屏.
Enable preliminary support for prerelease Intel hardware by default
CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT
为尚未正式发布的显卡提供支持,相当于设置"i915.preliminary_hw_support=1"引导参数.一般应该选"N"
Enable userspace modesetting on Intel hardware (DEPRECATED)
CONFIG_DRM_I915_UMS
为古董级的DDX驱动提供用户空间模式设置支持.选"N".
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支持.[注意]仅用于服务器芯片,不要用于桌面芯片!此驱动需要v0.3.0版本的用户空间modesetting驱动.
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视频控制所依赖的功能,也被许多显卡驱动所依赖.可以选"N",若有其它驱动需要它,会被自动选中.
Support for frame buffer devices
CONFIG_FB
帧缓冲(framebuffer)
设备(/dev/fb*)是一种对图形硬件的抽象,它把屏幕上的所有像素点都直接映射到一段线性的内存空间,这样就为软件提供了访问图形硬件的统一接口,
这些软件不需要了解硬件的底层细节(例如寄存器),只要简单的改变相应内存位置的值,就能改变屏幕上显示的内容(颜色/亮度等).Xorg的高度可移植性
也就根源于此.图形界面用户必选.CJKTTY补丁也依赖于它.
Enable firmware EDID
CONFIG_FIRMWARE_EDID
EDID(扩展显示器识别数据)保存在显示器的PROM或EEPROM中,显卡或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
使用GTF和EDID解析程序来帮助处理显示模式,建议选"N",若有其他选项依赖于它时,会自动选上.
Enable Tile Blitting Support
CONFIG_FB_TILEBLITTING
此项仅对matroxfb驱动有意义,建议选"N",若有其他选项依赖于它时,会自动选上
{虽然此处省略的各种Framebuffer驱动提供了对图形硬件的统一抽象,让Xorg不必与硬件直接对话,但
这些Framebuffer驱动仅能提供2D功能,在如今3D硬件加速和视频硬件解码早已铺天盖地的情况下,让Xorg直接与GPU硬件对话才更符合潮
流,而传统的Framebuffer驱动(CONFIG_FB_*)反而成为了绊脚石,不但没有必要与新的DRI驱动(CONFIG_DRM_*)共存,
而且还会相互冲突.所以切勿选中这里省略的任何Framebuffer驱动.除非你确实知道自己在做什么.}
Exynos Video driver support
CONFIG_EXYNOS_VIDEO
三星基于ARM构的EXYNOS处理器内置显卡
Backlight & LCD device support
CONFIG_BACKLIGHT_LCD_SUPPORT
背光与液晶支持.
Lowlevel LCD controls
CONFIG_LCD_CLASS_DEVICE
液晶(LCD)底层控制框架.用于控制对比度和LCD开关(而不是背光亮度).这些LCD硬件目前仅用于智能手机/平板电脑等嵌入式环境.
Lowlevel Backlight controls
CONFIG_BACKLIGHT_CLASS_DEVICE
背光(Backlight)底层控制框架.用于控制背光源的亮度和开关.选中此项后还需要从子项中选择特定于硬件的驱动.
Generic PWM based Backlight Driver
CONFIG_BACKLIGHT_PWM
液晶显示器(包括台式机和笔记本)的背光亮度调整方式有两种:(1)PWM调光,(2)非PWM调光.目前主流的液晶显示器基本上都是PWM调光,仅有少数是非PWM调光型号(而且越来越少).
Apple Backlight Driver
CONFIG_BACKLIGHT_APPLE
基于Intel处理器的苹果Macbook笔记本和iMac台式机显示器背光控制
{其它省略的驱动仅用于智能手机/平板电脑等嵌入式环境}
Console display driver support
控制台显示驱动.每个人都需要.下面的"VGA text"与"Framebuffer"至少应该选中一个.
VGA text console
CONFIG_VGA_CONSOLE
VGA文本模式控制台.建议选"N".仅某些服务器环境可以考虑选"Y".
Enable Scrollback Buffer in System RAM
CONFIG_VGACON_SOFT_SCROLLBACK

准的VGA控制台回滚缓冲区位于VGA
RAM中,但是其空间非常小,并且是固定的.开启此项后,就可以在内存中开辟更大的屏幕回滚缓冲区,这将允许你回滚更多的屏幕
(Shift+PageUp),但是控制台的速度会略有下降.经常使用文本控制台的可以选"Y",不确定的选"N".
Scrollback Buffer Size (in KB)
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE
在内存中开辟的屏幕回滚缓冲区大小.每个80x25屏幕需要4KB内存
Framebuffer Console support
CONFIG_FRAMEBUFFER_CONSOLE
基于Framebuffer的图形模式控制台.KMS特性依赖于它.CJKTTY补丁也依赖于它.桌面用户必选"Y"(使用了CONFIG_DRM_*的用户必须开启),服务器以UEFI方式启动的也必选"Y".
Map the console to the primary display device
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
选"Y"表示自动将控制台映射到"主"显卡,选"N"表示自动将控制台映射到第一个加载的显卡驱动.无论是否选中此项,都可以通过"fbcon=map:N"内核引导参数更改映射关系.仅在系统拥有多个显卡时此选项才有意义.参见"Documentation/fb/fbcon.txt"文档.
Framebuffer Console Rotation
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION
显示画面旋转,由于是纯软件方式实现,所以会大大降低显示速度,除非你确实需要,否则建议选"N".若使用了CJKTTY补丁,则必须选"N".
Support for the Framebuffer Console Decorations
CONFIG_FB_CON_DECOR
允许在控制台上显示背景图像,例如在系统启动时,在一堆滚动的字符背后显示漂亮的背景图像.当然,要实现这个功能,还需要用户空间程序的帮助.详见"Documentation/fb/fbcondecor.txt"文档以及fbsplash的wiki页.
Bootup logo
CONFIG_LOGO
启动时显示linux的logo(一幅企鹅图像),企鹅的数量表示内核检测到的CPU数目,喜欢炫一下的就选吧.子项是三种不同质量的图片,分别是黑白,16色,224色.按需选择.
Sound card support
CONFIG_SOUND
声卡支持
Preclaim OSS device numbers
CONFIG_SOUND_OSS_CORE_PRECLAIM

启此项后,只要OSS支持被开启,无论相应的模块是否被加载,内核都会预先声明所有OSS设备号.当其中一个设备被打开时,将会尝试使用"sound-
slot/service-*"与"char-major-*"两种别名去加载相应的模块.关闭此项后,
内核将仅声明实际使用中的OSS设备号.当打开一个不存在的设备时,将会仅尝试使用标准的"char-major-*"别名去加载相应的模块.由
于"sound-slot/service-*"将会在未来移除,此选项仅是一个为了兼容性而保留的过渡选项,未来会被移除(相当于设为"N").
Advanced Linux Sound Architecture
CONFIG_SND
ALSA(高级Linux声音架构)是内核默认的声音子系统.ALSA除了提供了声音设备的驱动,还提供了一个用户空间的函数库,这样用户空间程序就可以通过统一的API使用驱动功能,而不必直接与内核驱动交互.[吐槽]Linux音频系统,比意大利面条更混乱的系统!
Sequencer support
CONFIG_SND_SEQUENCER
MIDI音序器支持,如果你是MIDI玩家,请选"Y",但如果你不知道MIDI是什么,请选"N".
Sequencer dummy client
CONFIG_SND_SEQ_DUMMY
除非你要同时连接到多个MIDI设备或应用程序,否则请不要选中
OSS Mixer API
CONFIG_SND_MIXER_OSS
模拟OSS混音器API(/dev/mixer*),某些老旧的程序仍然使用它,建议不选
OSS PCM (digital audio) API
CONFIG_SND_PCM_OSS
模拟OSS数字音频(PCM)API(/dev/dsp*),某些老旧的程序仍然使用它,建议不选.
OSS PCM (digital audio) API - Include plugin system
CONFIG_SND_PCM_OSS_PLUGINS
让ALSA模拟的 OSS PCM API 支持channel/format/rate的转换.选"N",除非你确实知道为什么要选"Y".
OSS Sequencer API
CONFIG_SND_SEQUENCER_OSS
模拟OSS音序器(/dev/sequencer,/dev/music),某些老旧的程序仍然使用它,建议不选
HR-timer backend support
CONFIG_SND_HRTIMER
允许将高精度定时器(CONFIG_HIGH_RES_TIMERS)用作ALSA高精度时间源,建议选中
Use HR-timer as default sequencer timer
CONFIG_SND_SEQ_HRTIMER_DEFAULT
将高精度定时器(HR-timer)当作默认的时序脉冲发生器时间源,建议选中
Dynamic device file minor numbers
CONFIG_SND_DYNAMIC_MINORS
动态分配ALSA设备的次设备号.如果你有8个以上的声卡,可以选"Y",否则应该选"N".
Support old ALSA API
CONFIG_SND_SUPPORT_OLD_API
支持已被废弃的老旧版本的ALSA PCM API,选"N".
Verbose procfs contents
CONFIG_SND_VERBOSE_PROCFS
仅供调试使用
Verbose printk
CONFIG_SND_VERBOSE_PRINTK
仅供调试使用
Debug
CONFIG_SND_DEBUG
仅供调试使用
Generic sound devices
CONFIG_SND_DRIVERS
通用声音设备
PC-Speaker support (READ HELP!)
CONFIG_SND_PCSP
如果你有声卡,务必选"N".如果你的系统没有声卡,仅在认真阅读了帮助之后,确实知道自己在干什么的情况下,才可以开启此项.
Dummy (/dev/null) soundcard
CONFIG_SND_DUMMY
仅供调试使用
Generic loopback driver (PCM)
CONFIG_SND_ALOOP
PCM
回(loopback)设备非常类似于网卡的环回接口(127.0.0.1),它会将输入的音频流原封不动的返回给用户空间.PCM回环设备常用来将A程
序输出的音频流作为B程序的输入(A以写模式打开环回设备,而B以读模式打开),比如用B程序记录A程序的输出,或做进一步的处理.
Virtual MIDI soundcard
CONFIG_SND_VIRMIDI
虚拟MIDI驱动,允许将使用原始MIDI设备的应用程序连接到音序器客户端,如果你不知道MIDI是什么就选"N".
{此处省略几种MIDI设备(事实上大部分人都没有这些设备)}
AC97 Power-Saving Mode
CONFIG_SND_AC97_POWER_SAVE
AC97(Audio
Codec
97)自动节能模式支持.在此模式下,如果音频设备闲置超过"/sys/module/snd_ac97_codec/parameters
/power_save"设定的秒数("0"表示关闭节能模式),那么驱动程序将会关闭音频设备以节约电力.建议选"Y".详见"Documentation/sound/alsa/powersave.txt"文档.
Default time-out for AC97 power-save mode
CONFIG_SND_AC97_POWER_SAVE_DEFAULT
默认的超时秒数,也就是"/sys/module/snd_ac97_codec/parameters/power_save"的默认值."0"表示关闭节能模式.建议设为"10"这个久经考验的合理数字.
ISA sound devices
CONFIG_SND_ISA
基于ISA总线的声卡,已经绝种了.
PCI sound devices
CONFIG_SND_PCI
基于PCI总线的声卡,绝大多数声卡都是PCI接口
{此处省略的声卡按实际情况选择即可(都是些比较旧的AC97声卡)}
Intel HD Audio
CONFIG_SND_HDA_INTEL
符合Intel HD Audio规范的声卡是目前的主流声卡.如果选"M",那么下面的每个驱动也都会被编译成模块,如果选"Y",那么下面的每个驱动也都会直接编译进内核.
Pre-allocated buffer size for HD-audio driver
CONFIG_SND_HDA_PREALLOC_SIZE
为HD-audio驱动程序预先分配的缓冲区大小(kB),较大的值拥有更好的性能,例如对于使用PulseAudio声音服务器的系统来说,推荐使用"4096".默认值"64"仅仅是为了历史兼容的原因.[提示]ALSA+PulseAudio是目前的主流搭配.
Build hwdep interface for HD-audio driver
CONFIG_SND_HDA_HWDEP
为HD-audio驱动添加hwdep接口.仅用于调试目的
Support digital beep via input layer
CONFIG_SND_HDA_INPUT_BEEP
为HD-audio驱动添加数字蜂鸣(beep)接口.如果你的主板没有蜂鸣器(不是能够播放音乐的扬声器),可以考虑选"Y".
Digital beep registration mode (0=off, 1=on)
CONFIG_SND_HDA_INPUT_BEEP_MODE
设为"0"表示默认禁用数字蜂鸣接口,设为"1"表示默认启用数字蜂鸣接口.
Support jack plugging notification via input layer
CONFIG_SND_HDA_INPUT_JACK
通过输入层支持JACK插件通知.JACK是一个比PulseAudio更专业的声音服务器,重点是低延迟,是专业音频软件(例如:Ardour,Rezound,LinuxSampler)首选的音频服务器.如果你打算使用JACK,可以选"Y".[提示]如果要将JACK和PulseAudio一起使用,需要安装PulseAudio的JACK支持模块.
Support initialization patch loading for HD-audio
CONFIG_SND_HDA_PATCH_LOADER
仅用于调试目的
{此处省略的HD-audio声卡按实际情况选择即可.[提示]如果CONFIG_SND_HDA_INTEL被编译为模块,这里的每一个驱动也都会被编译成模块.}
Build HDMI/DisplayPort HD-audio codec support
CONFIG_SND_HDA_CODEC_HDMI
在HD-audio驱动中添加HDMI和DisplayPort支持.如果你需要使用HDMI/DisplayPort接口,可以选"Y".
Enable generic HD-audio codec parser
CONFIG_SND_HDA_GENERIC
通用HD-audio编解码器(codec)支持,必选.
Default time-out for HD-audio power-save mode
CONFIG_SND_HDA_POWER_SAVE_DEFAULT
HD-audio自动节能模式默认的超时秒数."0"表示关闭节能模式.建议设为"10"这个久经考验的合理数字.详见"Documentation/sound/alsa/powersave.txt"文档与CONFIG_SND_AC97_POWER_SAVE_DEFAULT选项.
SPI sound devices
CONFIG_SND_SPI
基于SPI总线的声卡,仅出现在嵌入式设备上
USB sound devices
CONFIG_SND_USB
基于USB总线的声卡,主要是外接声卡,并不常用
FireWire sound devices
CONFIG_SND_FIREWIRE
基于IEEE-1394/FireWire/iLink总线的声卡,主要用于苹果的产品
PCMCIA sound devices
CONFIG_SND_PCMCIA
基于PCMCIA接口的声卡,主要是外接声卡,并不常用
ALSA for SoC audio support
CONFIG_SND_SOC
SoC系统音频设备支持,重点是节能支持.仅用于嵌入式设备
Open Sound System (DEPRECATED)
CONFIG_SOUND_PRIME
OSS早已被废弃(已被ALSA取代).选"N".
HID support
HID(人机接口设备)是一种定义计算机如何与人类交互的规范,常与USB或蓝牙搭配使用,常见的设备有:键盘,鼠标,触摸板,游戏杆,遥控器,蓝牙耳机,游戏手柄,手写板,等等.不过HID设备不一定要有人机接口,只要符合HID规范,就是HID设备.
HID bus support
CONFIG_HID
HID(human interface device)总线及通用HID层.要使用HID设备就必须开启.[提示]PS/2接口的鼠标和键盘不是HID设备,USB或蓝牙接口的才是HID设备.
Battery level reporting for HID devices
CONFIG_HID_BATTERY_STRENGTH
为那些支持power_supply类的HID电池,向用户空间报告电池的剩余电量(可以通过upower工具显示).
/dev/hidraw raw HID device support
CONFIG_HIDRAW
如果你想支持
那些严格说来并不属于人机交互设备的硬件(使用额外的/dev/hidraw接口),例如显示控制装置(monitor
control)或不间断电源(UPS)以及某些罗技的无线鼠标接收器,可以选"Y".与CONFIG_USB_HIDDEV选项(/dev
/hiddev)相比,/dev/hidraw设备直接无视一切hid事件(既不解析也不查找),这样就允许应用程序直接处理和操作原始的hid事件,从
而避免使用用户层libhid/libusb库.详见"Documentation/hid/hidraw.txt"文档.
User-space I/O driver support for HID subsystem
CONFIG_UHID
HID
子系统需要两种驱动:(1)"HID I/O Driver"是特定于硬件的驱动,直接与底层总线交互,并向"HID Device
Driver"提供了一致接口用于收发HID数据.(2)"HID Device
Driver"是硬件无关的通用驱动,其任务是按照HID规范解析和处理来自于"HID I/O
Driver"的HID数据,并将组装好的数据通过"HID I/O
Driver"提供的统一接口发送给底层硬件.开启此项后,将允许在用户空间实现"HID I/O Driver".不确定的选"N".详见"Documentation/hid/uhid.txt"文档.
Generic HID driver
CONFIG_HID_GENERIC
HID总线通用驱动,也就是前面说的"HID Device Driver".它实现了对各种常见HID协议的支持:键盘,鼠标,游戏杆,手写板,数字画板.不确定的选"Y".
Special HID drivers
各种不严格遵守HID协议的"HID Device Driver"
{此处省略的硬件按实际情况选择即可}
Lenovo ThinkPad USB Keyboard with TrackPoint
CONFIG_HID_LENOVO_TPKBD
带有"小红帽(TrackPoint)"的联想(Lenovo)ThinkPad USB键盘.
Logitech devices
CONFIG_HID_LOGITECH
某些并不完全遵从HID标准的罗技(Logitech)外设
HID Multitouch panels
CONFIG_HID_MULTITOUCH
HID多点触控(Multitouch)板的通用支持
HID Sensors framework support
CONFIG_HID_SENSOR_HUB
HID传感器支持框架.详见"Documentation/hid/hid-sensor.txt"文档
USB HID support
基于USB接口的HID设备,这是目前最常见的HID设备
USB HID transport layer
CONFIG_USB_HID
特定于USB接口的"HID
I/O
Driver".用于和USB总线上的硬件进行交互.只要你想使用任何基于USB接口的HID设备(键盘,鼠标,游戏杆,手写板,手绘板,不间断电源
(UPS),显示控制装置(monitor control),等等),就必须选"Y".[例外]在嵌入式环境中使用的HIDBP(HID Boot
Protocol)键盘和鼠标不在此列,而且两者也不能共存.
PID device support
CONFIG_HID_PID
PID兼容的力反馈设备,例如:Microsoft Sidewinder Force Feedback 2
/dev/hiddev raw HID device support
CONFIG_USB_HIDDEV
如果
你想支持那些严格说来并不属于人机交互设备的硬件(使用额外的/dev/usb/hiddevX[char
180:96~111]接口),例如显示控制装置(monitor
control)或不间断电源(UPS)以及某些罗技的无线鼠标接收器,可以选"Y".参见CONFIG_HIDRAW选项.
USB HID Boot Protocol drivers
如果你有绝对的把握确信不为自己的键盘和鼠标使用常规的HID驱动,而要使用Boot Protocol模式的HID驱动(常见于嵌入式环境)就选吧
I2C HID support
基于I2C总线的HID设备
HID over I2C transport layer
CONFIG_I2C_HID
特定于I2C总线的"HID I/O Driver".用于和I2C总线上的硬件进行交互.只要你想使用任何基于I2C总线的HID设备(键盘,触摸板,触摸屏,等等),就必须选"Y".I2C-HID主要用于嵌入式设备.
USB support
CONFIG_USB_SUPPORT
通用串行总线(Universal Serial Bus)的目标是统一电脑的外设接口.目前几乎找不到没有USB接口的电脑,而且各种智能设备也大多带有USB接口.不要犹豫,选"Y".
Support for Host-side USB
CONFIG_USB
主机端(Host-side)USB支
持.通用串行总线(USB)是一个串行总线子系统规范,它比传统的串口速度更快并且特性更丰富(供电,热插拔,最多可接127个设备等),其目标是统一
PC外设接口.USB总体上呈现一种树型结构,USB的"Host"(主设备)被称为"根"(也可以理解为是主板上的USB控制器),USB
的"Slave"(从设备)被称为"叶子",而内部的节点则称为"hub"(集线器).只要使用任何USB设备都必须选中此项.另外,你还需要从下面选中
至少一个HCD(Host Controller Driver),比如适用于USB1.1的"UHCI HCD support"或"OHCI HCD
support",适用于USB2.0的"EHCI HCD (USB 2.0)
support".如果你拿不准的话把他们都选中一般也不会出问题.如果你的系统有设备端的USB接口(也就是你的系统可以作为"叶子"使用),请
到"USB Gadget"中进行选择.
USB verbose debug messages
CONFIG_USB_DEBUG
仅供调试使用
USB announce new devices
CONFIG_USB_ANNOUNCE_NEW_DEVICES
在syslog中记录每个新接入系统的USB设备的详细标识信息(idVendor,idProduct,Manufacturer,Product,SerialNumber),主要用于系统调试.不确定的选"N".
Enable USB persist by default
CONFIG_USB_DEFAULT_PERSIST

据USB规范,当USB总线被挂起(休眠)后,它必须继续提供挂起电流(1-5毫安),以确保USB设备能保持其内部状态,并且USB集线器(HUB)能
够检测连接变化(设备插入和拔出).这在技术上被称为"电力会话"(power
session).如果一个USB设备的电力会话被中断,那么系统必须按照该设备已经被拔出进行处理,这是一种保守的做法,因为没有挂起电流,计算机不可
能知道外围设备究竟发生了什么变化:也许依然保持连接,也许已经被拔出并在同一端口上插入了一个新设备.系统必须做最坏的打算.默认情况下,Linux的
行为符合USB规范的要求.当整个电脑进入休眠状态(例如挂起到硬盘)时,包括USB总线在内所有总线都将掉电,然后当系统被唤醒,所有USB设备都会被
当做在休眠前就已经被拔出来处理.这样做始终是安全的,并且也是"官方正确"的做法.对于大多数USB设备来说,这样做没有任何问题,但是对于USB存储
设备(例如移动硬盘/U盘)来说,如果在休眠前有尚未卸载的文件系统(特别是根文件系统),当系统被唤醒之后,由于无法访问该文件系统,系统可能会立即崩
溃!其实不只有掉电,只要"power
session"被中断(例如BIOS在唤醒过程中重置了USB控制器),都会导致这种故障.此选项(USB-persist)就是为了解决这个问题而设
置的,虽然解决的不甚完美(参见"Documentation/usb/persist.txt"),但是依然推荐选"Y",除非你确实有选"N"的理由.当然,最保险的做法是在休眠之前先卸载所有USB设备上的文件系统,而如果根文件系统位于USB设备上,就根本不使用任何休眠功能(不论是挂起到硬盘还是挂起到内存).
Dynamic USB minor allocation
CONFIG_USB_DYNAMIC_MINORS

态分配USB设备的次设备号(仅限于主设备号为180的字符设备[通常位于"/dev/usb/"目录下]).除非你有超过16个同类型(仅限:打印机,
鼠标,扫描仪)的USB设备,否则应选"N".[提示]即使你有100个U盘或者USB移动硬盘,也不需要开启此项,因为他们不是"主设备号为180的字
符设备".
OTG support
CONFIG_USB_OTG
传统上,码照相机,手机,打印机,播放器,移动硬盘等设备之间要交换数据,都要作为PC的外围设备,在PC的控制下进行数据交换.一旦离开了PC,由于没有一个设备能够充当PC的"Host"角色,所以无法直接通信.USB-OTG(On-The-Go)就是为了解决这个问题而诞生的,它是USB2.0规格的补充标准,支持"双角色"设备(既可以当Host,也可以当Slave),从而实现外围设备之间的数据传送.例如,将数码相机直接连接到打印机上将相片打印出来.仅在你的主板上有Mini-AB/Micro-AB接口(目前仅用于嵌入式设备)时才需要选"Y".
Rely on OTG and EH Targeted Peripherals List
CONFIG_USB_OTG_WHITELIST
将"otg_whitelist.h"
文件用作"OTG Targeted Peripherals
List"(外设白名单),白名单之外的USB外设将按照OTG规范的要求不被枚举(也就是初始化).同样,"Embedded
Host"也只支持限定的外设.如果选"N",那么白名单之外的外设也同样会被枚举(但会产生一个警告),这将大大方便嵌入式产品的开发.
Disable external hubs
CONFIG_USB_OTG_BLACKLIST_HUB
选"Y"将禁止枚举(也就是初始化)外部USB集线器(HUB).这样,OTG主机就可以通过省去对外部集线器的支持,降低系统软硬件的成本.不确定的选"N".
USB ULPI PHY interface support
CONFIG_USB_ULPI_BUS
ULPI(UTMI+ Low Pin Interface)是一种2005年开始兴起的通用USB 2.0 PHY接口.可有效地减少主机/外设/On-The-Go(OTG)USB收发器的针脚数量(从32个减少到12个).仅用于嵌入式设备.
USB Monitor
CONFIG_USB_MON
选"Y"后,将可以捕获特定USB外设与USB主控器之间的数据流量,usbdumpusbmon工具依赖于此项.详见"Documentation/usb/usbmon.txt"文档.
Enable Wireless USB extensions
CONFIG_USB_WUSB
主机端的WUSB(无线USB)支持.
Support WUSB Cable Based Association (CBA)
CONFIG_USB_WUSB_CBAF
WUSB CBA(Cable Based Association)是一项保障主机和WUSB设备之间通信安全的技术.如果你的WUSB设备在建立无线连接前必须先建立有线连接,可以选"Y".
Enable CBA debug messages
CONFIG_USB_WUSB_CBAF_DEBUG
仅供调试使用
Cypress C67x00 HCD support
CONFIG_USB_C67X00_HCD
Cypress C67x00 (EZ-Host/EZ-OTG) USB 1.1 "双角色"控制器
xHCI HCD (USB 3.0) support
CONFIG_USB_XHCI_HCD
xHCI(eXtensible Host Controller Interface)就是当下大红大紫的USB3.0(SuperSpeed
USB)主机控制器规范.[提示]因为xHCI移除了EHCI中为兼容USB1.1而引入的"Companion"模式,所以仅用一个单独的xHCI驱动
就可以兼容所有USB3.0/2.0/1.1外设.也就是说,对于蓝色的USB3.0接口来说,开启此项之后,就不需要再额外开启EHCI/OHCI
/UHCI选项了.[注意]如果你的电脑上除了蓝色的USB3.0接口,还存在黑色的USB2.0接口,那么你仍然需要开启EHCI/OHCI/UHCI
选项,除非你不想使用这些黑色的USB2.0接口.
Debugging for the xHCI host controller
CONFIG_USB_XHCI_HCD_DEBUGGING
仅供调试使用
Generic xHCI driver for a platform device
CONFIG_USB_XHCI_PLATFORM
通用platform设备的xHCI驱动.仅用于嵌入式环境.不确定的选"N".
EHCI HCD (USB 2.0) support
CONFIG_USB_EHCI_HCD
EHCI(Enhanced
Host Controller Interface)就是渐成昨日黄花的USB2.0(HighSpeed
USB)主机控制器规范.[提示]因为EHCI通过"Companion"模式来支持USB1.1设备,所以一般还需要额外再开启OHCI或UHCI选项
(除非你不想兼容任何USB1.1设备).详见"Documentation/usb/ehci.txt"文档.
Root Hub Transaction Translators
CONFIG_USB_EHCI_ROOT_HUB_TT

有USB2.0接口的主板上都有一个"根集线器"(Root
Hub)以允许在无需额外购买hub的情况下就可以提供多个USB插口,而大多数主板还在其中集成了事务转换(Transaction
Translator)功能,这样就不需要再额外使用一个OHCI或UHCI控制器来兼容USB1.1,建议选"Y",除非你不想兼容任何USB1.1设
备.
Improved Transaction Translator scheduling
CONFIG_USB_EHCI_TT_NEWSCHED
改变周期性调度代码的工作方式,当多个USB1.1设备连接在同一个USB2.0集线器上时,可以获得更高的运行速度.建议选"Y"
Generic EHCI driver for a platform device
CONFIG_USB_EHCI_HCD_PLATFORM
通用platform设备的EHCI驱动.仅用于嵌入式环境.不确定的选"N".
OHCI HCD support
CONFIG_USB_OHCI_HCD
OHCI(Open Host Controller Interface)是主要用于嵌入式环境的USB1.1(LowSpeed/FullSpeed USB)主机控制器规范.但也存在于某些老旧的SiS芯片组的PC上.
UHCI HCD (most Intel and VIA) support
CONFIG_USB_UHCI_HCD
UHCI(Universal Host Controller Interface)是主要用于PC环境的USB1.1(LowSpeed/FullSpeed USB)主机控制器规范.
{此处省略的USB控制器请按照实际硬件状况选择(基本上都仅用于嵌入式环境)}
Wireless USB Host Controller Interface (WHCI) driver
CONFIG_USB_WHCI_HCD
WHCI(Wireless USB Host Controller Interface)是无线USB主机控制器规范.目前市场上带有WUSB主控器的主板很少.不确定的选"N".
Host Wire Adapter (HWA) driver
CONFIG_USB_HWA_HCD
USB接口的3G/4G无线上网卡(通常需要搭配SIM卡使用),常见制式有:WCDMA/LTE/HSPA等.
BCMA usb host driver
CONFIG_USB_HCD_BCMA
BCMA(Broadcom specific AMBA)总线上的EHCI/OCHI主机控制器支持.仅用于嵌入式环境.
SSB usb host driver
CONFIG_USB_HCD_SSB
BCMA(Broadcom specific AMBA)总线上的EHCI/OCHI主机控制器支持.仅用于嵌入式环境.
Inventra Highspeed Dual Role Controller (TI, ADI, ...)
CONFIG_USB_MUSB_HDRC
一系列基于Mentor Graphics公司silicon IP核的USB控制器.仅用于嵌入式环境.
Renesas USBHS controller
CONFIG_USB_RENESAS_USBHS
一系列基于Renesas公司USBHS IP核的USB控制器.仅用于嵌入式环境.
USB Modem (CDC ACM) support
CONFIG_USB_ACM
USB接口的猫或ISDN适配器,基本没人用的东西.
USB Printer support
CONFIG_USB_PRINTER
USB接口的打印机,这是主流的打印机
USB Wireless Device Management support
CONFIG_USB_WDM
为符合CDC(Communication Device CIass)和WMC(Wireless Mobile Communication)标准的手机提供WMC设备管理支持,这样你可以在这些手机上使用AT命令(被所有调制解调器制造商采用的一个调制解调器命令语言).
USB Test and Measurement Class support
CONFIG_USB_TMC
USBTMC(USB Test and Measurement Class)协议支持.主要适用于测试仪器的USB通信开发.不确定的选"N".
USB Mass Storage support
CONFIG_USB_STORAGE
USB存储设备(U盘,USB硬盘,USB软盘,USB光盘,USB磁带,记忆棒,数码相机,读卡器[包括某些笔记本内置的SD卡读卡器]等等).该选项依赖于CONFIG_SCSI和CONFIG_BLK_DEV_SD选项.选"Y",除非你确实知道自己在干什么.
USB Mass Storage verbose debug
CONFIG_USB_STORAGE_DEBUG
仅供调试使用
{省略的部分请按照自己实际使用的硬件选择(事实上大部分人都没有这些设备)}
USB Mustek MDC800 Digital Camera support
CONFIG_USB_MDC800
一款上世纪生产的数码相机
Microtek X6USB scanner support
CONFIG_USB_MICROTEK
几款上世纪生产的扫描仪
DesignWare USB3 DRD Core Support
CONFIG_USB_DWC3
基于DesignWare USB3 IP核的USB3.0控制器.仅用于嵌入式环境.
ChipIdea Highspeed Dual Role Controller
CONFIG_USB_CHIPIDEA
基于ChipIdea silicon IP核的USB2.0控制器.仅用于嵌入式环境.
USS720 parport driver
CONFIG_USB_USS720
一种USB转并口的转换设备.不确定的选"N".
USB Serial Converter support
CONFIG_USB_SERIAL
USB-串口转换支持:(1)USB-串口转换器,(2)连接在USB口上的串口设备.详情参见"Documentation/usb/usb-serial.txt"文档.不确定的选"N".
{此处省略的各种杂七杂八的USB设备,要么是老古董,要么是很罕见,不确定的可以全部选"N"}
USB testing driver
CONFIG_USB_TEST
仅供调试使用
USB DSL modem support
CONFIG_USB_ATM
USB DSL modem 已经是绝迹的古董猫了
USB Physical Layer drivers
CONFIG_USB_PHY
这类设备仅在嵌入式系统上存在
USB Gadget Support
CONFIG_USB_GADGET
USB是一个主/从协议,一个主机最多控
制127个外设,其结构是非对称的,所以你无法把一个"到主机"的插头连接到外设上.Linux既可以在USB主机上运行,也可以在USB外设上运行.外
设USB控制器可以是单独的芯片,也可以是集成在CPU中的微控制器,而常见的主机端控制器通常集成在芯片组的南桥中(xHCI/EHCI/OHCI
/UHCI).如果你打算在外设中运行Linux,那么就必须开启此项,然后还需要为外设段的总线控制器配置一个硬件驱动,以及一个用于外设协议的"配件
驱动".不过对于大多数人来说,并不将Linux运行于外设端,因此可以放心的选"N".仅那些嵌入式设备(例如智能手机)上运行的Linux才可能由此
需求.
Ultra Wideband devices
CONFIG_UWB
UWB(Ultra Wideband)
是一种高带宽,低能耗,点对点,抗干扰性能强的无载波通信技术.UWB在较宽的频谱(3.1-10.6GHz)上,使用极低的功率(约为蓝牙的
1/20),以时间间隔极短(小于1ns)的脉冲信号进行通信.UWB主要应用于室内通信(2米范围内实现480Mbps速率,10米范围内实现
110Mbps速率),例如作为WUSB(Wireless USB)协议的传输层.如果你有UWB无线控制器,可以选"Y",不确定的选"N".详见"Documentation/usb/WUSB-Design-overview.txt"文档.
MMC/SD/SDIO card support
CONFIG_MMC
MMC(MultiMediaCard)/SD(Secure Digital)/SDIO(Secure Digital I/O)主机控制器。[提示]虽然许多笔记本上有SD卡插槽,但其实它们大多使用的是CONFIG_USB_STORAGE驱动,而不是这里的驱动.
MMC debugging
CONFIG_MMC_DEBUG
仅供调试使用
Assume MMC/SD cards are non-removable (DANGEROUS)
CONFIG_MMC_UNSAFE_RESUME
假定在系统休眠的过程中,所有MMC/SD/SDIO卡依然插在各自的插槽上没有变动.也许只有嵌入式系统才可以做这样的假定.不确定的选"N".参见CONFIG_USB_DEFAULT_PERSIST选项.
MMC host clock gating
CONFIG_MMC_CLKGATE
尝试激进的"gate the clock to the MMC card"(啥意思?).这样当MMC卡不使用的时候,就可以进入节电状态.主机控制器必须支持此特性.不确定的选"N".
MMC block device driver
CONFIG_MMC_BLOCK
MMC块设备驱动.基本上MMC卡都是作为块设备(就像U盘一样)使用.所以只要使用MMC卡就应该开启.
Number of minors per block device
CONFIG_MMC_BLOCK_MINORS

每个MMC块设备保留的次设备号数量.取值范围是[4,256].这里设置的值应该等于"最大可能的分区数+1".因为总的次设备号只有256个,所以最
大能支持的MMC块设备数量就等于256除以此处设置的值.默认值"8"可以保证最大的向后兼容性.不确定的请保持默认值.
Use bounce buffer for simple hosts
CONFIG_MMC_BLOCK_BOUNCE
为SD/MMC控制器提供更多的缓存(最大64KB),从而可以大幅提升其性能.建议选"Y".
SDIO UART/GPS class support
CONFIG_SDIO_UART
实现了UART类的SDIO卡支持.包括那些表现的像UART一样的GPS类支持.主要用于嵌入式设备.不确定的选"N".
MMC host test driver
CONFIG_MMC_TEST
仅供调试使用
Secure Digital Host Controller Interface support
CONFIG_MMC_SDHCI
通用SD主控支持.笔记本电脑上用的SD主控(TI(德州仪器)/Ricoh(理光)/Toshiba(东芝)等厂商)基本上都是这个驱动.选中此项后,还需要选中相应的总线驱动(见下,通常是CONFIG_MMC_SDHCI_PCI).
SDHCI support on PCI bus
CONFIG_MMC_SDHCI_PCI
PCI总线的SD主控支持,目前的笔记本的SD主控基本都接在PCI总线上.
Ricoh MMC Controller Disabler
CONFIG_MMC_RICOH_MMC
用于修正Ricoh(理光)MMC主控的bug,如果你需要使用Ricoh主控,就选"Y".
SDHCI support for ACPI enumerated SDHCI controllers
CONFIG_MMC_SDHCI_ACPI
专用于"ACPI Compatibility ID"等于"PNP0D40"的SD主控,以及"ACPI Hardware ID"等于"INT33C6,INT33BB,80860F14"的SD主控.
SDHCI platform and OF driver helper
CONFIG_MMC_SDHCI_PLTFM
基于platform总线和OpenFirmware的SD主控.
{此处省略的SD主控请按照实际使用的芯片进行选择}
MMC/SD/SDIO over SPI
CONFIG_MMC_SPI
基于SPI总线的MMC/SD/SDIO主控.仅用于嵌入式环境.
Sony MemoryStick card support
CONFIG_MEMSTICK
Sony记忆棒是一种Sony专用的存储设备.
MemoryStick debugging
CONFIG_MEMSTICK_DEBUG
仅供调试使用
Allow unsafe resume (DANGEROUS)
CONFIG_MEMSTICK_UNSAFE_RESUME
假定在系统休眠的过程中,所有记忆棒依然插在各自的插槽上没有变动.也许只有嵌入式系统才可以做这样的假定.不确定的选"N".参见CONFIG_USB_DEFAULT_PERSIST选项.
MemoryStick Pro block device driver
CONFIG_MSPRO_BLOCK
"Memory Stick PRO"是SONY从2003开始引入的升级版标准,早已成为主流,所以应该选"Y"(除非你仍在使用十年前的老VAIO笔记本).
{此处省略的MemoryStick主控请按照实际使用的芯片进行选择}
LED Support
CONFIG_NEW_LEDS
发光二级管(LED)支持.[提示]标准键盘上的LED灯不在此列(由input子系统控制)
Accessibility support
CONFIG_ACCESSIBILITY
无障碍(Accessibility)支持.各种帮助残疾人使用计算机的软硬件技术.例如:盲文设备,语音合成,键盘映射,等等.
InfiniBand support
CONFIG_INFINIBAND
InfiniBand是一种低延迟/高带宽数据中心互联架构,采用远程直接内存存取(RDMA)实现高性能处理器间通信(IPC),同时对虚拟化技术也提供了良好的支持.主要用于服务器集群与高性能计算(HPC)领域.
EDAC (Error Detection And Correction) reporting
CONFIG_EDAC
在电磁环境比较恶劣的情况下,一些大规模集成电路常常会受到干扰,特别是像RAM这种利用双稳态进行存储的器件,往往会在强干扰下发生翻转,使原来存储的"0"变为"1",或者"1"变为"0",造成严重的后果(例如控制程序跑飞,关键数据出错).随着芯片集成度的增加,发生错误的可能性也在增大,这已经成为一个不能忽视的问题.错误检测与纠正(EDAC)技术的目标就是发现并报告甚至纠正在计算机系统中发生的错误,这些错误是由CPU或芯片组报告的底层错误(内存错误/缓存错误/PCI错误/温度过高,等等),建议选"Y".如果这些代码报告了一个错误,请到http://bluesmoke.sourceforge.net/http://buttersideup.com/edacwiki查看更多信息.详见"Documentation/edac.txt"文档.
EDAC legacy sysfs
CONFIG_EDAC_LEGACY_SYSFS
仅在你需要使用老版本edac-utils的情况下才需要选"Y".
Debugging
CONFIG_EDAC_DEBUG
仅供调试使用
Decode MCEs in human-readable form (only on AMD for now)
CONFIG_EDAC_DECODE_MCE
MCE(Machine Check Exception)解码为人类可读的形式(目前仅支持AMD).建议选"Y".
Simple MCE injection interface over /sysfs
CONFIG_EDAC_MCE_INJ
仅供调试使用
Main Memory EDAC (Error Detection And Correction) reporting
CONFIG_EDAC_MM_EDAC
一些系统能够检测和修正主内存中的错误,EDAC能够报告这些信息(EDAC自己检测到的或者根据ECC得到的).EDAC还会尽量检测这些错误发生在哪里以便于替换损坏的内存.建议选"Y"并按照你实际硬件状况选取子项
Output ACPI APEI/GHES BIOS detected errors via EDAC
CONFIG_EDAC_GHES

不是所有机器都提供基于硬件的EDAC技术,有部分机器提供的是基于ACPI
BIOS的报告机制(使用CONFIG_ACPI_APEI_GHES驱动).开启此项后,如果检测到GHES
BIOS,那么CONFIG_ACPI_APEI_GHES驱动提供的错误报告将会通过EDAC
API发送到用户空间,同时,硬件EDAC也会被禁用,也就是进入"固件优先"模式.注意:GHES
BIOS和硬件EDAC两者不能共存,因为BIOS和操作系统在读取error寄存器时会相互竞争.所以如果你不想使用"固件优先"模式,应该选"N",
或者使用"ghes.disable=1"内核引导参数.否则应该选"Y".
{此处省略的芯片请按照实际情况选择}
Real Time Clock
CONFIG_RTC_CLASS
通用RTC(实时时钟)类支持.所有的PC机主板都包含一个电池动力的实时时钟芯片,以便在断电后仍然能够继续保持时间,RTC通常与CMOS
成在一起,因此BIOS可以从中读取当前时间(精度一般是秒级).选中此项后你就可以在操作系统中使用一个或多个RTC设备(你还必须从下面启用一个或多
个RTC接口).[注意]Clock与Timer没有任何关系,Timer是定时器(用于计量时长),Clock是时钟(用于记录当前的时刻"年-月-日
时:分:秒")
Set system time from RTC on startup and resume
CONFIG_RTC_HCTOSYS
系统启动时从指定的RTC设备(CONFIG_RTC_HCTOSYS_DEVICE)中读取时间,以设定系统时间,这将有助于避免时间不准导致的麻烦(例如不必要的文件系统检测(fsck)以及网络故障).建议选"Y".
Set the RTC time based on NTP synchronization
CONFIG_RTC_SYSTOHC
如果用户空间报告了"NTP已同步",那么每隔大约11分钟,内核将会自动把系统时间写入指定的RTC设备(CONFIG_RTC_HCTOSYS_DEVICE)中.建议选"Y".
RTC used to set the system time
CONFIG_RTC_HCTOSYS_DEVICE
默认的RTC设备(通常是"rtc0").该设备的驱动必须静态编译进内核(而不能作为模块加载).
RTC debug support
CONFIG_RTC_DEBUG
仅供调试使用
/sys/class/rtc/rtcN (sysfs)
CONFIG_RTC_INTF_SYSFS
允许通过sysfs接口使用RTC,允许多个RTC设备,也就是/sys/class/rtc/rtc0~N
/proc/driver/rtc (procfs for rtcN)
CONFIG_RTC_INTF_PROC
允许通过proc接口使用RTC,仅允许一个RTC设备,也就是/proc/driver/rtc(若有多个RTC设备,则其将对应"rtc0")
/dev/rtcN (character devices)
CONFIG_RTC_INTF_DEV
允许通过dev接口使用RTC,允许多个RTC设备,也就是/dev/rtc0~N,某些程序(比如hwclock)需要使用/dev/rtc(这是个软连接,udev会自动将其指向默认的RTC设备)
RTC UIE emulation on dev interface
CONFIG_RTC_INTF_DEV_UIE_EMUL
如果底层rtc芯片驱动没有提供RTC_UIE就仿真一个RTC_UIE.选"N",除非你确实知道自己在做什么.
Test driver/device
CONFIG_RTC_DRV_TEST
仅供调试使用
{此处省略的其他RTC设备一般仅用于非PC环境}
PC-style 'CMOS'
CONFIG_RTC_DRV_CMOS
这是所有PC和基于ACPI的系统通用的RTC驱动.必须选"Y"(不能选"M"),除非你是嵌入式系统.
DMA Engine support
CONFIG_DMADEVICES
DMA引擎(DMA
Engine)可以看做是传统DMA控制器(DMA
controller)的新生.在DMA引擎的协助下,CPU只需初始化一个传输动作,其余的动作就可以由DMA引擎独立完成(完成后以中断的方式通知
CPU),这对于高速传输大量数据以及"分散-收集"操作大有益处,可以节约大量的CPU资源(有时也可节约大量的内存操作).目前,DMA引擎有两个用
途:(1)卸载高速网络栈中的内存COPY操作,(2)加速CONFIG_MD_RAID456驱动中的RAID操作."DMA引擎"只是一个统称,在不
同场合对应着不同的技术,例如Intel I/OAT(PC平台)和AHB(嵌入式).[提示]历史上,ISA架构的电脑都有一个专用的"DMA控制器"(最常见的是Intel 8237),但是到了PCI架构,由于每一个PCI设备都可以控制PCI总线(成为"bus master")并直接读写系统内存,所以虽然DMA的操作方式依然存在,但是"DMA控制器"却消失了.现在新生的"DMA引擎"目前仍然主要出现在Intel的高端芯片上.
DMA Engine debugging
CONFIG_DMADEVICES_DEBUG
仅供调试使用
Intel MID DMA support for Peripheral DMA controllers
CONFIG_INTEL_MID_DMAC
Intel MID DMA引擎,搭配Atom处理器使用.
Intel integrated DMA 64-bit support
CONFIG_INTEL_IDMA64
为Intel低功耗子系统(Intel Low Power Subsystem)中整合的64位DMA提供支持.Intel Skylake PCH 就是一个支持Intel低功耗子系统的例子.
Intel I/OAT DMA support
CONFIG_INTEL_IOATDMA
带有英特尔I/O加速技术(I/O Acceleration Technology)的至强芯片组DMA引擎
Synopsys DesignWare AHB DMA support
CONFIG_DW_DMAC
基于Synopsys DesignWare IP核的AHB总线DMA引擎.例如Atmel AT32ap7000中就整合了这个引擎.
Timberdale FPGA DMA support
CONFIG_TIMB_DMA
Timberdale FPGA DMA引擎."Timberdale FPGA"是一个多功能设备,出现在基于Intel Atom的车载信息娱乐系统IVI(In-Vehicle Infotainment)上.
Intel EG20T PCH / LAPIS Semicon IOH(ML7213/ML7223/ML7831) DMA
CONFIG_PCH_DMA
所有与Intel EG20T PCH兼容的芯片的DMA引擎支持,具体型号可以查看内核帮助.都是嵌入式芯片.
Network: TCP receive copy offload
CONFIG_NET_DMA
通过在网络栈中利用DMA引擎来减少接收数据包时的copy-to-user操作以释放CPU资源,仅在CONFIG_INTEL_IOATDMA开启的前提下才有意义.
Async_tx: Offload support for the async_tx api
CONFIG_ASYNC_TX_DMA
如果你开启了CONFIG_MD_RAID456,同时你的硬件又支持DMA引擎,那么开启此项后可以加速RAID操作.
DMA Test client
CONFIG_DMATEST
仅供调试使用
Auxiliary Display support
CONFIG_AUXDISPLAY
辅助显示设备.例如基于KS0108控制器的Crystalfontz CFAG12864B单色液晶屏(分辨率:128x64).仅用于嵌入式系统.
Userspace I/O drivers
CONFIG_UIO
UIO(Userspace I/O)是运行在用户空间的I/O技术,它为开发用户空间的驱动提供了一个简单的架构(/dev/uioN).使用uio的设备一般都属于嵌入式系统.不确定的选"N".[提示]lsuio工具可以列出所有UIO的模块和其映射的内存地址.
VFIO Non-Privileged userspace driver framework
CONFIG_VFIO
VFIO是一套无特权用户空间I/O驱动框架,需要有IOMMU虚拟化硬件支持(AMD-Vi/Intel VT-d).此选项仅用于宿主机内核.VFIO的目标是在IOMMU硬件的帮助下,取代CONFIG_UIO和CONFIG_KVM_DEVICE_ASSIGNMENT.VFIO主要用于编写高效的用户态驱动,以及在虚拟化环境的属主机中高效的实现设备直通(passthrough)且无须root特权,可用于详见"Documentation/vfio.txt"文档.[提示]QEMU 1.3以上版本才能利用VFIO特性.不玩KVM虚拟化的选"N".
VFIO support for PCI devices
CONFIG_VFIO_PCI
允许PCI设备使用VFIO框架.这是VFIO框架当前的主要用途.选"Y".
VFIO PCI support for VGA devices
CONFIG_VFIO_PCI_VGA
让VFIO PCI支持VGA扩展,此选项依赖于CONFIG_VGA_ARB,建议选"Y".
Virtualization drivers
CONFIG_VIRT_DRIVERS
这个选项仅对PowerPC架构有意义
Virtio drivers
仅可用于客户机内核的Virtio驱动.Virtio的目标是为各种半虚拟化的虚拟机管理程序(特别是KVM)提供一组通用的模拟设备,目前已实现:network/block/balloon/console/hw_random,未来还会实现更多.下列驱动仅可用在基于lguestQEMU的半虚拟化客户机中(一般是KVMXEN).
PCI driver for virtio devices
CONFIG_VIRTIO_PCI
半虚拟化PCI设备驱动.VMM(虚拟机管理程序)必须要有相应的"PCI virtio backend".基于QEMU的VMM(KVM,Xen)一般都支持该驱动.[提示]由于目前的ABI尚不稳定,建议使用时注意版本匹配.
Virtio balloon driver
CONFIG_VIRTIO_BALLOON
balloon驱动支持按需扩展或减少KVM客户机内的内存大小.
Platform bus driver for memory mapped virtio devices
CONFIG_VIRTIO_MMIO
支持使用内存映射机制的virtio设备驱动
Memory mapped virtio devices parameter parsing
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES
允许通过"virtio_mmio.device"内核模块参数实例化virtio-mmio设备.注意,错误的参数(特别是"baseaddr"错误)会导致系统崩溃.详见"Documentation/kernel-parameters.txt"文档中对"virtio_mmio.device"的说明.
Microsoft Hyper-V guest support
仅在将此Linux内核作为微软Hyper-V虚拟机的来宾操作系统运行时,才需要开启这里的选项.
Microsoft Hyper-V client drivers
CONFIG_HYPERV
将Linux内核作为Hyper-V的来宾操作系统运行
Microsoft Hyper-V Utilities driver
CONFIG_HYPERV_UTILS
Hyper-V管理工具驱动.
Microsoft Hyper-V Balloon driver
CONFIG_HYPERV_BALLOON
Hyper-V Balloon驱动
Xen driver support
仅在将此Linux内核作为半虚拟化模式的XEN虚拟机的来宾操作系统运行时,才需要开启这里的选项.由于KVM的高歌猛进,特别是Ubuntu和Redhat的力挺,与昔日的辉煌相比,XEN现在已经没落许多了.
Staging drivers
CONFIG_STAGING
尚在开发中或尚未完成的,目前尚不完善的驱动,切勿用于生产环境.仅供测试人员或者开发者试用.
X86 Platform Specific Device Drivers
CONFIG_X86_PLATFORM_DEVICES
特定于X86平台的设备驱动.例如很多笔记本厂商的专有硬件和特色功能.大多数笔记本用户都应该进去看看(简单易懂,一看即知).
{此处省略所有特定于笔记本厂商的驱动}
Thermal Management driver for Intel menlow platform
CONFIG_INTEL_MENLOW
此驱动专用于Intel Menlow平台(搭配Atom处理器),提供了增强的ACPI热量管理能力.
WMI
CONFIG_ACPI_WMI
ACPI-WMI(Windows管理规范)映射设备(find /sys/devices/ -name "PNP0C14*")支持.WMI
微软对ACPI规范的专有扩展,可将部分ACPI固件内容通过PNP0C14设备映射到用户空间,以方便用户空间调用ACPI固件的功能.本选项仅为那些
依赖于WMI的驱动提供支持(并不真正导出到用户空间),例如CONFIG_DRM_NOUVEAU驱动以及专用于Acer/Asus/Dell/MSI
/HP等品牌笔记本的WMI驱动.
Intel Intelligent Power Sharing
CONFIG_INTEL_IPS
Intel Calpella平台支持Intel的智能电源共享(Intelligent Power Sharing)技术,可以在保持功耗不变的前提下,在CPU和GPU之间智能分配电力.开启此项和CONFIG_CPU_FREQ以及CONFIG_DRM_I915之后,即可实现此功能.
WMI support for MXM Laptop Graphics
CONFIG_MXM_WMI
MXM接口笔记本显卡的WMI支持.目前主要用于nvidia显卡.
Intel Oaktrail Platform Extras
CONFIG_INTEL_OAKTRAIL
Intel Oak Trail嵌入式平台需要此驱动来开关WiFi/相机/蓝牙等设备.
Intel Rapid Start Technology Driver
CONFIG_INTEL_RST
英特尔快速启动技术(Intel Rapid Start Technology)通过在SSD上建立与本机内存容量一致的休眠分区,在休眠时将内存数据保存到SSD休眠分区上,从而实现快速唤醒.
Intel Smart Connect disabling driver
CONFIG_INTEL_SMARTCONNECT
禁用英特尔智能连接技术(Intel Smart Connect Technology)
的驱动.此技术旨在通过定期将处于睡眠/待机状态的PC唤醒一小段时间,联网一段时间让应用程序(如电子邮件)更新,但是不打开屏幕,然后又自动回到睡眠
状态,以此循环重复.这意味着,当您唤醒PC时,程序数据已经处于最新状态.主要针对超级本用户且需要BIOS支持,必须在BIOS中将Intel
Smart Connect
Technology设为"Enabled".如果你的超级本支持此技术且同时安装了Windows系统,那么务必选"Y".
pvpanic device support
CONFIG_PVPANIC
pvpanic是QEMU提供的一种准虚拟化(paravirtualized)设备,允许客户机向宿主机报告panic事件.此驱动仅可用于客户机内核.
Intel PMC IPC Driver
CONFIG_INTEL_PMC_IPC
为某些Intel平台的PMC控制器提供支持.这里的"PMC"是一个RISC架构的32位ARC处理器(Argonaut RISC Core processor).不确定的选"N".
Platform support for Chrome hardware
CONFIG_CHROME_PLATFORMS
专用于Google公司的Chromebook笔记本/Chromebox迷你机的设备驱动.
Common Clock Framework
CCF(Common Clock Framework)是从3.4内核开始引入的新时钟框架,用于取代原有的"Clock Framework".详见"Documentation/clk.txt"文档.这里还有一个讲解CCF的PDF.
DebugFS representation of clock tree
CONFIG_COMMON_CLK_DEBUG
仅供调试使用
{此处省略的时钟设备请按实际情况选择(主要用于嵌入式设备)}
Hardware Spinlock drivers
硬件自旋锁
动.目前仅出现在嵌入式处理器上.自旋锁是保护共享资源的一种锁机制,与互斥锁比较类似,都是为了解决对某项资源的互斥使用.无论是互斥锁,还是自旋锁,
在任何时刻,最多只能有一个持有者.也就是说,在任何时刻最多只能有一个执行单元获得锁.但是两者在调度机制上略有不同,对于互斥锁,如果资源已经被占
用,资源申请者只能进入睡眠状态.但是自旋锁不会引起申请者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直在循环中"忙等"(占用CPU但无事可
做),直到该自旋锁被释放."自旋"一词就是因此而得名.自旋锁的使用非常方便,但仅适用于需要极短时间锁定的场合(例如1毫秒),以避免消耗太多的
CPU空等时间.
Clock Source drivers
"时钟源"驱动.主要面向嵌入式设备.
Mailbox Hardware Support
CONFIG_MAILBOX
Mailbox硬件支持.这里的"Mailbox"是一个框架,通过消息队列和中断驱动信号,控制芯片上的多个处理器之间的通信.仅用于嵌入式环境.
IOMMU Hardware Support
CONFIG_IOMMU_SUPPORT
IOMMU硬件主要出现在带有I/O虚拟化技术的硬件上,例如带有AMD-ViVT-d
术的芯片.IOMMU主要作用:(1)内存地址转换(例如DMA地址转换,scatter-gather),(2)中断重映射,(3)对设备读取和写入的
进行权限检查.这对于提高虚拟化性能和安全性,以及在64位系统上更好的使用32位设备,意义重大.[提示]此选项仅对宿主机有意义,如果此内核要作为来
宾操作系统运行,请选"N".
AMD IOMMU support
CONFIG_AMD_IOMMU
AMD IOMMU 硬件支持.一般还需要在BIOS中开启相应选项.
Export AMD IOMMU statistics to debugfs
CONFIG_AMD_IOMMU_STATS
仅供调试使用
AMD IOMMU Version 2 driver
CONFIG_AMD_IOMMU_V2
新一代的AMD IOMMUv2硬件(支持PCI PRI和PASID接口)支持.首次出现在AMD Opteron 4000/6000系列平台上.
Support for Intel IOMMU using DMA Remapping Devices
CONFIG_INTEL_IOMMU
让Intel IOMMU支持DMA重映射,这是IOMMU的主要用途,只要你的芯片支持VT-d,就选"Y".
Support for Shared Virtual Memory with Intel IOMMU
CONFIG_INTEL_IOMMU_SVM
共享虚拟内存(SVM, Shared Virtual Memory)允许不同设备(例如CPU与GPU)以PASID(Process Address Space ID)为各自的身份标识,统一使用CPU地址空间访问系统内存的DMA资源,也就是内存统一寻址,以提升异构计算性能.传说Skylake会支持SVM.
Enable Intel DMA Remapping Devices by default
CONFIG_INTEL_IOMMU_DEFAULT_ON
默认开启DMA重映射支持,相当于设置"intel_iommu=on"内核引导参数.选"Y".
Support for Interrupt Remapping
CONFIG_IRQ_REMAP
支持对IO-APIC和MSI设备开启中断重映射,这也是IOMMU的主要用途,只要你的芯片支持VT-d,就选"Y".
Remoteproc drivers
现代的SoC芯片一般都会以AMP(非对称多处理器)方式集成多个不同的处理器(例如OMAP5432
在单个芯片上集成了2个Cortex-A15处理器,2个Cortex-M4处理器,1个C64x
DSP),这样就可在不同的处理器上分别运行多个不同的操作系统实例(例如,在2个Cortex-A9处理器上以SMP(对称多处理器)方式运行
Linux,在2个Cortex-M3和1个C64x上分别运行不同的实时操作系统).而Remoteproc驱动对此种场合下的处理器间通信非常有用.
详见"Documentation/remoteproc.txt"和"Documentation/rpmsg.txt"文档.目前仅对嵌入式系统有意义.不确定的选"N".
Rpmsg drivers
此项和上面的Remoteproc紧密相关,目前其下尚无子项可选.
SOC (System On Chip) specific Drivers
专用于单片机的设备驱动.皆为嵌入式系统.
Generic Dynamic Voltage and Frequency Scaling (DVFS) support
CONFIG_PM_DEVFREQ
DVFS(动态电压与频率调整)
可以根据系统负载动态调节设备的运行频率和电压(对于同一芯片,频率越高,需要的电压也越高),从而达到节能目的.此选项提供了一个类似
CPUfreq(CONFIG_CPU_FREQ)的通用DVFS框架(devfreq).目前DVFS技术进在嵌入式设备(例如
Exynos4/Exynos5)上普遍存在.不确定的选"N".
External Connector Class (extcon) support
CONFIG_EXTCON
extcon(外部连接器类)允许用户空间通过sysfs和uevent监控外部连接器,同时也支持多状态外部连接器(也就是拥有多个连接线缆的外部连接器).例如,一端连接到主机USB端口的多状态外部连接器,另一端可以同时连接一条HDMI线缆和一个AC适配器.30针的PDMI连接器也是多状态外部连接器的常见例子.不确定的选"N".
Memory Controller drivers
CONFIG_MEMORY
内存控制器驱动.这里所说的"内存控制器"仅指嵌入式SoC系统中的各种控制器.不确定的选"N".
Industrial I/O support
CONFIG_IIO
IIO子系统
各种不同总线(i2c,spi,等)的嵌入式传感器驱动提供了一个统一的框架.例如:(1)模数转换器,(2)加速度传感器,(3)陀螺仪,(4)惯性测
量仪,(5)电容-数字转换器,(6)压力/温度/光线传感器,等等.主要用于工业领域和嵌入式领域.不确定的选"N".
Non-Transparent Bridge support
CONFIG_NTB
PCI-E非透明桥
一个点对点PCI-E总线,用于连接两条对等的PCI-E总线.例如英特尔 Atom S1200处理器, Xeon C5500/C3500
嵌入式处理器等.具体支持的设备号(PCI_DEVICE_ID)可以查看"drivers/ntb/ntb_hw.h"文件或NTB驱动数据库.不确定的选"N".
VME bridge support
CONFIG_VME_BUS
VME(VersaModule Eurocard)总线是一种通用的计算机总线,主要用于工业控制/军用系统/航空航天/交通运输/医疗等嵌入式领域.而VME桥则是其他总线(例如PCI/PCI-E)到VME总线之间的转换芯片.不确定的选"N".
Pulse-Width Modulation (PWM) Support
CONFIG_PWM
PWM(脉宽调制)是将模拟信号转换为脉波的一种技术.在计算机领域,这项技术常被用于控制风扇转速和背光显示器的亮度.很多微型处理器内部都包含有PWM控制器,此选项为所有PWM控制器驱动提供了一个统一的框架.不确定的选"N".
Intel LPSS PWM support
CONFIG_PWM_LPSS
适用于"Intel Low Power Subsystem" PWM 控制器的通用框架驱动.适用于 Atom Z36xxx/Z37xxx 系列处理器.
NXP PCA9685 PWM driver
CONFIG_PWM_PCA9685
适用于 NXP PCA9685 LED 亮度控制器.
IndustryPack bus support
CONFIG_IPACK_BUS
IndustryPack是工业控制领域常用的一种总线.不确定的选"N".
Reset Controller Support
CONFIG_RESET_CONTROLLER
为GPIO总线或者芯片内置的重启控制器提供通用支持.仅用于嵌入式设备.不确定的选"N".
FMC support
CONFIG_FMC
FMC(FPGA Mezzanine Carrier)是一个定义如何将FPGA夹层卡(FPGA Mezzanine Card)连接到主机电路板的接口标准,仅用于嵌入式环境.
PHY Subsystem
PHY子系统.
PHY Core
CONFIG_GENERIC_PHY
为内核中的所有PHY设备提供一个通用的PHY框架.不确定的选"N".内核中若有其他部分依赖它,会自动选上.
{此处省略的部分请按照硬件的实际情况选择}
Generic powercap sysfs driver
CONFIG_POWERCAP
"power capping"的意思是允许用户把设备的总功耗限定在指定的范围内.此选项允许内核子系统将"power capping"的设置以sysfs的方式导出到用户空间.不确定的选"N".
MCB support
CONFIG_MCB
MCB(MEN Chameleon Bus)是专用于德国MEN Mikro Elektronik公司的FPGA设备的总线.MEN Mikro Elektronik公司的嵌入式计算主要是为航空/航海/铁路及陆地车辆的应用,以及自动化/电力/能源和医疗用途.不确定的选"N".
Performance monitor support
专用于ARM架构的CPU性能监控框架.
Reliability, Availability and Serviceability (RAS) features
CONFIG_RAS
RAS(可靠,可用,可维护)是一个计算机硬件术语,可靠性描述系统能够持续正确工作多长时间,可用性描述系统能够正确工作的时间百分比,可维护性描述系统从错误恢复到正常需要多长时间.具有高等级RAS的硬件会有一系列额外的技术保障数据的可靠性与正确性.
Thunderbolt support for Apple devices
CONFIG_THUNDERBOLT
苹果公司的雷电接口支持.
Android Drivers
CONFIG_ANDROID
安卓平台专用驱动
NVDIMM (Non-Volatile Memory Device) Support
CONFIG_LIBNVDIMM
NVDIMM(非易失性内存)支持.
NVMEM Support
CONFIG_NVMEM
NVMEM(非易失性存储器)设备支持.包括:EEPROM,EFUSES...不确定的选"N".
System Trace Module devices
CONFIG_STM
仅供调试使用
Dummy STM driver
CONFIG_STM_DUMMY
仅供调试使用
Kernel console over STM devices
CONFIG_STM_SOURCE_CONSOLE
仅供调试使用
Intel(R) Trace Hub controller
CONFIG_INTEL_TH
仅供调试使用
FPGA Configuration Framework
CONFIG_FPGA
FPGA配置框架支持.仅用于嵌入式系统.