Linux-3.10-x86_64 內核配置選項簡介

http://www.jinbuguo.com/kernel/longterm-3_10-options.html


Linux-3.10-x86_64 內核配置選項簡介

作者:金步國


版權聲明

本文作者是一位開源理念的堅定支持者,所以本文雖然不是軟件,但是遵照開源的精神發佈。

  • 無擔保:本文作者不保證作品內容準確無誤,亦不承擔任何由於使用此文檔所導致的損失。
  • 自由使用:任何人都可以自由的閱讀/鏈接/打印此文檔,無需任何附加條件。
  • 名譽權:任何人都可以自由的轉載/引用/再創作此文檔,但必須保留作者署名並註明出處。

其他作品

本文作者十分願意與他人分享勞動成果,如果你對我的其他翻譯作品或者技術文章有興趣,可以在如下位置查看現有的作品集:

聯繫方式

由於作者水平有限,因此不能保證作品內容準確無誤。如果你發現了作品中的錯誤(哪怕是錯別字也好),請來信指出,任何提高作品質量的建議我都將虛心接納。

  • Email(QQ):70171448在QQ郵箱

Last Update: 2015-3-11

Gentoo Linux
Gentoo內核(gentoo-sources)特有的選項

Gentoo Linux support
CONFIG_GENTOO_LINUX
選"Y"後,將會自動選中那些在Gentoo環境中必須開啓的內核選項,以避免用戶遺漏某些必要的選項,減輕一些用戶配置內核的難度.建議選"Y".
Linux dynamic and persistent device naming (userspace devfs) support
CONFIG_GENTOO_LINUX_UDEV
目前此項的作用僅是開啓CONFIG_TMPFS和CONFIG_DEVTMPFS及其所依賴的選項.CONFIG_TMPFS是爲了在"/dev/shm","/run","/sys/fs/cgroup"三個目錄中掛載tmpfs文件系統,CONFIG_DEVTMPFS是爲了在"/dev"目錄掛載devtmpfs文件系統.建議選"Y".
Support for init systems, system and service managers
"init"系統(系統與服務管理器)."init"是內核啓動的第一個用戶空間程序(PID=1),也是所有用戶態進程的"大總管"([提示]所有內核態進程的大總管是PID=2的[kthreadd]).
OpenRC, runit and other script based systems and managers
CONFIG_GENTOO_LINUX_INIT_SCRIPT
OpenRC是Gentoo傳統的"init"系統,使用基於SysVinit的傳統啓動腳本技術.選"Y"後,所有OpenRC所必需的內核選項(目前僅有CONFIG_BINFMT_SCRIPT)都會被自動選中.不確定的選"Y".
systemd
CONFIG_GENTOO_LINUX_INIT_SYSTEMD
儘管倍受爭議,但是systemd確實是目前風頭最勁的"init"系統,大有在Linux世界一統江湖的霸氣和潛力.僅在你打算從OpenRC遷移到systemd時選"Y".選"Y"後,內核中所有被systemd依賴的選項都將被自動選中,包括systemd建議的(而非必須的)選項,總計約20項.systemd官方的README文件也列出了必須/推薦/可選的內核選項.


64-bit kernel
CONFIG_64BIT
編譯64位內核.本文僅講述x86_64(AMD64)平臺的內核編譯,所以這個是必選項.

General setup
常規設置

Cross-compiler tool prefix
CONFIG_CROSS_COMPILE
交叉編譯工具前綴(比如"arm-linux-"相當於使用"make CROSS_COMPILE=arm-linux-"進行編譯).除非你想配置後默認自動進行交叉編譯,否則不要使用此選項.
Local version - append to kernel release
CONFIG_LOCALVERSION
在內核版本後面加上自定義的版本字符串(最大64字符),可以用"uname -a"命令看到
Automatically append version information to the version string
CONFIG_LOCALVERSION_AUTO
自動在版本字符串(CONFIG_LOCALVERSION)後面添加版本信息(類似"-gxxxxxxxx"格式),需要有perl以及git倉庫支持
Kernel compression mode
內核鏡像的壓縮格式,可選Gzip/Bzip2/LZMA/XZ/LZO格式之一,推薦使用XZ格式.你的系統中需要有相應的壓縮工具.
Default hostname
CONFIG_DEFAULT_HOSTNAME
設置默認主機名,默認值是"(none)".用戶可以隨後使用系統調用sethostname()來修改主機名.
Support for paging of anonymous memory (swap)
CONFIG_SWAP
使用交換分區或者交換文件來做爲虛擬內存
System V IPC
CONFIG_SYSVIPC
System V 進程間通信(IPC)支持,用於進程間同步和交換數據,許多程序需要這個功能.選"Y",除非你確實知道自己在做什麼
POSIX Message Queues
CONFIG_POSIX_MQUEUE
POSIX消息隊列是POSIX IPC的一部分,如果你想編譯和運行那些使用"mq_*"系統調用的程序(比如爲Solaris開發的程序),就必須開啓此選項.POSIX消息隊列可以作爲"mqueue"文件系統掛載以方便用戶對隊列進行操作.不確定的選"Y".
open by fhandle syscalls
CONFIG_FHANDLE
用戶程序可以使用句柄(而非文件名)來追蹤文件(使用open_by_handle_at(2)/name_to_handle_at(2)系統調用),即使某文件被重命名,用戶程序依然可定位那個文件.此特性有助於實現用戶空間文件服務器(userspace file server).建議選"Y",因爲systemd和udev依賴於它.
Auditing support
CONFIG_AUDIT
內核審計(跟蹤每個進程的活動情況)支持,某些安全相關的內核子系統(例如SELinux)需要它.但是它會與systemd衝突,所以在使用systemd的系統上必須關閉.
Enable system-call auditing support
CONFIG_AUDITSYSCALL
對系統調用進行審計.既可獨立使用,也可被其他內核子系統(例如SELinux)使用.
Make audit loginuid immutable
CONFIG_AUDIT_LOGINUID_IMMUTABLE
審計時使用固定的loginuid.在使用systemd之類的系統上應該開啓(login服務由init進程負責重啓),在使用SysVinitUpstart之類的系統上應該關閉(login服務由系統管理員手動重啓).OpenRC就是一個基於SysVinit的系統.
IRQ subsystem
IRQ(中斷請求)子系統
Expose hardware/virtual IRQ mapping via debugfs
CONFIG_IRQ_DOMAIN_DEBUG
通過debugfs中的irq_domain_mapping文件向用戶顯示硬件IRQ號/Linux IRQ號之間的對應關係.僅用於開發調試.
Support sparse irq numbering
CONFIG_SPARSE_IRQ
稀疏IRQ號支持.它允許在小型設備上(例如嵌入式設備)定義一個很高的CONFIG_NR_CPUS值,但仍然不希望佔用太多內核"memory footprint"(一段可以被操作或被管理的內存區域)的場合.稀疏IRQ也更適合NUMA平臺,因爲它以一種對NUMA更友好的方式分發中斷描述符.不確定的選"N".
Timers subsystem
Linux內核時鐘子系統
Timer tick handling
內核時鐘滴答處理程序,更多信息可以參考內核源碼樹下的"Documentation/timers/NO_HZ.txt"文件
Periodic timer ticks (constant rate, no dynticks)
CONFIG_HZ_PERIODIC
無論CPU是否需要,都強制按照固定頻率不斷觸發時鐘中斷.這是最耗電的方式,不推薦使用
Idle dynticks system (tickless idle)
CONFIG_NO_HZ_IDLE
CPU在空閒狀態時不產生不必要的時鐘中斷,以使處理器能夠在較低能耗狀態下運行以節約電力,適合於大多數場合
Full dynticks system (tickless)
CONFIG_NO_HZ_FULL
完全無滴嗒:即使CPU在忙碌狀態也儘可能關閉所有時鐘中斷,適用於CPU在同一時間僅運行一個任務,或者用戶空間程序極少與內核交互的場合.即使開啓此選項,也需要額外設置"nohz_full=?"內核命令行參數才能真正生效.
Full dynticks system on all CPUs by default
CONFIG_NO_HZ_FULL_ALL
即使沒有設置"nohz_full"引導參數,也默認對所有CPU(boot CPU 除外)開啓完全無滴答特性.
Old Idle dynticks config
CONFIG_NO_HZ
等價於CONFIG_NO_HZ_IDLE,臨時用來兼容老版本內核選項,未來會被刪除.
High Resolution Timer Support
CONFIG_HIGH_RES_TIMERS
高精度定時器(hrtimer)是從2.6.16開始引入,用於取代傳統timer wheel(基於jiffies定時器)的時鐘子系統.可以降低與內核其他模塊的耦合性,還可以提供比1毫秒更高的精度(因爲它可以讀取HPET/TSC等新型硬件時鐘源),可以更好的支持音視頻等對時間精度要求較高的應用.建議選"Y".[提示]這裏說的"定時器"是指"軟件定時器",而不是主板或CPU上集成的硬件時鐘發生器(ACPI PM Timer/HPET Timer/TSC Timer).
CPU/Task time and stats accounting
CPU/進程的時間及狀態統計
Cputime accounting
CPU時間統計方式
Simple tick based cputime accounting
CONFIG_TICK_CPU_ACCOUNTING
簡單的基於滴答的統計,適用於大多數場合
Deterministic task and CPU time accounting
CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
通過讀取CPU計數器進行統計,可以提供更精確的統計,但是對性能有一些不利影響.
Full dynticks CPU time accounting
CONFIG_VIRT_CPU_ACCOUNTING_GEN
利用上下文跟蹤子系統,通過觀察每一個內核與用戶空間的邊界進行統計.該選項對性能有顯著的不良影響,目前僅用於完全無滴答子系統(CONFIG_NO_HZ_FULL)的調試
Fine granularity task level IRQ time accounting
CONFIG_IRQ_TIME_ACCOUNTING
通過讀取TSC時間戳進行統計,這是統計進程IRQ時間的更細粒度的統計方式,但對性能有些不良影響(特別是在RDTSC指令速度較慢的CPU上).
BSD Process Accounting
CONFIG_BSD_PROCESS_ACCT
用戶空間程序可以要求內核將進程的統計信息寫入一個指定的文件,主要包括進程的創建時間/創建者/內存佔用等信息.
BSD Process Accounting version 3 file format
CONFIG_BSD_PROCESS_ACCT_V3
使用新的v3版文件格式,可以包含每個進程的PID和其父進程的PID,但是不兼容老版本的文件格式.比如 GNU Accounting Utilities 這樣的工具可以識別v3格式
Export task/process statistics through netlink
CONFIG_TASKSTATS
通過netlink接口向用戶空間導出進程的統計信息,與 BSD Process Accounting 的不同之處在於這些統計信息在整個進程生存期都是可用的.
Enable per-task delay accounting
CONFIG_TASK_DELAY_ACCT
在統計信息中包含進程等候系統資源(cpu,IO同步,內存交換等)所花費的時間
Enable extended accounting over taskstats
CONFIG_TASK_XACCT
在統計信息中包含進程的更多擴展信息.
Enable per-task storage I/O accounting
CONFIG_TASK_IO_ACCOUNTING
在統計信息中包含進程在存儲設備上的I/O字節數.
RCU Subsystem
RCU(Read-Copy Update)子系統.在讀多寫少的情況下,這是一個高性能的鎖機制,對於被RCU保護的共享數據結構,讀者不需要獲得任何鎖就可以訪問它(速度非常快),但寫者在訪問它時首先拷貝一個副本,然後對副本進行修改,最後使用一個回調機制在適當的時機把指向原來數據的指針重新指向新的被修改的數據,速度非常慢.RCU只適用於讀多寫少的情況:如網絡路由表的查詢更新,設備狀態表的維護,數據結構的延遲釋放以及多徑I/O設備的維護等.
RCU Implementation
RCU的實現方式
Tree-based hierarchical RCU
CONFIG_TREE_RCU
基於樹型分層結構的實現.最適用於多CPU的非實時系統.
Preemptible tree-based hierarchical RCU
CONFIG_TREE_PREEMPT_RCU
搶佔式基於樹型分層結構的實現.最適用於那些要求快速響應的多CPU實時系統.
UP-only small-memory-footprint RCU
CONFIG_TINY_RCU
最簡單的實現,能夠大幅降低RCU系統的內存佔用.最適用於單CPU的非實時系統.
Preemptible UP-only small-memory-footprint RCU
CONFIG_TINY_PREEMPT_RCU
搶佔式簡單實現,能夠大幅降低RCU系統的內存佔用.最適用於那些要求快速響應的單CPU實時系統.
Consider userspace as in RCU extended quiescent state
CONFIG_RCU_USER_QS
在內核和用戶邊界設置鉤子函數,將運行在用戶態的CPU從全局RCU狀態機制中移除,這樣就不會在RCU系統中維護此CPU的時鐘滴答.除非你想要幫助開發CONFIG_NO_HZ_FULL模塊,否則不要打開此選項,而且它還會對性能有不利影響.
Force context tracking
CONFIG_CONTEXT_TRACKING_FORCE
默認在內核和用戶邊界進行探測(上下文跟蹤),以便測試依賴於此特性的各種功能(比如用戶空間的 RCU extended quiescent state),這個特性目前僅用於調試目的,未來也許會用於爲CONFIG_NO_HZ_FULL模塊提供支持
Tree-based hierarchical RCU fanout value
CONFIG_RCU_FANOUT
這個選項控制着樹形RCU層次結構的端點數(fanout),以允許RCU子系統在擁有海量CPU的系統上高效工作.這個值必須至少等於CONFIG_NR_CPUS的1/4次方(4次根號).生產系統上應該使用默認值(64).僅在你想調試RCU子系統時才需要減小此值.
Tree-based hierarchical RCU leaf-level fanout value
CONFIG_RCU_FANOUT_LEAF
這個選項控制着樹形RCU層次結構的葉子層的端點數(leaf-level fanout).對於期望擁有更高能耗比(更節能)的系統,請保持其默認值(16).對於擁有成千上萬個CPU的系統來說,應該考慮將其設爲最大值(CONFIG_RCU_FANOUT).
Disable tree-based hierarchical RCU auto-balancing
CONFIG_RCU_FANOUT_EXACT
強制按照CONFIG_RCU_FANOUT_LEAF的值,而不是使用自動平衡樹結構來實現RCU子系統.目前僅用於調試目的.未來也許會用於增強NUMA系統的性能.
Accelerate last non-dyntick-idle CPU's grace periods
CONFIG_RCU_FAST_NO_HZ
即使CPU還在忙碌,也允許進入dynticks-idle狀態,並且阻止RCU每4個滴答就喚醒一次該CPU,這樣能夠更有效的使用電力,同時也拉長了RCU grace period的時間,造成性能降低.如果能耗比對你而言非常重要(你想節省每一分電力),並且你不在乎系統性能的降低(CPU喚醒時間增加),可以開啓此選項.臺式機和服務器建議關閉此選項.
Enable RCU priority boosting
CONFIG_RCU_BOOST
允許提升RCU子系統的實時優先級(包括讀操作與寫操作),以避免RCU操作被阻塞太長時間.如果系統的CPU負載經常很重,或者你需要快速的實時響應系統,那麼就選"Y",否則應該選"N".
Real-time priority to boost RCU readers to
CONFIG_RCU_BOOST_PRIO
允許提升被長時間搶佔(阻塞)的RCU讀操作的實時優先級到什麼程度.取值範圍是[1,99].默認值"1"適用於實時應用程序中不包含CPU密集型(CPU-bound)線程的常規場合(例如大多數桌面系統).但是如果你的實時應用程序擁有一個或多個CPU密集型線程,那麼可能需要增加這個值,具體可以參考內核幫助的說明.僅在你確實理解了的情況下再改變默認值.
Milliseconds to delay boosting after RCU grace-period start
CONFIG_RCU_BOOST_DELAY
在提升RCU讀操作的優先級之前,允許有多長時間潛伏期(阻塞),取值範圍是[0,3000],單位是毫秒,默認值是"500".不確定的請使用默認值.
Offload RCU callback processing from boot-selected CPUs
CONFIG_RCU_NOCB_CPU
如果你想幫助調試內核可以開啓,否則請關閉.
Build-forced no-CBs CPUs
在開啓CONFIG_RCU_NOCB_CPU選項的情況下,指定哪些CPU是No-CB CPU,相當於預先設置"rcu_nocbs="內核引導參數.
Kernel .config support
CONFIG_IKCONFIG
把內核的配置信息編譯進內核中,以後可以通過scripts/extract-ikconfig腳本從內核鏡像中提取這些信息
Enable access to .config through /proc/config.gz
CONFIG_IKCONFIG_PROC
允許通過 /proc/config.gz 文件訪問內核的配置信息
Kernel log buffer size
CONFIG_LOG_BUF_SHIFT
設置內核日誌緩衝區的大小: 12(最小值)=4KB,...,16=64KB,17=128KB,18=256KB,...,21(最大值)=2048KB
Automatically enable NUMA aware memory/task placement
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED
NUMA(Non-Uniform Memory Access Architecture)系統上自動啓用進程/內存均衡,也就是自動開啓CONFIG_NUMA_BALANCING特性.
Memory placement aware NUMA scheduler
CONFIG_NUMA_BALANCING
允許自動根據NUMA系統的節點分佈狀況進行進程/內存均衡(方法很原始,就是簡單的內存移動).這個選項對UMA系統無效.[提示]UMA系統的例子:(1)只有一顆物理CPU(即使是多核)的電腦,(2)不支持"虛擬NUMA",或"虛擬NUMA"被禁用的虛擬機(即使所在的物理機是NUMA系統)
Control Group support
CONFIG_CGROUPS
Cgroup(Control Group)是一種進程管理機制,可以針對一組進程進行系統資源的分配和管理,可用於Cpusets,CFS(完全公平調度器),內存管理等子系統.此外,systemd也依賴於它.更多細節可以參考內核的"Documentation/cgroups/cgroups.txt"文件
Example debug cgroup subsystem
CONFIG_CGROUP_DEBUG
導出cgroups框架的調試信息,僅用於調試目的.
Freezer cgroup subsystem
CONFIG_CGROUP_FREEZER
允許凍結/解凍cgroup內所有進程
Device controller for cgroups
CONFIG_CGROUP_DEVICE
允許爲cgroup建立設備白名單,這樣cgroup內的進程將僅允許對白名單中的設備進行mknod/open操作
Cpuset support
CONFIG_CPUSETS
CPUSET支持:允許將CPU和內存進行分組,並指定某些進程只能運行於特定的分組.這裏有一篇CPUSET的用法
Include legacy /proc/<pid>/cpuset file
CONFIG_PROC_PID_CPUSET
提供過時的 /proc/<pid>/cpuset 文件接口
Simple CPU accounting cgroup subsystem
CONFIG_CGROUP_CPUACCT
提供一個簡單的資源控制器(Resource Controller,用於實現一組任務間的資源共享),以監控cgroup內所有進程的總CPU使用量.
Resource counters
CONFIG_RESOURCE_COUNTERS
爲cgroup提供獨立於controller資源計數器
Memory Resource Controller for Control Groups
CONFIG_MEMCG
爲cgroup添加內存資源控制器,包含匿名內存和頁面緩存(Documentation/cgroups/memory.txt).開啓此選項後,將會增加關聯到每個內存頁fixed memory大小,具體在64位系統上是40bytes/PAGE_SIZE.僅在你確實明白什麼是 memory resource controller 並且確實需要的情況下才開啓此選項.此功能可以通過命令行選項"cgroup_disable=memory"進行關閉.
Memory Resource Controller Swap Extension
CONFIG_MEMCG_SWAP
給 Memory Resource Controller 添加對swap的管理功能.這樣就可以針對每個cgroup限定其使用的mem+swap總量.如果關閉此選項, memory resource controller 將僅能限制mem的使用量,而無法對swap進行控制(進程有可能耗盡swap).開啓此功能會對性能有不利影響,並且爲了追蹤swap的使用也會消耗更多的內存(如果swap的頁面大小是4KB,那麼每1GB的swap需要額外消耗512KB內存),所以在內存較小的系統上不建議開啓.
Memory Resource Controller Swap Extension enabled by default
CONFIG_MEMCG_SWAP_ENABLED
如果開啓此選項,那麼將默認開啓CONFIG_MEMCG_SWAP特性,否則將默認關閉.即使默認開啓也可以通過內核引導參數"swapaccount=0"禁止此特性.
Memory Resource Controller Kernel Memory accounting
CONFIG_MEMCG_KMEM
爲 Memory Resource Controller 添加對內核對象所佔用內存的管理功能.和標準的 Memory Resource Controller 對內存的控制不一樣之處在於:這些內核對象所佔用的內存是基於每個內存頁的,並且可以被swap到硬盤.使用這個功能可以確保cgroup中的進程不會單獨耗盡所有內核資源.
HugeTLB Resource Controller for Control Groups
CONFIG_CGROUP_HUGETLB
爲cgroup添加對HugeTLB頁的資源控制功能.開啓此選項之後,你就可以針對每個cgroup限定其對HugeTLB的使用.
Enable perf_event per-cpu per-container group (cgroup) monitoring
CONFIG_CGROUP_PERF
將per-cpu模式進行擴展,使其可以監控屬於特定cgroup並運行於特定CPU上的線程
Group CPU scheduler
CONFIG_CGROUP_SCHED
讓CPU調度程序可以在不同的cgroup之間分配CPU的帶寬.systemd資源控制單元(resource control unit)的CPUShares功能依賴於它.
Group scheduling for SCHED_OTHER
CONFIG_FAIR_GROUP_SCHED
公平CPU調度策略,也就是在多個cgroup之間平均分配CPU帶寬."雞血補丁"CONFIG_SCHED_AUTOGROUP(自動分組調度功能)依賴於它.systemd資源控制單元(resource control unit)的CPUShares功能也依賴於它.
CPU bandwidth provisioning for FAIR_GROUP_SCHED
CONFIG_CFS_BANDWIDTH
允許用戶爲運行在CONFIG_FAIR_GROUP_SCHED中的進程定義CPU帶寬限制.對於沒有定義CPU帶寬限制的cgroup而言,可以無限制的使用CPU帶寬.詳情參見Documentation/scheduler/sched-bwc.txt 文件.
Group scheduling for SCHED_RR/FIFO
CONFIG_RT_GROUP_SCHED
允許用戶爲cgroup分配實時CPU帶寬,還可以對非特權用戶的實時進程組進行調度.詳情參見 Documentation/scheduler/sched-rt-group.txt 文檔.
Block IO controller
CONFIG_BLK_CGROUP
通用的塊IO控制器接口,可以用於實現各種不同的控制策略.目前,IOSCHED_CFQ用它來在不同的cgroup之間分配磁盤IO帶寬(需要額外開啓CONFIG_CFQ_GROUP_IOSCHED),block io throttle也會用它來針對特定塊設備限制IO速率上限(需要額外開啓CONFIG_BLK_DEV_THROTTLING).更多信息可以參考"Documentation/cgroups/blkio-controller.txt"文件.
Enable Block IO controller debugging
CONFIG_DEBUG_BLK_CGROUP
僅用於調試 Block IO controller 目的.
Checkpoint/restore support
CONFIG_CHECKPOINT_RESTORE
在內核中添加"檢查點/恢復"支持.也就是添加一些輔助的代碼用於設置進程的 text, data, heap 段,並且在 /proc 文件系統中添加一些額外的條目.主要用於調試目的.不確定的選"N".
Namespaces support
CONFIG_NAMESPACES
命名空間支持.主要用於支持基於容器的輕量級虛擬化技術(比如LXCLinux-VServer).
UTS namespace
CONFIG_UTS_NS
uname()系統調用的命名空間支持
IPC namespace
CONFIG_IPC_NS
進程間通信對象ID的命名空間支持
User namespace
CONFIG_USER_NS
允許容器使用user命名空間.如果開啓此項,建議同時開啓CONFIG_MEMCG和CONFIG_MEMCG_KMEM選項,以允許用戶空間使用"memory cgroup"限制非特權用戶的內存使用量.不確定的選"N",如果你打算構建一個VPS服務器就必須選"Y".
PID Namespaces
CONFIG_PID_NS
進程PID命名空間支持
Network namespace
CONFIG_NET_NS
網絡協議棧的命名空間支持.systemd服務單元(service unit)中的"PrivateNetwork"依賴於它.
Require conversions between uid/gids and their internal representation
CONFIG_UIDGID_STRICT_TYPE_CHECKS
強制將uid/gid轉換爲內部表示形式,以讓那些未對uid/gid進行轉換的內核子系統代碼也能正常編譯.不確定的選"N".
Automatic process group scheduling
CONFIG_SCHED_AUTOGROUP
每個TTY動態地創建任務分組(cgroup),這樣就可以降低高負載情況下的桌面延遲.也就是傳說中的桌面"雞血補丁",桌面用戶建議開啓.但服務器建議關閉.
Enable deprecated sysfs features to support old userspace tools
CONFIG_SYSFS_DEPRECATED
爲了兼容舊版本的應用程序而保留過時的sysfs特性.僅當在使用2008年以前的發行版時才需要開啓,2009年之後的發行版中必須關閉.此外,使用udev或systemd的系統也必須關閉.
Enable deprecated sysfs features by default
CONFIG_SYSFS_DEPRECATED_V2
默認開啓上述特性
Kernel->user space relay support (formerly relayfs)
CONFIG_RELAY
在某些文件系統(比如debugfs)中提供中繼(relay)支持(從內核空間向用戶空間傳遞大批量數據).主要用於調試內核.
Initial RAM filesystem and RAM disk (initramfs/initrd) support
CONFIG_BLK_DEV_INITRD
初始內存文件系統(initramfs,2.6以上內核的新機制,使用cpio格式,佔據的內存隨數據的增減自動增減)與初始內存盤(initrd,2.4以前內核遺留的老機制,使用loop設備,佔據一塊固定的內存,需要額外開啓CONFIG_BLK_DEV_RAM選項才生效)支持,一般通過lilo/grub的initrd指令加載.更多細節可以參考"Documentation/initrd.txt"文件,關於initrd到initramfs的進化(牆內鏡像),可以參考IBM上的兩篇文章:Linux2.6 內核的 Initrd 機制解析Linux 初始 RAM 磁盤(initrd)概述.
Initramfs source file(s)
CONFIG_INITRAMFS_SOURCE
如果你想將initramfs鏡像直接嵌入內核(比如嵌入式環境或者想使用 EFI stub kernel),而不是通過lilo/grub這樣的引導管理器加載,可以使用此選項,否則請保持空白.這個選項指明用來製作initramfs鏡像的原料,可以是一個.cpio文件,或一個Initramfs虛根目錄(其下包含"bin,dev,etc,lib,proc,sys"等子目錄),或一個描述文件.細節可以參考"Documentation/early-userspace/README"文檔.[注意]內核幫助文檔說可以指定多個目錄或文件是錯誤的,實際只能接受單一的目錄或文件
User ID to map to 0 (user root)
INITRAMFS_ROOT_UID
此選項僅在CONFIG_INITRAMFS_SOURCE中包含目錄時纔有效,將此值設爲非零(例如"37"),那麼所有UID=37的文件在打包到initramfs鏡像內時,其UID都將被設爲"0".
Group ID to map to 0 (group root)
INITRAMFS_ROOT_GID
此選項僅在CONFIG_INITRAMFS_SOURCE中包含目錄時纔有效,將此值設爲非零(例如"37"),那麼所有GID=37的文件在打包到initramfs鏡像內時,其GID都將被設爲"0".
Support initial ramdisks compressed using gzip
CONFIG_RD_GZIP
支持經過gzip壓縮的ramdisk或cpio鏡像
Support initial ramdisks compressed using bzip2
CONFIG_RD_BZIP2
支持經過bzip2壓縮的ramdisk或cpio鏡像
Support initial ramdisks compressed using LZMA
CONFIG_RD_LZMA
支持經過LZMA壓縮的ramdisk或cpio鏡像
Support initial ramdisks compressed using XZ
CONFIG_RD_XZ
支持經過XZ壓縮的ramdisk或cpio鏡像
Support initial ramdisks compressed using LZO
CONFIG_RD_LZO
支持經過LZO壓縮的ramdisk或cpio鏡像
Built-in initramfs compression mode
選擇initramfs鏡像的壓縮格式."gzip"是兼容性最好的格式,但是壓縮率卻最低."XZ"是目前漸漸流行的格式,壓縮率高,解壓速度也不慢.
Optimize for size
CONFIG_CC_OPTIMIZE_FOR_SIZE
編譯時優化內核尺寸(使用GCC的"-Os"而不是"-O2"參數編譯),這會得到更小的內核,但是運行速度可能會更慢.主要用於嵌入式環境.
Configure standard kernel features (expert users)
CONFIG_EXPERT
配置標準的內核特性(僅供專家使用).這個選項允許你改變內核的"標準"特性(比如用於需要"非標準"內核的特定環境中),僅在你確實明白自己在幹什麼的時候纔開啓.
Enable 16-bit UID system calls
CONFIG_UID16
允許對UID系統調用進行過時的16-bit包裝,建議關閉
Sysctl syscall support
CONFIG_SYSCTL_SYSCALL
二進制sysctl接口支持.由於現在流行直接通過/proc/sys以ASCII明碼方式修改內核參數(需要開啓CONFIG_PROC_SYSCTL選項),所以已經不需要再通過二進制接口去控制內核參數,建議關閉它以減小內核尺寸.
Load all symbols for debugging/ksymoops
CONFIG_KALLSYMS
裝載所有的調試符號表信息,會增大內核體積,僅供調試時選擇
Include all symbols in kallsyms
CONFIG_KALLSYMS_ALL
/proc/kallsyms中包含內核知道的所有符號,內核將會增大300K,僅在你確實需要的時候再開啓
Enable support for printk
CONFIG_PRINTK
允許內核向終端打印字符信息.如果關閉,內核在初始化過程中將不會輸出字符信息,這會導致很難診斷系統故障.僅在你確實不想看到任何內核信息時選"N".否則請選"Y".
BUG() support
CONFIG_BUG
顯示故障和失敗條件(BUG和WARN),禁用它將可能導致隱含的錯誤被忽略.建議僅在嵌入式設備或者無法顯示故障信息的系統上關閉
Enable ELF core dumps
CONFIG_ELF_CORE
內存轉儲支持,可以幫助調試ELF格式的程序,用於調試和開發用戶態程序
Enable PC-Speaker support
CONFIG_PCSPKR_PLATFORM
主板上的蜂鳴器支持.主板上的蜂鳴器只能發出或長或短的"滴"或"嘟嘟"聲,一般用於系統報警.不要和能夠播放音樂的揚聲器混淆.如果你的主板上沒有就關閉,有的話(開機自檢完成後一般能聽到"滴"的一聲)還是建議開啓.
Enable full-sized data structures for core
CONFIG_BASE_FULL
在內核中使用全尺寸的數據結構.禁用它將使得某些內核的數據結構減小以節約內存,但是將會降低性能
Enable futex support
CONFIG_FUTEX
快速用戶空間互斥(fast userspace mutexes)可以使線程串行化以避免競態條件,也提高了響應速度.禁用它將導致內核不能正確的運行基於glibc的程序
Enable eventpoll support
CONFIG_EPOLL
Epoll系列系統調用(epoll_*)支持,這是當前在Linux下開發大規模併發網絡程序(比如Nginx)的熱門人選,設計目的是取代既有POSIX select(2)與poll(2)系統接口,systemd依賴於它.建議開啓.
Enable signalfd() system call
CONFIG_SIGNALFD
signalfd()系統調用支持,建議開啓.傳統的處理信號的方式是註冊信號處理函數,由於信號是異步發生的,要解決數據的併發訪問和可重入問題.signalfd可以將信號抽象爲一個文件描述符,當有信號發生時可以對其read,這樣可以將信號的監聽放到select/poll/epoll監聽隊列中.systemd依賴於它.
Enable timerfd() system call
CONFIG_TIMERFD
timerfd()系統調用支持,建議開啓.timerfd可以實現定時器功能,將定時器抽象爲文件描述符,當定時器到期時可以對其read,這樣也可以放到select/poll/epoll監聽隊列中.更多信息可以參考linux新的API signalfd、timerfd、eventfd使用說明.systemd依賴於它.
Enable eventfd() system call
CONFIG_EVENTFD
eventfd()系統調用支持,建議開啓.eventfd實現了線程之間事件通知的方式,eventfd的緩衝區大小是sizeof(uint64_t),向其write可以遞增這個計數器,read操作可以讀取,並進行清零.eventfd也可以放到select/poll/epoll監聽隊列中.當計數器不是0時,有可讀事件發生,可以進行讀取.
Use full shmem filesystem
CONFIG_SHMEM
完全使用shmem來代替ramfs.shmem是基於共享內存的文件系統(可以使用swap),在啓用CONFIG_TMPFS後可以掛載爲tmpfs供用戶空間使用,它比簡單的ramfs先進許多.僅在微型嵌入式環境中且沒有swap的情況下才可能會需要使用原始的ramfs.
Enable AIO support
CONFIG_AIO
開啓POSIX異步IO支持.它常常被高性能的多線程程序使用,建議開啓
Enable PCI quirk workarounds
CONFIG_PCI_QUIRKS
開啓針對多種PCI芯片組的錯誤規避功能,僅在確定你的PCI芯片組確實沒有沒有任何bug時才關閉此功能.至於究竟哪些芯片組有bug,你可以直接打開"drivers/pci/quirks.c"文件查看.不確定的選"Y".
Embedded system
CONFIG_EMBEDDED
如果你是爲嵌入式系統編譯內核,可以開啓此選項,這樣一些高級選項就會顯示出來.單獨選中此項本身對內核並無任何改變.
Kernel Performance Events And Counters
CONFIG_PERF_EVENTS
性能相關的事件和計數器支持(既有硬件的支持也有軟件的支持).大多數現代CPU都會通過性能計數寄存器對特定類型的硬件事件(指令執行,緩存未命中,分支預測失敗)進行計數,同時又絲毫不會減慢內核和應用程序的運行速度.這些寄存器還會在某些事件計數到達特定的閾值時觸發中斷,從而可以對代碼進行性能分析. Linux Performance Event 子系統對上述特性進行了抽象,提供了針對每個進程和每個CPU的計數器,並可以被 tools/perf/ 目錄中的"perf"工具使用.
Debug: use vmalloc to back perf mmap() buffers
CONFIG_DEBUG_PERF_USE_VMALLOC
主要用於調試vmalloc代碼.
Enable VM event counters for /proc/vmstat
CONFIG_VM_EVENT_COUNTERS
"/proc/vmstat"中包含了從內核導出的虛擬內存的各種統計信息.開啓此項後可以顯示較詳細的信息(包含各種事件計數器),關閉此項則僅僅顯示很簡略的信息.主要用於調試和統計.
Enable SLUB debugging support
CONFIG_SLUB_DEBUG
SLUB調試支持,禁用後可顯著降低內核大小,同時/sys/kernel/slab也將不復存在.
Disable heap randomization
CONFIG_COMPAT_BRK
禁用堆隨機化(heap randomization)功能.堆隨機化可以讓針對堆溢出的攻擊變得困難,但是不兼容那些古董級的二進制程序(2000年以前).如果你不需要使用這些古董程序,那麼選"N".
Choose SLAB allocator
選擇內存分配管理器
SLAB
CONFIG_SLAB
久經考驗的slab內存分配器,在大多數情況下都具有良好的適應性.
SLUB (Unqueued Allocator)
CONFIG_SLUB
SLUB與SLAB兼容,但通過取消大量的隊列和相關開銷,簡化了slab的結構.特別是在多核時擁有比slab更好的性能和更好的系統可伸縮性.
SLOB (Simple Allocator)
CONFIG_SLOB
SLOB針對小型系統設計,做了非常激進的簡化,以適用於內存非常有限(小於64M)的嵌入式環境.
SLUB per cpu partial cache
CONFIG_SLUB_CPU_PARTIAL
讓SLUB內存分配器使用基於每個CPU的局部緩存,這樣可以加速分配和釋放屬於此CPU範圍內的對象,但這樣做的代價是增加對象釋放延遲的不確定性.因爲當這些局部緩存因爲溢出而要被清除時,需要使用鎖,從而導致延遲尖峯.對於需要快速響應的實時系統,應該選"N",服務器則可以選"Y".
Provide system-wide ring of trusted keys
CONFIG_SYSTEM_TRUSTED_KEYRING
在內核中創建一個密鑰環,從而允許向密鑰環上添加受信任的密鑰,主要用於內核模塊的簽名.如果你開啓了CONFIG_MODULE_SIG,此項將被自動選中.不需要使用內核模塊簽名檢查功能的應該選"N"
Profiling support
CONFIG_PROFILING
添加擴展的性能分析支持,可以被OProfile之類的工具使用.僅用於調試目的.
OProfile system profiling
CONFIG_OPROFILE
OProfile性能分析工具支持,僅用於調試目的.
OProfile multiplexing support
CONFIG_OPROFILE_EVENT_MULTIPLEX
OProfile multiplexing技術支持
Kprobes
CONFIG_KPROBES
Kprobes是一個輕量級的內核調試工具,能在內核運行的幾乎任意時間點進行暫停/讀取/修改等操作的調試工具.僅供調試使用.
Optimize very unlikely/likely branches
CONFIG_JUMP_LABEL
針對內核中某些"幾乎總是爲真"或者"幾乎總是爲假"的條件分支判斷使用"asm goto"進行優化(在分支預測失敗時會浪費很多時間在回退上,但是這種情況極少發生).很多內核子系統都支持進行這種優化.建議開啓.
Transparent user-space probes
CONFIG_UPROBES
Uprobes與Kprobes類似,但主要用於用戶空間的調試.
Stack Protector buffer overflow detection
GCC的"stack-protector"功能可以在函數開始執行時,在函數的返回地址末端設置一個敏感值,當函數執行完成要返回時,檢查這個敏感值,看看是否存在溢出.如果有溢出則表明可能受到了堆棧溢出攻擊,內核將通過panic來阻止可能的攻擊.選項中的"None"表示關閉此功能,"Regular"表示啓用此功能但是僅提供較弱的保護(需要GCC-4.2及以上版本),"Strong"則表示提供較強的保護(需要GCC-4.9及以上版本)
Enable GCOV-based kernel profiling
CONFIG_GCOV_KERNEL
基於GCC的gcov(代碼覆蓋率測試工具)的代碼分析支持,僅用於調試
Profile entire Kernel
CONFIG_GCOV_PROFILE_ALL
支持對整個內核進行分析.內核體積將會顯著增大,並且運行速度顯著減慢.

Enable loadable module support
可加載模塊支持

Enable loadable module support
CONFIG_MODULES
打開可加載模塊支持,可以通過"make modules_install"把內核模塊安裝在/lib/modules/中.然後可以使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具進行各種模塊操作.
Forced module loading
CONFIG_MODULE_FORCE_LOAD
允許使用"modprobe --force"在不校驗版本信息的情況下強制加載模塊,這絕對是個壞主意!建議關閉.
Module unloading
CONFIG_MODULE_UNLOAD
允許卸載已經加載的模塊
Forced module unloading
CONFIG_MODULE_FORCE_UNLOAD
允許強制卸載正在使用中的模塊(rmmod -f),即使可能會造成系統崩潰.這又是一個壞主意!建議關閉.
Module versioning support
CONFIG_MODVERSIONS
允許使用爲其他內核版本編譯的模塊,可會造成系統崩潰.這同樣是個壞主意!建議關閉.
Source checksum for all modules
CONFIG_MODULE_SRCVERSION_ALL
爲模塊添加"srcversion"字段,以幫助模塊維護者準確的知道編譯此模塊所需要的源文件,從而可以校驗源文件的變動.僅內核模塊開發者需要它.
Module signature verification
CONFIG_MODULE_SIG
加載模塊時檢查模塊簽名,詳情參見"Documentation/module-signing.txt"文件.[!!警告!!]開啓此選項後,必須確保模塊簽名後沒有被strip(包括rpmbuild之類的打包工具).
Require modules to be validly signed
CONFIG_MODULE_SIG_FORCE
僅加載已簽名並且密鑰正確的模塊,拒絕加載未簽名或者簽名密鑰不正確的模塊
Automatically sign all modules
CONFIG_MODULE_SIG_ALL
在執行"make modules_install"安裝模塊的時候,自動進行簽名.否則你必須手動使用 scripts/sign-file 工具進行簽名.
Which hash algorithm should modules be signed with?
選擇對模塊簽名時使用的散列函數.建議使用強度最高的"SHA-512"算法.注意:所依賴的散列算法必須被靜態編譯進內核.對於"SHA-512"來說,就是CONFIG_CRYPTO_SHA512和CONFIG_CRYPTO_SHA512_SSSE3(如果你的CPU支持SSSE3指令集的話).

Enable the block layer
塊設備支持

Enable the block layer
CONFIG_BLOCK
塊設備支持,使用SSD/硬盤/U盤/SCSI/SAS設備者必選.除非你是某些特殊的嵌入式系統,否則沒有理由不使用塊設備.
Block layer SG support v4
CONFIG_BLK_DEV_BSG
爲塊設備啓用第四版SG(SCSI generic)支持.v4相比v3能夠支持更復雜的SCSI指令(可變長度的命令描述塊,雙向數據傳輸,通用請求/應答協議),而且UDEV也要用它來獲取設備的序列號.對於使用systemd的系統來說,必須選"Y".對於不使用systemd的系統,如果你需要通過/dev/bsg/*訪問塊設備,建議開啓此選項,否則(通過/dev/{sd*,st*,sr*})可以關閉.
Block layer SG support v4 helper lib
CONFIG_BLK_DEV_BSGLIB
你不需要手動開啓此選項,如果有其他模塊需要使用,會被自動開啓.
Block layer data integrity support
CONFIG_BLK_DEV_INTEGRITY
某些塊設備可以通過存儲/讀取額外的信息來保障端到端的數據完整性,這個選項爲文件系統提供了相應的鉤子函數來使用這個特性.如果你的設備支持 T10/SCSI Data Integrity Field 或者 T13/ATA External Path Protection 特性,那麼可以開啓此選項,否則建議關閉.
Block layer bio throttling support
CONFIG_BLK_DEV_THROTTLING
Bio Throttling 支持,也就是允許限制每個cgroup對特定設備的IO速率.細節可以參考"Documentation/cgroups/blkio-controller.txt".
Advanced partition selection
CONFIG_PARTITION_ADVANCED
如果你想支持各種不同的磁盤分區格式(特別是與UEFI配合使用的GPT格式),務必選中此項.
Acorn partition support
CONFIG_ACORN_PARTITION
Acorn 操作系統使用的分區格式,請根據實際情況選擇子項,這裏省略
Alpha OSF partition support
CONFIG_OSF_PARTITION
Alpha 平臺上使用的分區格式
Amiga partition table support
CONFIG_AMIGA_PARTITION
AmigaOS 使用的分區格式
Atari partition table support
CONFIG_ATARI_PARTITION
Atari OS 使用的分區格式
Macintosh partition map support
CONFIG_MAC_PARTITION
蘋果的Macintosh平臺使用的分區格式
PC BIOS (MSDOS partition tables) support
CONFIG_MSDOS_PARTITION
漸成歷史垃圾,但目前依然最常見的DOS分區格式.除非你確信不使用此格式,否則必選.其下的子項根據實際情況選擇.
Windows Logical Disk Manager (Dynamic Disk) support
CONFIG_LDM_PARTITION
使用 Windows Logical Disk Manager 創建的分區格式.參見"Documentation/ldm.txt"
SGI partition support
CONFIG_SGI_PARTITION
SGI 平臺上使用的分區格式
Ultrix partition table support
CONFIG_ULTRIX_PARTITION
DEC/Compaq Ultrix 平臺上使用的分區格式
Sun partition tables support
CONFIG_SUN_PARTITION
SunOS 平臺上使用的分區格式
Karma Partition support
CONFIG_KARMA_PARTITION
Rio Karma MP3 player 使用的分區格式
EFI GUID Partition support
CONFIG_EFI_PARTITION
代表未來趨勢,眼下正大紅大紫的EFI GPT(GUID Partition Table)分區格式.建議開啓.如果你在UEFI平臺上安裝則必須開啓.
SYSV68 partition table support
CONFIG_SYSV68_PARTITION
Motorola Delta 機器上使用的分區格式
IO Schedulers
IO調度器(另一篇文章)
Deadline I/O scheduler
CONFIG_IOSCHED_DEADLINE
deadline調度器.簡潔小巧(只有400+行代碼),提供了最小的讀取延遲.如果你希望儘快讀取磁盤,而不介意寫入延遲,那它是最佳選擇.通常對於數據庫工作負載有最佳的表現.
CFQ I/O scheduler
CONFIG_IOSCHED_CFQ
cfq(Complete Fair Queuing)調度器.努力在各內核線程間公平分配IO資源,適用於系統中存在着大量內核線程同時進行IO請求的情況.但對於只有少數內核線程進行密集IO請求的情況,則會出現明顯的性能下降.
CFQ Group Scheduling support
CONFIG_CFQ_GROUP_IOSCHED
允許將CFQ和cgroup組合使用,也就是將每個cgroup看成一個整體,在各cgroup之間進行IO資源的分配.參見"Documentation/cgroups/blkio-controller.txt"文件.還可以參考一下《Linux內核精髓》中的"使用Block I/O控制器"一章.
BFQ I/O scheduler
CONFIG_IOSCHED_BFQ
bfq(Budget Fair Queueing)調度器.這是一個基於CFQ調度器的改進版本,更適合於對交互性要求比較高的場合,比如桌面系統和實時系統.如果靜態編譯進內核,還支持和cgroup配合,實現分層調度(hierarchical scheduling).
BFQ hierarchical scheduling support
CONFIG_CGROUP_BFQIO
通過cgroup文件系統接口,允許將BFQ分層使用(類似CONFIG_CFQ_GROUP_IOSCHED),這個子系統的名字是"bfqio".
Default I/O scheduler
默認IO調度器.如果上述調度器都是模塊,那麼將使用最簡單的內置NOOP調度器.NOOP(No Operation)調度器只是一個簡單的FIFO隊列,不對IO請求做任何重新排序處理(但還是會做一定程度的歸併),適合於SSD/U盤/內存/SAN(Storage Area Networks)/虛擬機中的硬盤/iSCSI/硬RAID等無需尋道的存儲設備,重點是可以節約CPU資源,但不適用於普通硬盤這樣的需要依靠磁頭來定位的設備.另外,有人說擁有TCQ/NCQ技術(能夠自動重新排序)的硬盤也適合用NOOP調度器,這個說法其實並不那麼合理,但筆者在此不敢斷言,希望讀者在嚴謹的測試之後再做定奪.

Processor type and features
中央處理器(CPU)類型及特性

DMA memory allocation support
CONFIG_ZONE_DMA
允許爲尋址寬度不足32位的設備(也就是ISA和LPC總線設備)在物理內存的前16MB範圍內(也就是傳統上x86_32架構的ZONE_DMA區域)分配內存.不確定的選"N",內核中若有其它驅動(主要是某些老舊的聲卡)需要它會自動選中此項.[提示]LPC總線通常和主板上的南橋物理相連,通常連接了一系列的傳統設備:BIOS,PS/2鍵盤,PS/2鼠標,軟盤,並口設備,串口設備,某些集成聲卡,TPM(可信平臺模塊),等等.[題外話]x86_64已經沒有ZONE_HIGHMEM了
Symmetric multi-processing support
CONFIG_SMP
SMP(對稱多處理器)支持,如果你有多個CPU或者使用的是多核CPU就選上.
Support x2apic
CONFIG_X86_X2APIC
x2apic支持.具有這個特性的CPU可以使用32位的APIC ID(可以支持海量的CPU),並且可以使用MSR而不是mmio去訪問 local APIC (更加高效).可以通過"grep x2apic /proc/cpuinfo"命令檢查你的CPU是否支持這個特性.注意:有時候還需要在BIOS中也開啓此特性才真正生效.[提示]在虛擬機中,還需要VMM的支持(例如qemu-kvm).
Enable MPS table
CONFIG_X86_MPPARSE
如果是不支持acpi特性的古董級SMP系統就選上.但現今的64位系統早都已經支持acpi了,所以可以安全的關閉.
Support for extended (non-PC) x86 platforms
CONFIG_X86_EXTENDED_PLATFORM
支持非標準的PC平臺: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 絕大多數人都遇不見這些平臺.
Numascale NumaChip
CONFIG_X86_NUMACHIP
Numascale NumaChip 平臺支持
ScaleMP vSMP
CONFIG_X86_VSMP
ScaleMP vSMP 平臺支持
SGI Ultraviolet
CONFIG_X86_UV
SGI Ultraviolet 平臺支持
Intel Low Power Subsystem Support
CONFIG_X86_INTEL_LPSS
爲 Intel Lynx Point PCH 中的 Intel Low Power Subsystem 技術提供支持.這個芯片組主要是爲採用LGA1150的Haswell處理器提供支持.
Single-depth WCHAN output
CONFIG_SCHED_OMIT_FRAME_POINTER
使用簡化的 /proc/<PID>/wchan 值,禁用此選項會使用更加精確的wchan值(可以在"ps -l"結果的WCHAN域看到),但會輕微增加調度器消耗.
Linux guest support
CONFIG_HYPERVISOR_GUEST
如果這個內核將在虛擬機裏面運行就開啓,否則就關閉.
Enable paravirtualization code
CONFIG_PARAVIRT
半虛擬化(paravirtualization)支持.
paravirt-ops debugging
CONFIG_PARAVIRT_DEBUG
僅供調試.paravirt-ops是內核通用的半虛擬化接口.
Paravirtualization layer for spinlocks
CONFIG_PARAVIRT_SPINLOCKS
半虛擬化的自旋鎖支持.開啓之後運行在虛擬機裏的內核速度會加快,但是運行在物理CPU上的宿主內核運行效率會降低(最多可能會降低5%).請根據實際情況選擇.
Xen guest support
CONFIG_XEN
Xen半虛擬化技術支持
Enable Xen debug and tuning parameters in debugfs
CONFIG_XEN_DEBUG_FS
爲Xen在debugfs中輸出各種統計信息和調整選項.對性能有嚴重影響.僅供調試.
KVM Guest support (including kvmclock)
CONFIG_KVM_GUEST
KVM客戶機支持(包括kvmclock).
Paravirtual steal time accounting
CONFIG_PARAVIRT_TIME_ACCOUNTING
允許進行更細粒度的 task steal time 統計.會造成性能的略微降低.僅在你確實需要的時候纔開啓.
Memtest
CONFIG_MEMTEST
爲內核添加內存測試功能,也就是添加"memtest"內核引導參數以支持對內存進行"體檢".僅在你確實知道這是什麼東西並且確實需要的時候再開啓.否則請關閉.
Processor family
處理器系列,請按照你實際使用的CPU選擇."Generic-x86-64"表示通用於所有x86-64平臺,而不是針對特定類型的CPU進行優化.
Supported processor vendors
CONFIG_PROCESSOR_SELECT
支持的CPU廠商,按實際情況選擇.
Enable DMI scanning
CONFIG_DMI
允許掃描DMI(Desktop Management Interface)/SMBIOS(System Management BIOS)以獲得機器的硬件配置,從而對已知的bug bios進行規避.具體涉及到哪些機器可參見"drivers/acpi/blacklist.c"文件.除非確定你的機器沒有bug,否則請開啓此項.
GART IOMMU support
CONFIG_GART_IOMMU
爲較舊的AMD Athlon64/Opteron/Turion/Sempron CPU提供GART IOMMU支持.圖形地址重映射表(Graphics Address Remapping Table)可以將物理地址不連續的系統內存映射成看上去連續的圖形內存交給GPU使用,是一種挖CPU內存補GPU內存機制,這種機制也可以被認爲是一種"僞IOMMU"(缺乏地址空間隔離和訪問控制).開啓此選項以後,在內存大於3G的系統上,傳統的32位總線(PCI/AGP)的設備將可以使用完全DMA的方式直接訪問原本超出32位尋址範圍之外的系統內存區域.具體方法是:通過編程讓設備在受GART控制的顯存區域工作,然後使用GART將這個地址映射爲真實的物理地址(4GB以上)來實現的.USB/聲卡/IDE/SATA之類的設備常常需要它.開啓此選項之後,除非同時開啓了CONFIG_IOMMU_DEBUG選項或者使用了"iommu=force"內核引導參數,否則此特性僅在條件滿足的情況下(內存足夠大且確有支持GART的設備)激活.由於較新的AMD CPU都已配備了AMD IOMMU(應該使用CONFIG_AMD_IOMMU),故而僅建議在內存大於3G的老式AMD系統上選"Y".
IBM Calgary IOMMU support
CONFIG_CALGARY_IOMMU
IBM xSeries/pSeries 系列服務器的 Calgary IOMMU 支持.
Should Calgary be enabled by default?
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT
開啓此選項表示默認啓用Calgary特性,關閉此選項表示默認禁用Calgary特性(可以使用"iommu=calgary"內核引導參數開啓).
Enable Maximum number of SMP Processors and NUMA Nodes
CONFIG_MAXSMP
讓內核支持x86_64平臺所能支持的最大SMP處理器數量和最大NUMA節點數量.主要用於調試目的.
Maximum number of CPUs
CONFIG_NR_CPUS
支持的最大CPU數量,每個CPU要佔8KB的內核鏡像,最小有效值是"2",最大有效值是"512".注意:對於多核CPU而言,每個覈算一個.
SMT (Hyperthreading) scheduler support
CONFIG_SCHED_SMT
Intel超線程技術(HyperThreading)支持.
Multi-core scheduler support
CONFIG_SCHED_MC
針對多核CPU進行調度策略優化
Preemption Model
內核搶佔模式
No Forced Preemption (Server)
CONFIG_PREEMPT_NONE
禁止內核搶佔,這是Linux的傳統模式,可以得到最大的吞吐量,適合服務器和科學計算環境
Voluntary Kernel Preemption (Desktop)
CONFIG_PREEMPT_VOLUNTARY
自願內核搶佔,通過在內核中設置明確的搶佔點以允許明確的內核搶佔,可以提高響應速度,但是對吞吐量有不利影響.適合普通桌面環境的
Preemptible Kernel (Low-Latency Desktop)
CONFIG_PREEMPT
主動內核搶佔,允許搶佔所有內核代碼,對吞吐量有更大影響,適合需要運行實時程序的場合或者追求最快響應速度的桌面環境.
Reroute for broken boot IRQs
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
這是一個對某些芯片組bug(在某些情況下會發送多餘的"boot IRQ")的修復功能.開啓此選項之後,僅對有此bug的芯片組生效.要檢查哪些芯片組有此bug可以查看"drivers/pci/quirks.c"文件中的"quirk_reroute_to_boot_interrupts_intel"函數.
Machine Check / overheating reporting
CONFIG_X86_MCE
MCE(Machine Check Exception)支持.讓CPU檢測到硬件故障(過熱/數據錯誤)時通知內核,以便內核採取相應的措施(如顯示一條提示信息或關機等).更多信息可以"man mcelog"看看.可以通過"grep mce /proc/cpuinfo"檢查CPU是否支持此特性,若支持建議選中,否則請關閉.當然,如果你對自己的硬件質量很放心,又是桌面系統的話,不選也無所謂.
Intel MCE features
CONFIG_X86_MCE_INTEL
Intel CPU 支持
AMD MCE features
CONFIG_X86_MCE_AMD
AMD CPU 支持
Machine check injector support
CONFIG_X86_MCE_INJECT
MCE注入支持,僅用於調試
Enable support for 16-bit segments
CONFIG_X86_16BIT
如果你需要使用Wine運行那些古董級的16位保護模式程序,就選"Y",否則選"N"
Dell laptop support
CONFIG_I8K
Dell Inspiron 8000 筆記本的 System Management Mode 驅動(i8k).該驅動可以讀取CPU溫度和風扇轉速,進而幫助上層工具控制風扇轉速.該驅動僅針對 Dell Inspiron 8000 筆記本進行過測試,所以不保證一定能適用於其他型號的Dell筆記本.
CPU microcode loading support
CONFIG_MICROCODE
CPU的微代碼更新支持,建議選中.CPU的微代碼更新就像是給CPU打補丁,用於糾正CPU的行爲.更新微代碼的常規方法是升級BIOS,但是也可以在Linux啓動後更新.比如在Gentoo下,可以使用"emerge microcode-ctl"安裝microcode-ctl服務,再把這個服務加入boot運行級即可在每次開機時自動更新CPU微代碼.其他Linux系統可以參考這個帖子.
Intel microcode loading support
CONFIG_MICROCODE_INTEL
Intel CPU 微代碼支持
AMD microcode loading support
CONFIG_MICROCODE_AMD
AMD CPU 微代碼支持
Early load microcode
CONFIG_MICROCODE_INTEL_EARLY
支持從initrd鏡像首部加載微代碼,以便儘可能早的更新CPU微代碼.即使在initrd首部並未嵌入微代碼也不會造成問題,所以"Y"是安全的.不過你真的需要嗎?筆者認爲你一般並不需要:)
/dev/cpu/*/msr - Model-specific register support
CONFIG_X86_MSR
/dev/cpu/*/msr 設備支持.也就是允許用戶空間的特權進程(使用rdmsr與wrmsr指令)訪問x86的MSR寄存器(Model-Specific Register).MSR的作用主要用於調試,程序執行跟蹤,性能及狀態監控,以及觸發特定的CPU特性(依CPU的不同而不同).msrtool工具可以轉儲出MSR的內容.不確定的可以選"N".
/dev/cpu/*/cpuid - CPU information support
CONFIG_X86_CPUID
/dev/cpu/*/cpuid 設備支持.可以通過cpuid命令獲得詳細的CPU信息(CPUID).不確定的可以選"N".
Enable 1GB pages for kernel pagetables
CONFIG_DIRECT_GBPAGES
允許內核頁表使用大小爲1GB的Hugepages並進行直線映射(linear mapping),需要高端CPU的支持(可以用"grep pdpe1gb /proc/cpuinfo"命令檢查).這可以減小頁表緩存(Translation Lookaside Buffer)的壓力,從而提升系統的性能,這對於擁有海量內存並且運行某些特定應用(PosgreSQL,MySQL,Java,Memcached,KVM,Xen...)的系統來說比較有意義.如果你的CPU支持,可以選"Y".
Numa Memory Allocation and Scheduler Support
CONFIG_NUMA
開啓 NUMA(Non Uniform Memory Access) 支持.雖然說集成了內存控制器的CPU都屬於NUMA架構.但事實上,對於大多數只有一顆物理CPU的個人電腦而言,即使支持NUMA架構,也沒必要開啓此特性.可以參考SMP/NUMA/MPP體系結構對比.此外,對於不支持"虛擬NUMA",或"虛擬NUMA"被禁用的虛擬機(即使所在的物理機是NUMA系統),也應該關閉此項.
Old style AMD Opteron NUMA detection
CONFIG_AMD_NUMA
因爲AMD使用一種舊式的方法讀取NUMA配置信息(新式方法是CONFIG_X86_64_ACPI_NUMA),所以如果你使用的是AMD多核CPU,建議開啓.不過,即使開啓此選項,內核也會優先嚐試CONFIG_X86_64_ACPI_NUMA方法,僅在失敗後纔會使用此方法,所以即使你不能確定CPU的類型也可以安全的選中此項.
ACPI NUMA detection
CONFIG_X86_64_ACPI_NUMA
使用基於 ACPI SRAT(System Resource Affinity Table) 技術的NUMA節點探測方法.這也是檢測NUMA節點信息的首選方法,建議選中.
NUMA emulation
CONFIG_NUMA_EMU
僅供開發調試使用
Maximum NUMA Nodes (as a power of 2)
CONFIG_NODES_SHIFT
允許的最大NUMA節點數.需要注意其計算方法:最大允許節點數=2CONFIG_NODES_SHIFT.也就是說這裏設置的值會被當做2的指數使用.取值範圍是[1,10],也就最多允許1024個節點.
Memory model
內存模式."Sparse Memory"主要用來支持內存熱插拔,相比其他兩個舊有的內存模式,代碼複雜性也比較低,而且還擁有一些性能上的優勢,對某些架構而言是唯一的可選項.其他兩個舊有的內存模式是:"Discontiguous Memory"和"Flat Memory".
Sparse Memory virtual memmap
CONFIG_SPARSEMEM_VMEMMAP
對於64位CPU而言,開啓此選項可以簡化pfn_to_page/page_to_pfn的操作,從而提高內核的運行效率.但是在32位平臺則建議關閉.更多細節可以參考這個帖子.
Enable to assign a node which has only movable memory
CONFIG_MOVABLE_NODE
允許對一個完整的NUMA節點(CPU和對應的內存)進行熱插拔.一般的服務器和個人電腦不需要這麼高級的特性.
Allow for memory hot-add
CONFIG_MEMORY_HOTPLUG
支持向運行中的系統添加內存.也就是內存熱插支持.
Allow for memory hot remove
CONFIG_MEMORY_HOTREMOVE
支持從運行中的系統移除內存.也就是內存熱拔支持.
Allow for balloon memory compaction/migration
CONFIG_BALLOON_COMPACTION
允許 balloon memory 壓縮/遷移.內存的Ballooning技術是指虛擬機在運行時動態地調整它所佔用的宿主機內存資源,該技術在節約內存和靈活分配內存方面有明顯的優勢,目前所有主流虛擬化方案都支持這項技術(前提是客戶機操作系統中必須安裝有相應的balloon驅動).由於內存的動態增加和減少會導致內存過度碎片化,特別是對於2M尺寸的連續大內存頁來說更加嚴重,從而嚴重降低內存性能.允許balloon內存壓縮和遷移可以很好的解決在客戶機中使用大內存頁時內存過度碎片化問題.如果你打算在虛擬機中使用大內存頁(huge page),那麼建議開啓,否則建議關閉.
Allow for memory compaction
CONFIG_COMPACTION
允許對大內存頁(huge pages)進行壓縮.主要是爲了解決大內存頁的碎片問題.建議在使用大內存頁的情況下開啓此項,否則建議關閉.
Page migration
CONFIG_MIGRATION
允許在保持虛擬內存頁地址不變的情況下移動其所對應的物理內存頁的位置.這主要是爲了解決兩個問題:(1)在NUMA系統上,將物理內存轉移到相應的節點上,以加快CPU與內存之間的訪問速度.(2)在分配大內存頁的時候,可以避免碎片問題.
Enable bounce buffers
CONFIG_BOUNCE
爲那些不能直接訪問所有內存範圍的驅動程序開啓bounce buffer支持.當CONFIG_ZONE_DMA被開啓後,這個選項會被默認開啓(當然,你也可以在這裏手動關閉).這主要是爲了那些不具備IOMMU功能的PCI/ISA設備而設,但它對性能有些不利影響.在支持IOMMU的設備上,應該關閉它而是用IOMMU來代替.
Enable KSM for page merging
CONFIG_KSM
KSM(Kernel Samepage Merging)支持:週期性的掃描那些被應用程序標記爲"可合併"的地址空間,一旦發現有內容完全相同的頁面,就將它們合併爲同一個頁面,這樣就可以節約內存的使用,但對性能有不利影響.推薦和內核虛擬機KVM(Documentation/vm/ksm.txt)或者其他支持"MADV_MERGEABLE"特性的應用程序一起使用.KSM並不默認開啓,僅在應用程序設置了"MADV_MERGEABLE"標記,並且 /sys/kernel/mm/ksm/run 被設爲"1"的情況下才會生效.
Low address space to protect from user allocation
CONFIG_DEFAULT_MMAP_MIN_ADDR
2009年,內核曾經爆過一個嚴重的NULL指針漏洞,由於其根源是將NULL指針映射到地址"0"所致,所以從2.6.32版本以後,爲了防止此類漏洞再次造成嚴重後果,特別設置了此選項,用於指定受保護的內存低端地址範圍(可以在系統運行時通過 /proc/sys/vm/mmap_min_addr 進行調整),這個範圍內的地址禁止任何用戶態程序的寫入,以從根本上堵死此類漏洞可能對系統造成的損害.但內核這種強加的限制,對於需要使用vm86系統調用(用於在保護模式的進程中模擬8086的實模式)或者需要映射此低端地址空間的程序(bitbake,dosemu,qemu,wine,...)來說,則會造成不兼容,不過目前這些程序的新版本都進行了改進,以適應內核的這種保護.一般情況下,"4096"是個明智的選擇,或者你也可以保持默認值.
Enable recovery from hardware memory errors
CONFIG_MEMORY_FAILURE
在具備MCA(Machine Check Architecture)恢復機制的系統上,允許內核在物理內存中的發生數據錯誤的情況下,依然堅強的糾正錯誤並恢復正常運行.這需要有相應的硬件(通常是ECC內存)支持.有ECC內存的選,沒有的就別選了.
HWPoison pages injector
CONFIG_HWPOISON_INJECT
僅用於調試.
Transparent Hugepage Support
CONFIG_TRANSPARENT_HUGEPAGE
大多數現代計算機體系結構都支持多種不同的內存頁面大小(比如x86_64支持4K和2M以及1G[需要cpu-flags中含有"pdpe1gb"]).大於4K的內存頁被稱爲"大頁"(Hugepage).TLB(頁表緩存)是位於CPU內部的分頁表(虛擬地址到物理地址的映射表)緩衝區,既高速又很寶貴(尺寸很小).如果系統內存很大(大於4G)又使用4K的內存頁,那麼分頁表將會變得很大而難以在CPU內緩存,從而導致較高的TLB不命中概率,進而降低系統的運行效率.開啓大內存頁支持之後,就可以使用大頁(2M或1G),從而大大縮小分頁表的尺寸以大幅提高TLB的命中率,進而優化系統性能.傳統上使用大內存頁的方法是通過Hugetlbfs虛擬文件系統(CONFIG_HUGETLBFS),但是hugetlbfs需要專門進行配置以及應用程序的特別支持.所以從2.6.38版本開始引入了THP(Transparent Hugepages),目標是替代先前的Hugetlbfs虛擬文件系統(CONFIG_HUGETLBFS).THP允許內核在可能的條件下,透明的(對應用程序來說)使用大頁(huge pages)與HugeTLB,THP不像hugetlbfs那樣需要專門進行配置以及應用程序的特別支持.THP將這一切都交給操作系統來完成,也不再需要額外的配置,對於應用程序完全透明,因而可用於更廣泛的應用程序.這對於數據庫/KVM等需要使用大量內存的應用來說,可以提升其效能,但對於內存較小(4G或更少)的個人PC來說就沒啥必要了.詳見"Documentation/vm/transhuge.txt"文檔.
Transparent Hugepage Support sysfs defaults
設置 /sys/kernel/mm/transparent_hugepage/enabled 文件的默認值."always"表示總是對所有應用程序啓用透明大內存頁支持,"madvise"表示僅對明確要求該特性的程序啓用.建議選"always".
Cross Memory Support
CONFIG_CROSS_MEMORY_ATTACH
交叉內存支持,也就是process_vm_readv()和process_vm_writev()系統調用支持.從而允許有權限的進程直接讀取/寫入另外一個進程的地址空間.現在它們只用於openMPI快速進程通信,也可以用於調試程序.未來也許還會有其他用途.
Enable cleancache driver to cache clean pages if tmem is present
CONFIG_CLEANCACHE
Cleancache可以被看作是內存頁的"Victim Cache"(受害者緩存),當回收內存頁時,先不把它清空,而是把其加入到內核不能直接訪問的"transcendent memory"中,這樣支持Cleancache的文件系統再次訪問這個頁時可以直接從"transcendent memory"加載它,從而減少磁盤IO的損耗.目前只有zcacheXEN支持"transcendent memory",不過將來會有越來越多的應用支持.開啓此項後即使此特性不能得到利用,也僅對性能有微小的影響,所以建議開啓.更多細節請參考"Documentation/vm/cleancache.txt"文件.
Enable frontswap to cache swap pages if tmem is present
CONFIG_FRONTSWAP
Frontswap是和Cleancache非常類似的東西,在傳統的swap前加一道內存緩衝(同樣位於"transcendent memory"中).目的也是減少swap時的磁盤讀寫.CONFIG_ZSWAP依賴於它,建議開啓.
Compressed cache for swap pages
CONFIG_ZSWAP
ZSWAP是一個放置在swap前面的壓縮緩存,它可以將需要換出的頁壓縮存放在內存中的壓縮池裏,這樣在壓縮池沒有滿的時候,可以避免使用真正的swap設備.當壓縮池滿的時候,則把最老的頁解壓後寫入swap設備.壓縮池默認是內存總量的20%(/sys/module/zswap/parameters/max_pool_percent).ZSWAP不僅提升了swap的整體性能,也變相的增加了swap空間.選中此項後,可以通過"zswap.enabled=1"內核引導參數開啓此功能.
Memory allocator for compressed pages
CONFIG_ZSMALLOC
zsmalloc壓縮內存分配器主要用於給zram提供支持,建議與CONFIG_ZRAM同開關.參考:3種內存壓縮方案對比.
Use page table mapping to access object in zsmalloc
CONFIG_PGTABLE_MAPPING
zsmalloc默認使用基於內存複製的對象映射方法來訪問跨越不同頁面的區域,但如果某些架構(例如ARM)執行虛擬內存映射的速度快於內存複製,那麼應該將此項選"Y",這將導致zsmalloc使用頁表映射而不是內存複製來進行對象的映射.你可以在你的系統上使用"https://github.com/spartacus06/zsmapbench"腳本來測試這兩種方法的速度差異.在x86_64平臺上,UBUNTU此項默認選"Y",但作者本人未經實驗確認是否合理.
Check for low memory corruption
CONFIG_X86_CHECK_BIOS_CORRUPTION
低位內存髒數據檢查,即使開啓此選項,默認也不會開啓此功能(需要明確使用"memory_corruption_check=1"內核引導選項).這些髒數據通常被認爲是有bug的BIOS引起的,默認每60秒(可以通過memory_corruption_check_period內核參數進行調整)掃描一次0-64k(可以通過memory_corruption_check_size內核參數進行調整)之間的區域.這種檢查所佔用的開銷非常小,基本可以忽略不計.如果始終檢查到錯誤,則可以通過"memmap="內核引導參數來避免使用這段內存.一般沒必要選中,如果你對BIOS不放心,帶着它試運行一段時間,確認沒問題之後再去掉.
Set the default setting of memory_corruption_check
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
設置memory_corruption_check的默認值,選中表示默認開啓(相當於使用"memory_corruption_check=1"內核引導選項),不選中表示默認關閉.
Amount of low memory, in kilobytes, to reserve for the BIOS
CONFIG_X86_RESERVE_LOW
爲BIOS設置保留的低端地址(默認是64K).內存的第一頁(4K)存放的必定是BIOS數據,內核不能使用,所以必須要保留.但是有許多BIOS還會在suspend/resume/熱插拔等事件發生的時候使用更多的頁(一般在0-64K範圍),所以默認保留0-64K範圍.如果你確定自己的BIOS不會越界使用內存的話,可以設爲"4",否則請保持默認值.但是也有一些很奇葩的BIOS會使用更多的低位內存,這種情況下可以考慮設爲"640"以保留所有640K的低位內存區域.
MTRR (Memory Type Range Register) support
CONFIG_MTRR
MTRR(Memory type range registers)是CPU內的一組MSR(Model-specific registers),其作用是告訴CPU以哪種模式(write-back/uncachable)存取各內存區段效率最高.這對於AGP/PCI顯卡意義重大,因爲write-combining技術可以將若干個總線寫傳輸捆綁成一次較大的寫傳輸操作,可以將圖像寫操作的性能提高2.5倍或者更多.這段代碼有着通用的接口,其他CPU的寄存器同樣能夠使用該功能.簡而言之,開啓此選項是個明智的選擇.
MTRR cleanup support
CONFIG_MTRR_SANITIZER
MTRR cleanup的意思是將MTRR的連續輸出轉爲離散的輸出,這樣X驅動就可以在其中添加writeback項,算是一種優化措施.建議開啓.可以使用"mtrr_chunk_size"來限制最大的連續塊尺寸.
MTRR cleanup enable value (0-1)
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT
"1"表示默認開啓CONFIG_MTRR_SANITIZER特性,相當於使用"enable_mtrr_cleanup","0"表示默認關閉CONFIG_MTRR_SANITIZER特性,相當於使用"disable_mtrr_cleanup".建議設爲"1".
MTRR cleanup spare reg num (0-7)
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
這裏設定的值等價於使用內核引導參數"mtrr_spare_reg_nr=N"中的"N".也就是告訴內核reg0N可以被清理或改寫(參見"/proc/mtrr"文件).在多數情況下默認值是"1",其含義是 /proc/mtrr 中的 reg01 將會被映射.一般保持其默認值即可.修改此項的值通常是爲了解決某些MTRR故障.
x86 PAT support
CONFIG_X86_PAT
PAT(Page Attribute Table)是對MTRR的補充,且比MTRR更靈活.如果你的CPU支持PAT(grep pat /proc/cpuinfo),那麼建議開啓.僅在開啓後導致無法正常啓動或者顯卡驅動不能正常工作的情況下才需要關閉.
x86 architectural random number generator
CONFIG_ARCH_RANDOM
Intel 從 Ivy Bridge 微架構開始(對於Atom來說是從Silvermont開始),在CPU中集成了一個高效的硬件隨機數生成器(稱爲"Bull Mountain"技術),並引入了一個新的x86指令"RDRAND",可以非常高效的產生隨機數.此選項就是對此特性的支持.
Supervisor Mode Access Prevention
CONFIG_X86_SMAP
SMAP(Supervisor Mode Access Prevention)是Intel從Haswell微架構開始引入的一種新特徵,它在CR4寄存器上引入一個新標誌位SMAP,如果這個標誌爲1,內核訪問用戶進程的地址空間時就會觸發一個頁錯誤,目的是爲了防止內核因爲自身錯誤意外訪問用戶空間,這樣就可以避免一些內核漏洞所導致的安全問題.但是由於內核在有些時候仍然需要訪問用戶空間,因此intel提供了兩條指令STAC和CLAC用於臨時打開/關閉這個功能,反覆使用STAC和CLAC會帶來一些輕微的性能損失,但考慮到增加的安全性,還是建議開啓.
EFI runtime service support
CONFIG_EFI
EFI/UEFI支持.如果你打算在UEFI/EFI平臺上安裝Linux(2010年之後的機器基本都已經是UEFI規格了),那麼就必須開啓此項(開啓後也依然可以在傳統的BIOS機器上啓動).UEFI啓動流程與傳統的BIOS相差很大.雖然Linux受到了所謂"安全啓動"問題的阻撓(已經解決),但是UEFI依然將迅速一統江湖.[提示]在UEFI平臺上安裝Linux的關鍵之一是首先要用一個支持UEFI啓動的LiveCD以UEFI模式啓動機器.
EFI stub support
CONFIG_EFI_STUB
EFI stub 支持.如果開啓此項,就可以不通過GRUB2之類的引導程序來加載內核,而直接由EFI固件進行加載,這樣就可以不必安裝引導程序了.不過這是一個看上去很美的特性,由於EFI固件只是簡單的加載內核並運行,所以缺點有三:(1)不能在傳統的BIOS機器上啓動.(2)不能給內核傳遞引導參數.(3)不能使用intrd.不過,針對後兩點的解決辦法是:使用CONFIG_CMDLINE和CONFIG_INITRAMFS_SOURCE.更多細節可參考"Documentation/x86/efi-stub.txt"文檔.
Enable seccomp to safely compute untrusted bytecode
CONFIG_SECCOMP
允許使用SECCOMP技術安全地運算非信任代碼.通過使用管道或其他進程可用的通信方式作爲文件描述符(支持讀/寫調用),就可以利用SECCOMP把這些應用程序隔離在它們自己的地址空間.這是一種有效的安全沙盒技術.systemd也強烈建議開啓它.除非你是嵌入式系統,否則不要關閉.
Enable -fstack-protector buffer overflow detection
CONFIG_CC_STACKPROTECTOR
開啓GCC的"-fstack-protector"命令行選項,以使用GCC中的編譯器堆棧保護技術.這樣可以有效的防禦以堆棧溢出爲代表的緩衝區溢出攻擊,不過系統的運行速度也會受到一些影響.服務器之類強調安全的場合建議開啓,個人PC之類的就不是很有必要了.
Timer frequency
內核時鐘頻率.對於要求快速響應的場合,比如桌面環境,建議使用1000Hz,而對於不需要快速響應的SMP/NUMA服務器,建議使用250Hz或100Hz或300Hz(主要處理多媒體數據).
kexec system call
CONFIG_KEXEC
提供kexec系統調用,可以不必重啓而切換到另一個內核(不一定必須是Linux內核),不過這個特性並不總是那麼可靠.如果你不確定是否需要它,那麼就是不需要.
kernel crash dumps
CONFIG_CRASH_DUMP
當內核崩潰時自動導出運行時信息的功能,主要用於調試目的.更多信息請參考"Documentation/kdump/kdump.txt"文件.
kexec jump
CONFIG_KEXEC_JUMP
kexec jump 支持.這是對CONFIG_KEXEC的增強功能,僅在你確實明白這是幹啥的情況下再開啓,否則請關閉.
Physical address where the kernel is loaded
CONFIG_PHYSICAL_START
加載內核的物理地址.如果內核不是可重定位的(CONFIG_RELOCATABLE=n),那麼bzImage會將自己解壓到該物理地址並從此地址開始運行,否則,bzImage將忽略此處設置的值,而從引導裝載程序將其裝入的物理地址開始運行.僅在你確實知道自己是在幹什麼的情況下纔可以改變該值,否則請保持默認.
Build a relocatable kernel
CONFIG_RELOCATABLE
使內核可以在浮動的物理內存位置加載,主要用於調試目的.僅在你確實知道爲什麼需要的時候再開啓,否則請關閉.
Support for hot-pluggable CPUs
CONFIG_HOTPLUG_CPU
熱插拔CPU支持(通過 /sys/devices/system/cpu 進行控制).
Set default setting of cpu0_hotpluggable
CONFIG_BOOTPARAM_HOTPLUG_CPU0
開啓/關閉此項的意思是設置"cpu0_hotpluggable"的默認值爲"on/off".開啓此項表示默認將CPU0設置爲允許熱插拔.
Debug CPU0 hotplug
CONFIG_DEBUG_HOTPLUG_CPU0
僅用於調試目的.
Compat VDSO support
CONFIG_COMPAT_VDSO
是否將VDSO(Virtual Dynamic Shared Object)映射到舊式的確定性地址.如果Glibc版本大於等於2.3.3選"N",否則就選"Y".
Built-in kernel command line
CONFIG_CMDLINE_BOOL
將內核引導參數直接編進來.在無法向內核傳遞引導參數的情況下(比如在嵌入式系統上,或者想使用 EFI stub kernel),這就是唯一的救命稻草了.如果你使用grub之類的引導管理器,那麼就可以不需要此特性.
Built-in kernel command string
CONFIG_CMDLINE
將要編譯進內核的引導參數字符串.
Built-in command line overrides boot loader arguments
CONFIG_CMDLINE_OVERRIDE
開啓此項表示完全忽略引導加載器傳遞過來的參數,並僅僅只使用CONFIG_CMDLINE所指定的參數.通常情況下建議關閉此項,除非你確定引導加載器在傳遞內核引導參數的時候不能正常工作.

Power management and ACPI options
電源管理和ACPI選項

Suspend to RAM and standby
CONFIG_SUSPEND
"休眠到內存"(ACPI S3)支持.也就是系統休眠後,除了內存之外,其他所有部件都停止工作,重開機之後可以直接從內存中恢復運行狀態.要使用此功能,你需要執行"echo mem > /sys/power/state"命令,還需要在BIOS中開啓S3支持,否則可能會有問題.
Enable freezer for suspend to RAM/standby
CONFIG_SUSPEND_FREEZER
選"Y".除非你知道自己在做什麼
Hibernation (aka 'suspend to disk')
CONFIG_HIBERNATION
"休眠到硬盤"(ACPI S4)支持.也就是將內存的內容保存到硬盤(hibernation),所有部件全都停止工作.要使用此功能,你首先需要使用內核引導參數"resume=/dev/swappartition",然後執行"echo disk > /sys/power/state"命令.如果你不想從先前的休眠狀態中恢復,那麼可以使用"noresume"內核引導參數.更多信息,可以參考"Documentation/power/swsusp.txt"文件.
Default resume partition
CONFIG_PM_STD_PARTITION
默認的休眠分區.這個分區必須是swap分區.不過這裏設置的值會被明確的內核引導參數中的值覆蓋.
Opportunistic sleep
CONFIG_PM_AUTOSLEEP
這是一種從安卓借鑑過來的休眠方式.這個特性在安卓系統上被稱爲"suspend blockers"或"wakelocks".這是一種更激進的電源管理模式,以儘可能節約電力爲目的.系統默認就處於休眠狀態,僅爲內存和少數喚醒系統所必須的設備供電,當有任務(喚醒源)需要運行的時候才喚醒相關組件工作,工作完成後又立即進入休眠狀態.不過這些特性需要相應的設備驅動程序的支持.目前除了安卓設備,在PC和服務器領域,能夠利用此特性的驅動還比較少,不過這是一項非常有前途的電源技術,喜歡嚐鮮的可以考慮開啓.
User space wakeup sources interface
CONFIG_PM_WAKELOCKS
允許用戶空間的程序通過sys文件系統接口,創建/激活/撤銷系統的"喚醒源".需要與CONFIG_PM_AUTOSLEEP配合使用.
Maximum number of user space wakeup sources (0 = no limit)
CONFIG_PM_WAKELOCKS_LIMIT
用戶空間程序允許使用的"喚醒源"數量,"0"表示無限,最大值是"100000".
Garbage collector for user space wakeup sources
CONFIG_PM_WAKELOCKS_GC
對"喚醒源"對象使用垃圾回收.主要用於調試目的和Android環境.
Run-time PM core functionality
CONFIG_PM_RUNTIME
允許IO設備(比如硬盤/網卡/聲卡)在系統運行時進入省電模式,並可在收到(硬件或驅動產生的)喚醒信號後恢復正常.此功能通常需要硬件的支持.建議在筆記本/嵌入式等需要節約電力的設備上選"Y".
Power Management Debug Support
CONFIG_PM_DEBUG
僅供調試使用
Enable workqueue power-efficient mode by default
CONFIG_WQ_POWER_EFFICIENT_DEFAULT
因爲"per-cpu workqueue"的緩存更靠近對應的CPU,所以它比"unbound workqueue"擁有更好的性能,因此"per-cpu workqueue"首選的默認值.但另一方面"per-cpu workqueue"通常又比"unbound workqueue"需要消耗更多的電能.如果使用了"workqueue.power_efficient"內核引導參數,那麼將默認使用"unbound workqueue"而不是"per-cpu workqueue"以降低功耗,但是性能會有微小的損失.選中此項表示默認開啓"workqueue.power_efficient"內核引導參數.
ACPI (Advanced Configuration and Power Interface) Support
CONFIG_ACPI
高級配置與電源接口(Advanced Configuration and Power Interface)包括了軟件和硬件方面的規範,目前已被軟硬件廠商廣泛支持,並且取代了許多過去的配置與電源管理接口,包括 PnP BIOS (Plug-and-Play BIOS), MPS(CONFIG_X86_MPPARSE), APM(Advanced Power Management) 等.總之,ACPI已經成爲x86平臺必不可少的組件,如果你沒有特別的理由,務必選中此項.
Deprecated /proc/acpi files
CONFIG_ACPI_PROCFS
過時的 /proc/acpi 接口支持,建議關閉.
Deprecated power /proc/acpi directories
CONFIG_ACPI_PROCFS_POWER
過時的 /proc/acpi 接口支持,建議關閉.
EC read/write access through /sys/kernel/debug/ec
CONFIG_ACPI_EC_DEBUGFS
僅供調試使用.
Deprecated /proc/acpi/event support
CONFIG_ACPI_PROC_EVENT
過時的 /proc/acpi/event 接口支持,建議關閉.
AC Adapter
CONFIG_ACPI_AC
允許在外接交流電源和內置電池之間進行切換.
Battery
CONFIG_ACPI_BATTERY
允許通過 /proc/acpi/battery 接口查看電池信息.
Button
CONFIG_ACPI_BUTTON
允許守護進程通過 /proc/acpi/event 接口捕獲power/sleep/lid(合上筆記本)按鈕事件,並執行相應的動作,軟關機(poweroff)也需要它的支持.
Video
CONFIG_ACPI_VIDEO
對主板上的集成顯卡提供ACPI支持.注意:僅支持集成顯卡.
Fan
CONFIG_ACPI_FAN
允許用戶層的程序對風扇進行控制(開/關/查詢狀態)
Dock
CONFIG_ACPI_DOCK
支持兼容ACPI規範的擴展塢(比如 IBM Ultrabay 和 Dell Module Bay)支持.
Processor
CONFIG_ACPI_PROCESSOR
在支持 ACPI C2/C3 的CPU上,將ACPI安裝爲idle處理程序.有幾種CPU頻率調節驅動依賴於它.而且目前的CPU都已經支持ACPI規範,建議開啓此項.
IPMI
CONFIG_ACPI_IPMI
允許ACPI使用IPMI(智能平臺管理接口)的請求/應答消息訪問BMC(主板管理控制器).IPMI通常出現在服務器中,以允許通過諸如ipmitool這樣的工具監視服務器的物理健康特徵(溫度/電壓/風扇狀態/電源狀態).
Processor Aggregator
CONFIG_ACPI_PROCESSOR_AGGREGATOR
支持 ACPI 4.0 加入的處理器聚合器(processor Aggregator)功能,以允許操作系統對系統中所有的CPU進行統一的配置和控制.目前只支持邏輯處理器idling功能,其目標是降低耗電量.
Thermal Zone
CONFIG_ACPI_THERMAL
ACPI thermal zone 支持.系統溫度過高時可以及時調整工作狀態以避免你的CPU被燒燬.目前所有CPU都支持此特性.務必開啓.參見CONFIG_THERMAL選項.
NUMA support
CONFIG_ACPI_NUMA
通過讀取系統固件中的ACPI表,獲得NUMA系統的CPU及物理內存分佈信息.NUMA系統必選.
Custom DSDT Table file to include
CONFIG_ACPI_CUSTOM_DSDT_FILE
允許將一個定製過的DSDT編譯進內核.詳情參見"Documentation/acpi/dsdt-override.txt"文檔.看不懂的請保持空白.
ACPI tables override via initrd
CONFIG_ACPI_INITRD_TABLE_OVERRIDE
允許initrd更改 ACPI tables 中的任意內容. ACPI tables 是BIOS提供給OS的硬件配置數據,包括系統硬件的電源管理和配置管理.詳情參見"Documentation/acpi/initrd_table_override.txt"文件.
Debug Statements
CONFIG_ACPI_DEBUG
詳細的ACPI調試信息,不搞開發就別選.
PCI slot detection driver
CONFIG_ACPI_PCI_SLOT
將每個PCI插槽都作爲一個單獨的條目列在 /sys/bus/pci/slots/ 目錄中,有助於將設備的物理插槽位置與邏輯的PCI總線地址進行對應.不確定的選"No".
Power Management Timer Support
CONFIG_X86_PM_TIMER
ACPI PM Timer,簡稱"ACPI Timer",是一種集成在主板上的硬件時鐘發生器,提供3.579545MHz固定頻率.這是比較傳統的硬件時鐘發生器(HPET則是比較新型的硬件時鐘發生器),目前所有的主板都支持,而且是ACPI規範不可分割的部分.除非你確定不需要,否則必選.
Container and Module Devices
CONFIG_ACPI_CONTAINER
支持 NUMA節點/CPU/內存 的熱插拔. Device ID: ACPI0004, PNP0A05, PNP0A06
Memory Hotplug
CONFIG_ACPI_HOTPLUG_MEMORY
內存熱插拔支持. Device ID: PNP0C80
Smart Battery System
CONFIG_ACPI_SBS
智能電池系統(Smart Battery System)可以讓筆記型電腦顯示及管理詳細精確的電池狀態信息.使用鋰電池的筆記本電腦必備利器.但遺憾的是並不是所有筆記本都支持這項特性.
Hardware Error Device
CONFIG_ACPI_HED
Hardware Error Device (Device ID: PNP0C33) 能夠通過 SCI 報告一些硬件錯誤(通常是已經被糾正的錯誤).如果你的系統中有設備ID爲"PNP0C33"的設備(比如某些Intel芯片組),那麼就選上.
Allow ACPI methods to be inserted/replaced at run time
CONFIG_ACPI_CUSTOM_METHOD
允許在不斷電的情況下直接對ACPI的功能進行刪改,包含一定危險性,它允許root任意修改內存中內核空間的內容.僅用於調試.
Boottime Graphics Resource Table support
CONFIG_ACPI_BGRT
在 /sys/firmware/acpi/bgrt/ 中顯示 ACPI Boottime Graphics Resource Table ,以允許操作系統獲取固件中的啓動畫面(splash).
ACPI Platform Error Interface (APEI)
CONFIG_ACPI_APEI
高級平臺錯誤接口(ACPI Platform Error Interface)RAS(Reliability, Availability and Serviceability)的一部分,是定義在 ACPI 4.0 規範中的一個面向硬件錯誤管理的接口,主要是爲了統一 firmware/BIOS 和 OS 之間的錯誤交互機制,使用標準的錯誤接口進行管理,同時也擴展了錯誤接口的內容以便實現更加靈活豐富的功能.
APEI Generic Hardware Error Source
CONFIG_ACPI_APEI_GHES
"Firmware First Mode"支持.由於BIOS/FIRMWARE是平臺相關的,因此BIOS/FIRMWARE比OS更清楚硬件平臺的配置情況,甚至包含各種必須的修正/定製/優化.這樣,在"Firmware First"模式下,BIOS/FIRMWARE利用這一優勢,可以有針對性的對發生的硬件錯誤進行分析/處理/分發,也可以更準確的記錄錯誤的現場信息.這樣,不但對硬件錯誤可以做出更準確,更復雜的處理,而且可以降低OS的複雜性和冗餘度.建議開啓.
APEI PCIe AER logging/recovering support
CONFIG_ACPI_APEI_PCIEAER
讓 PCIe AER errors 首先通過 APEI firmware 進行報告.
APEI memory error recovering support
CONFIG_ACPI_APEI_MEMORY_FAILURE
讓 Memory errors 首先通過 APEI firmware 進行報告.
APEI Error INJection (EINJ)
CONFIG_ACPI_APEI_EINJ
僅供調試使用.
APEI Error Record Serialization Table (ERST) Debug Support
CONFIG_ACPI_APEI_ERST_DEBUG
僅供調試使用
SFI (Simple Firmware Interface) Support
CONFIG_SFI
簡單固件接口規範(Simple Firmware Interface)使用一種輕量級的簡單方法(通過內存中的一張靜態表格)從firmware向操作系統傳遞信息.目前這個規範僅用於第二代 Intel Atom 平臺,其核心名稱是"Moorestown".
CPU Frequency scaling
CONFIG_CPU_FREQ
CPUfreq子系統允許動態改變CPU主頻,達到省電和降溫的目的.現如今的CPU都已經支持動態頻率調整,建議開啓.不過,如果你是爲虛擬機編譯內核,就沒有必要開啓了,由宿主機內核去控制就OK了.
CPU frequency translation statistics
CONFIG_CPU_FREQ_STAT
通過sysfs文件系統輸出CPU頻率變化的統計信息
CPU frequency translation statistics details
CONFIG_CPU_FREQ_STAT_DETAILS
輸出更詳細的CPU頻率變化統計信息
Default CPUFreq governor
默認的CPU頻率調節策略.不同策略擁有不同的調節效果.
'performance' governor
CONFIG_CPU_FREQ_GOV_PERFORMANCE
'性能'優先,靜態的將頻率設置爲cpu支持的最高頻率.最耗電,發熱量最大,性能/效率比最低.不建議使用.
'powersave' governor
CONFIG_CPU_FREQ_GOV_POWERSAVE
'節能'優先,靜態的將頻率設置爲cpu支持的最低頻率,嚴重影響性能.此調控器事實上並不能節省電能,因爲系統需要花更長的時間才能進入空閒狀態(C1E,C3,C6).不建議使用.
'userspace' governor for userspace frequency scaling
CONFIG_CPU_FREQ_GOV_USERSPACE
既允許手動調整cpu頻率,也允許用戶空間的程序動態的調整cpu頻率(需要額外的調頻軟件).比較麻煩,不建議使用.
'ondemand' cpufreq policy governor
CONFIG_CPU_FREQ_GOV_ONDEMAND
'隨需應變',內核週期性的考察CPU負載,當CPU負載超過/低於設定的百分比閾值(/sys/devices/system/cpu/cpufreq/ondemand/up_threshold)時,就自動將cpu頻率設爲最高/最低值(也就是僅在最高和最低頻率間切換),比較適合臺式機.[優化建議]將"up_threshold"設爲95左右,可以獲得更高的"性能/瓦特"比.
'conservative' cpufreq governor
CONFIG_CPU_FREQ_GOV_CONSERVATIVE
'保守',和'ondemand'相似,內核同樣週期性的考察CPU負載,但是頻率的升降是漸變式的(通常只在相鄰的兩檔頻率間切換,但具體取決於"/sys/devices/system/cpu/cpufreq/conservative/freq_step"的百分比設置,設爲"100"則等價於僅允許在最高和最低頻率間切換):當CPU負載超過百分比上限(/sys/devices/system/cpu/cpufreq/conservative/up_threshold)時,就自動提升一檔CPU頻率;當CPU負載低於百分比下限(/sys/devices/system/cpu/cpufreq/conservative/down_threshold)時,就自動降低一檔CPU頻率.更適合用於筆記本/PDA/x86_64環境.[優化建議]'conservative'在默認設置下的"性能/瓦特"比通常不如'ondemand'優秀,但是優化設置之後情況則可能反轉.例如,在"down_threshold=93,up_threshold=97"的情況下,可以比"up_threshold=95"的'ondemand'略有優勢.
x86 CPU frequency scaling drivers
CPU頻率調節器驅動
Intel P state control
CONFIG_X86_INTEL_PSTATE
Intel CPU 的 P-state 驅動,面向"Sandy Bridge"/"Ivy Bridge"/"Haswell"或更新的CPU微架構,可以更好的支持"Turbo Boost 2.0"技術.
Processor Clocking Control interface driver
CONFIG_X86_PCC_CPUFREQ
PCC(Processor Clocking Control)接口支持.此種接口僅對某些HP Proliant系列服務器有意義.更多細節可以參考"Documentation/cpu-freq/pcc-cpufreq.txt"文件.
ACPI Processor P-States driver
CONFIG_X86_ACPI_CPUFREQ
這是首選的驅動(CONFIG_X86_INTEL_PSTATE也依賴於它),同時支持Intel和AMD的CPU.除非你的CPU實在太老,否則必選.
Legacy cpb sysfs knob support for AMD CPUs
CONFIG_X86_ACPI_CPUFREQ_CPB
爲了兼容舊的用戶空間程序而設置,建議關閉.
AMD Opteron/Athlon64 PowerNow!
CONFIG_X86_POWERNOW_K8
過時的驅動,僅爲老舊的K8核心的AMD處理器提供支持.K10以及更新的CPU應該使用CONFIG_X86_ACPI_CPUFREQ驅動.
AMD frequency sensitivity feedback powersave bias
CONFIG_X86_AMD_FREQ_SENSITIVITY
如果你使用 AMD Family 16h 或者更高級別的處理器,同時又使用"ondemand"頻率調節器,開啓此項可以更有效的進行頻率調節(在保證性能的前提下更節能).
Intel Enhanced SpeedStep (deprecated)
CONFIG_X86_SPEEDSTEP_CENTRINO
已被時代拋棄的驅動,僅對老舊的迅馳平臺 Intel Pentium M 或者 Intel Xeons 處理器有意義.
Intel Pentium 4 clock modulation
CONFIG_X86_P4_CLOCKMOD
已被時代拋棄的驅動,僅對支持老舊的Speedstep技術的 Intel Pentium 4 / XEON 處理器有意義.而且即便是在這樣的CPU上,因爲種種兼容性問題可能導致的不穩定,也不建議開啓.
CPU idle PM support
CONFIG_CPU_IDLE
CPU idle 指令支持,該指令可以讓CPU在空閒時"打盹"以節約電力和減少發熱.只要是支持ACPI的CPU就應該開啓.由於所有64位CPU都已支持ACPI,所以不必猶豫,開啓![提示]爲虛擬機編譯的內核就沒有必要開啓了,由宿主機內核去控制就OK了.
Support multiple cpuidle drivers
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS
允許CONFIG_CPU_IDLE爲每個不同的CPU使用不同的驅動.僅在你的系統由多個不同型號的CPU組成,並且具有不同的喚醒潛伏時間和狀態的時候才需要開啓.
Cpuidle Driver for Intel Processors
CONFIG_INTEL_IDLE
專用於Intel CPU的cpuidle驅動.而CONFIG_CPU_IDLE則是用於非Intel的CPU.
Memory power savings
內存節能
Intel chipset idle memory power saving driver
CONFIG_I7300_IDLE
在某些具備內存節能特性的intel服務器芯片組上,讓內存也可以在空閒時通過idle指令"打盹".這些芯片組必須具備 I/O AT 支持(例如 Intel 7300).同時內存也需要支持此特性.

Bus options (PCI etc.)
總線選項

PCI support
CONFIG_PCI
PCI是最重要的內部總線,不但PCI與PCI Express設備依賴於它,而且USB/IDE/SATA/SCSI/火線(IEEE 1394)/PCMCIA/CardBus等各種內部和外部總線也都依賴於它.所以必須選"Y",除非你知道自己在幹什麼.
Support mmconfig PCI config space access
CONFIG_PCI_MMCONFIG
允許通過mmconfig方式訪問PCI config space,這種訪問方式比傳統的IO方式速度更快.建議開啓.MMCONFIG的意思是"Memory-Mapped config",它是PCI Express引入的新總線枚舉方式.背景知識:PCI設備都有一組叫做'Configuration Space'的寄存器,PCI-E設備在PCI的基礎上又增加了一組叫做'Extended Configuration Space'的寄存器.這些寄存器都被映射到了內存中(Memory-Mapped),操作系統理應提供相應的API供設備驅動和診斷程序訪問這些'Configuration Space'.但如果操作系統沒有提供Memory-Mapped方式的API的話,這些驅動程序和診斷程序就必須自己根據操作系統的底層規則(IO方式)去訪問,這顯然就增加了開發難度.這個選項的目的就是提供Memory-Mapped方式的API.
Read CNB20LE Host Bridge Windows
CONFIG_PCI_CNB20LE_QUIRK
CNB20LE芯片組PCI熱插拔支持.除非你非常明確的知道你需要它,否則請關閉此項.
PCI Express support
CONFIG_PCIEPORTBUS
PCI Express是PCI的升級版並在軟件層與PCI兼容,其目標是統一電腦內部總線.基本上只要不是古董機,都早已支持PCI-E了.選"Y".
PCI Express Hotplug driver
CONFIG_HOTPLUG_PCI_PCIE
如果你的主板和設備都支持PCI Express熱插拔就可以選上.
Root Port Advanced Error Reporting support
CONFIG_PCIEAER
PCI Express Root Port Advanced Error Reporting (AER) 驅動支持.這樣,發送到 Root Port 的 Error reporting messages 就會由 PCI Express AER 處理.建議開啓.背景知識:PCI Express 定義了兩種錯誤報告範例:(1)baseline,所有PCI-E組件都必須要支持,功能也比較基礎.(2)AER(Advanced Error Reporting),功能比較高級,也更可靠,但並不要求所有組件都支持.
PCI Express ECRC settings control
CONFIG_PCIE_ECRC
允許覆寫firmware/bios設置的 PCI Express ECRC(端對端循環冗餘校驗).建議關閉,除非你確實知道爲什麼要開啓.
PCIe AER error injector support
CONFIG_PCIEAER_INJECT
允許 PCI-E AER 注入,僅用於測試目的.
PCI Express ASPM control
CONFIG_PCIEASPM
PCI Express ASPM(Active State Power Management) 和 Clock Power Management 支持.這是PCI-E規範制定的一種電源管理方案,可以在設備空閒時採用節電模式.建議開啓.ASPM可以在運行時通過 /sys/module/pcie_aspm/parameters/policy 進行開啓或關閉.
Debug PCI Express ASPM
CONFIG_PCIEASPM_DEBUG
僅供調試.
Default ASPM policy
默認的ASPM電源管理策略.下面的三個選項:"BIOS default"表示使用BIOS中的設置作爲默認."Powersave"表示在可能的情況下,默認使用"L0s"和"L1",以儘可能節約電力."Performance"表示禁止使用"L0s"和"L1"(即使BIOS開啓也同樣禁止),以保證最高性能.
Message Signaled Interrupts (MSI and MSI-X)
CONFIG_PCI_MSI
PCI/PCI-E支持三類中斷:(1)INTx使用傳統的IRQ中斷,可以與現行的驅動程序和操作系統兼容.(2)MSI是PCI2.2規範中新增的,通過寫入特殊的內存地址來觸發和發送中斷,該種方式脫離了中斷引腳帶來的數目限制,並且延遲小/效率高.不過MSI方式將中斷全部落在單個CPU上,對多核CPU利用不佳.(3)MSI-X是在PCI3.0規範中新增的,在MSI的基礎上,支持更多的消息數量以及獨立的消息地址,可以自動在多個CPU上分擔中斷,更適合多CPU系統.建議開啓.開啓後,也可以使用"pci=nomsi"內核引導參數關閉MSI特性.
PCI Debugging
CONFIG_PCI_DEBUG
將PCI調試信息輸出到系統日誌裏.如果你想診斷PCI設備的故障,可以開啓,否則應該關閉.
Enable PCI resource re-allocation detection
CONFIG_PCI_REALLOC_ENABLE_AUTO
讓內核自動檢測"是否需要重新分配PCI資源".即使此項已開啓,你依然可以用"pci=realloc=[on|off]"來覆蓋它.此項僅在已開啓CONFIG_PCI_IOV的情況下才有意義.此時,如果BIOS沒有爲SR-IOV(Single-Root I/O Virtualization) BAR(基地址寄存器)分配資源,那麼內核將會自動對PCI資源進行重新分配.建議與CONFIG_PCI_IOV同開關.
PCI Stub driver
CONFIG_PCI_STUB
PCI Stub driver 的作用是將PCI設備跟目前綁定的驅動分離,暫時由其接管,最後再交給虛擬機自己去驅動這個PCI設備.
Xen PCI Frontend
CONFIG_XEN_PCIDEV_FRONTEND
如果你使用XEN的半虛擬化技術,並且你的硬件支持IOMMU,那麼可以開啓此項,否則應該關閉.
Interrupts on hypertransport devices
CONFIG_HT_IRQ
允許本地的HyperTransport設備使用中斷.這個一般用於AMD平臺,Intel平臺不支持這個.
PCI IOV support
CONFIG_PCI_IOV
PCI I/O Virtualization支持.這需要硬件支持IOMMU技術(AMD-Vi,Intel VT-d).
PCI PRI support
CONFIG_PCI_PRI
PCI Page Request Interface 支持.它允許IOMMU之後的設備能夠從頁錯誤中恢復過來.這需要硬件支持IOMMU技術(AMD-Vi,Intel VT-d).
PCI PASID support
CONFIG_PCI_PASID
PASID(Process Address Space Identifiers)可以被PCI設備用來同時訪問多個IO地址空間.這需要硬件支持IOMMU技術(AMD-Vi,Intel VT-d).
PCI IO-APIC hotplug support
CONFIG_PCI_IOAPIC
PCI IO-APIC 熱插拔支持.
ISA-style DMA support
CONFIG_ISA_DMA_API
ISA-style DMA控制器支持.目前基本只有LPC總線設備需要使用,最常見的是串口,並口,PS/2鍵盤,Super I/O芯片(可以使用Superiotoolsensors-detect工具檢測).不確定的選"Y".[說明]這是一個歷史遺留問題,對於ISA架構,DMA操作是由一個專用的"DMA控制器"(最常見的是Intel 8237)來執行的,但是到了PCI架構,由於每一個PCI設備都可以控制PCI總線(成爲"bus master")並直接讀寫系統內存,所以"DMA控制器"又消失了.此選項只是爲那些需要"ISA-DMA控制器"的設備提供了兼容性接口(API)而已.
PCCard (PCMCIA/CardBus) support
CONFIG_PCCARD
PCCard(PCMCIA/CardBus/ExpressCard)接口通常出現在筆記本電腦上,這些接口卡通常大小與信用卡差不多,厚度大約3-5毫米.注意:必須要配合pcmciautils工具才能正常使用PCMCIA設備.
16-bit PCMCIA support
CONFIG_PCMCIA
老舊的 16-bit PCMCIA 卡支持
Load CIS updates from userspace
CONFIG_PCMCIA_LOAD_CIS
有些PCMCIA卡需要從用戶空間更新CIS(Card Information Structure)之後才能正常工作.開啓此項後,內核將可以使用內置的固件加載器和熱插拔子系統自動加載CIS,而不再需要用戶空間工具的輔助.建議選"Yes".
32-bit CardBus support
CONFIG_CARDBUS
常見的PCMCIA卡基本上都是32位的CardBusExpressCard設備.如果你有這樣的卡,就選"Yes".由於絕大多數的卡都是"yenta-compatible"的,所以一般你還需要選中CONFIG_YENTA項.
CardBus yenta-compatible bridge support
CONFIG_YENTA
使用PCMCIA卡的基本上都需要選擇這一項,子項是一些擁有自己特定擴展的硬件,請按實際情況選擇.
{省略的部分請按照自己實際使用的PCMCIA卡選擇}
Support for PCI Hotplug
CONFIG_HOTPLUG_PCI
PCI熱插拔不僅僅針對PCI和PCI-E設備,也包括CardBusExpressCard設備.請按需選擇.
{省略的部分請按照自己實際使用PCI控制器進行選擇}
RapidIO support
CONFIG_RAPIDIO
RapidIO總線支持.這種總線主要用於嵌入式系統.
Discovery timeout duration (seconds)
CONFIG_RAPIDIO_DISC_TIMEOUT
等待主機完成枚舉(也就是初始化)的超時秒數.
Enable RapidIO Input/Output Ports
CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS
開啓所有 RapidIO Input/Output 端口.
DMA Engine support for RapidIO
CONFIG_RAPIDIO_DMA_ENGINE
使用DMA引擎(CONFIG_DMADEVICES)進行RapidIO數據傳輸
RapidIO subsystem debug messages
CONFIG_RAPIDIO_DEBUG
將RapidIO調試信息輸出到系統日誌裏.如果你想診斷RapidIO設備的故障,可以開啓,否則應該關閉.
{省略的部分請按照自己實際使用的控制器進行選擇}
Mark VGA/VBE/EFI FB as generic system framebuffer
CONFIG_X86_SYSFB
此選項的主要是爲simplefb(可作爲VGA/VBE/EFI FB的單一替代品通用於BIOS和UEFI平臺)提供支持,僅在你確實需要開啓CONFIG_FB_SIMPLE選項時才需要選"Y",否則請選"N".

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

Kernel support for ELF binaries
CONFIG_BINFMT_ELF
ELF是最常用的跨平臺二進制文件格式,支持動態連接,支持不同的硬件平臺,支持不同的操作系統.必選,除非你知道自己在做什麼.
Write ELF core dumps with partial segments
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
如果你打算在此Linux上開發應用程序或者幫助別人調試bug,那麼就選"Y",否則選"N".注意這裏的調試和開發不是指內核調試和開發,是應用程序的調試和開發.
Kernel support for scripts starting with #!
CONFIG_BINFMT_SCRIPT
支持以"#!/path/to/interpreter"行開頭的腳本.務必"Y",不要"M"或"N",除非你知道自己在做什麼.
Kernel support for MISC binaries
CONFIG_BINFMT_MISC
允許插入二進制封裝層到內核中,運行Java,.NET(Mono-based),Python,Emacs-Lisp等語言編寫的程序時需要它,DOSEMU也需要它.想要更方便的使用此特性,你還需要使用"mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc"掛載binfmt_misc僞文件系統.具體詳情可以參考"Documentation/binfmt_misc.txt"文檔.
Enable core dump support
CONFIG_COREDUMP
核心轉儲(core dump)支持.如果你打算在此Linux上開發應用程序或者幫助別人調試bug,那麼就選"Y",否則選"N".注意這裏的調試和開發不是指內核調試和開發,是應用程序的調試和開發.
IA32 Emulation
CONFIG_IA32_EMULATION
允許在64位內核中運行32位代碼.除非你打算使用純64位環境,否則請開啓此項.提示:GRUB2支持引導純64位內核,但是GRUB不支持.
IA32 a.out support
CONFIG_IA32_AOUT
早期UNIX系統的可執行文件格式(32位),目前已經被ELF格式取代.除非你需要使用古董級的二進制程序.否則請關閉.
x32 ABI for 64-bit mode
CONFIG_X86_X32
允許32位程序使用完整的64位寄存器,以減小內存佔用(memory footprint).這可以提高32位程序的運行性能.如果你使用binutils-2.22以上的版本(支持elf32_x86_64),就選"Y",否則選"N".

Networking support
網絡支持

Networking options
CONFIG_NET
網絡選項.systemd依賴於它
Packet socket
CONFIG_PACKET
鏈路層PF_PACKET套接字支持.可以讓應用程序(比如:抓包工具tcpdump, DHCP客戶端dhclient)直接與網絡設備通訊,而無需使用內核中的其它中介協議.不確定的選"Y"或"M".
Packet: sockets monitoring interface
CONFIG_PACKET_DIAG
PF_PACKET套接字監控接口,ss這樣的診斷工具需要它.
Unix domain sockets
CONFIG_UNIX
Unix domain sockets 支持.許多程序都使用它在操作系統內部進行進程間通信(IPC),比如: X Window, syslog, udev 等等.選"Y",除非你確實知道自己在做什麼.
UNIX: socket monitoring interface
CONFIG_UNIX_DIAG
UNIX套接字監控接口,ss這樣的工具需要它.
Transformation user configuration interface
CONFIG_XFRM_USER
IPsec相關的工具提供Transformation(XFRM)用戶配置接口
Transformation sub policy support
CONFIG_XFRM_SUB_POLICY
XFRM子策略支持,不確定的選"N".
Transformation migrate database
CONFIG_XFRM_MIGRATE
用於動態的更新 IPsec SA(security association) 的定位器(locator).這個特性對於手機這類移動設備來講至關重要,因爲它需要在不同的基站之間遷移.不確定的選"N".
Transformation statistics
CONFIG_XFRM_STATISTICS
轉換統計,這不是SNMP/MIB規範的內容.用於調試目的.不確定的選"N".
PF_KEY sockets
CONFIG_NET_KEY
PF_KEYv2 套接字支持(與KAME兼容).PF_KEY協議族主要用來處理SA(安全關聯),對SADB(SA數據庫)進行管理,主要用在IPsec協議中.PF_KEY_v2的編程APIRFC2367中定義.
PF_KEY MIGRATE
CONFIG_NET_KEY_MIGRATE
向PF_KEYv2套接字中添加一個 PF_KEY MIGRATE 消息. PF_KEY MIGRATE 消息可用於動態的更新 IPsec SA(security association) 的定位器(locator).這個特性對於手機這類移動設備來講至關重要,因爲它需要在不同的基站之間遷移.不確定的選"N".
TCP/IP networking
CONFIG_INET
TCP/IP協議,必選!
IP: multicasting
CONFIG_IP_MULTICAST
IP組播(IP multicasting)支持.指的是一個發送者向一組特定的接收者發送數據,但只需發送一份數據副本.實際應用的場合很少,MBONE算是其中之一,與RTP等音視頻協議相結合也算一種.不確定的選"N".
IP: advanced router
CONFIG_IP_ADVANCED_ROUTER
高級路由支持,需要開啓內核的IP轉發功能(echo 1 > /proc/sys/net/ipv4/ip_forward)才能正常工作.如果這個Linux系統用作專業的路由器就選上,選上之後還需要按需選擇其下的子項.一般的主機不需要這個.
FIB TRIE statistics
CONFIG_IP_FIB_TRIE_STATS
主要用於測試TRIE性能
IP: policy routing
CONFIG_IP_MULTIPLE_TABLES
策略路由
IP: equal cost multipath
CONFIG_IP_ROUTE_MULTIPATH
用於基於目的地址的負載均衡
IP: verbose route monitoring
CONFIG_IP_ROUTE_VERBOSE
顯示冗餘的路由監控信息
IP: kernel level autoconfiguration
CONFIG_IP_PNP
在內核啓動時自動配置網卡的ip地址/路由表,配置信息來自於以下途徑:內核引導參數,自舉協議(BOOTP),反向地址轉換協議(RARP),動態主機配置協議(DHCP).通常,需要從網絡啓動的無盤工作站才需要這個東西(此時還需要開啓CONFIG_ROOT_NFS),一般的發行版都通過啓動腳本(dhcpcd/dhclient/ifconfig)配置網絡.不確定的選"N".
IP: DHCP support
CONFIG_IP_PNP_DHCP
DHCP協議支持
IP: BOOTP support
CONFIG_IP_PNP_BOOTP
BOOTP協議支持
IP: RARP support
CONFIG_IP_PNP_RARP
RARP協議支持
IP: tunneling
CONFIG_NET_IPIP
IP隧道,主要目的是爲了在TCP/IP網絡中傳輸其他協議的數據包,當然也包括IP數據包(例如用於實現VPN).
IP: GRE demultiplexer
CONFIG_NET_IPGRE_DEMUX
GRE demultiplexer 支持.被CONFIG_NET_IPGRE和CONFIG_PPTP所依賴.
IP: GRE tunnels over IP
CONFIG_NET_IPGRE
基於IP的通用路由封裝(Generic Routing Encapsulation)隧道支持.該驅動主要用於對端是Cisco路由器的場合,因爲Cisco的路由器特別偏好GRE隧道(而不是CONFIG_NET_IPIP),並且GRE還允許通過隧道對組播進行再分發.
IP: broadcast GRE over IP
CONFIG_NET_IPGRE_BROADCAST
GRE/IP的一種應用是構建一個廣播WAN(Wide Area Network),而其看上去卻很像一個跑在互聯網上的LAN(Local Area Network).如果你想要創建這樣的網絡,那麼就選"Y"(還要加上CONFIG_IP_MROUTE).
IP: multicast routing
CONFIG_IP_MROUTE
組播路由支持.實際應用的場合很少,MBONE算是其中之一,不確定的選"N".
IP: multicast policy routing
CONFIG_IP_MROUTE_MULTIPLE_TABLES
通常,組播路由器上會運行一個單獨的用戶態守護進程,根據源地址和目的地址來處理數據包.開啓此項後,將能同時考慮數據包所帶的標記(mark)和所通過的網絡接口,並可在用戶空間同時運行多個守護進程,每一個進程處理一張路由表.
IP: PIM-SM version 1 support
CONFIG_IP_PIMSM_V1
Sparse Mode PIM (Protocol Independent Multicast) version 1 支持. 該協議被Cisco路由器廣泛支持,你需要特定的軟件(pimd-v1)才能使用它.
IP: PIM-SM version 2 support
CONFIG_IP_PIMSM_V2
Sparse Mode PIM (Protocol Independent Multicast) version 2 支持. 該協議的使用並不廣泛,你需要特定的軟件(pimd 或 gated-5)才能使用它.
IP: ARP daemon support
CONFIG_ARPD
通常情況下,內核自身會使用ARP協議解析本地網絡中的IP地址與MAC地址的對應關係,並進行緩存.開啓此項後,內核將使用用戶空間的守護進程進行ARP解析.這主要是爲了使用其他的替代解析協議(比如mGRE隧道中的NHRP),或調試目的.不確定的選"N".
IP: TCP syncookie support
CONFIG_SYN_COOKIES
TCP syncookie 支持,這是抵抗SYN flood攻擊的好東西.此特性的開關可以通過"/proc/sys/net/ipv4/tcp_syncookies"文件控制,寫入"1"表示開啓,寫入"0"表示關閉.建議服務器環境開啓此項.
Virtual (secure) IP: tunneling
CONFIG_NET_IPVTI
虛擬IP隧道.可以和xfrm隧道一起使用,以實現IPSEC安全隧道,並在其上使用路由協議.不確定的選"N".
IP: AH transformation
CONFIG_INET_AH
IPsec AH 支持.IPsec驗證頭(AH)可對整個數據包(IP報頭與數據)提供身份驗證/完整性/抗重播保護.但是它不提供保密性,即它不對數據進行加密.由於這個原因,AH頭正在慢慢被ESP頭取代.
IP: ESP transformation
CONFIG_INET_ESP
IPsec ESP 支持.IPsec封裝安全負載(ESP)不僅爲IP負載提供身份驗證/完整性/抗重播保護,還提供保密性,也就是還對數據進行加密.ESP有兩種使用模式:傳輸模式(ESP不對整個數據包進行簽名,只對IP負載(不含IP報頭)進行保護)和隧道模式(將原始IP包封裝進新的帶有ESP頭的IP包內,可提供完整的保護).ESP可以獨立使用,也可與AH組合使用(越來越少).
IP: IPComp transformation
CONFIG_INET_IPCOMP
IP靜荷載壓縮協議(IP Payload Compression Protocol)(RFC3173)支持.用於支持IPsec
IP: IPsec transport mode
CONFIG_INET_XFRM_MODE_TRANSPORT
IPsec傳輸模式.常用於對等通信,用以提供內網安全.數據包經過了加密但IP頭沒有加密,因此任何標準設備或軟件都可查看和使用IP頭
IP: IPsec tunnel mode
CONFIG_INET_XFRM_MODE_TUNNEL
IPsec隧道模式.用於提供外網安全(包括虛擬專用網絡).整個數據包(數據頭和負載)都已經過加密處理且分配有新的ESP頭/IP頭/驗證尾,從而能夠隱藏受保護站點的拓撲結構
IP: IPsec BEET mode
CONFIG_INET_XFRM_MODE_BEET
IPsec BEET模式.
Large Receive Offload (ipv4/tcp)
CONFIG_INET_LRO
LRO(Large Receive Offload) (ipv4/tcp) 支持.它通過將多個TCP數據整合在一個skb結構中,並在稍後的某個時刻作爲一個大的數據包交付給上層的網絡協議棧,以減少上層協議棧處理skb的開銷,提高Linux系統接收TCP數據包的能力.目前,主流網卡驅動都已支持此特性.建議開啓.不過,LRO不應該在路由器上開啓,因爲它破壞了end-to-end原則,並會對路由性能造成顯著的不利影響.
INET: socket monitoring interface
CONFIG_INET_DIAG
INET(TCP,DCCP,...) socket 監視接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它
UDP: socket monitoring interface
CONFIG_INET_UDP_DIAG
UDP socket 監視接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它
TCP: advanced congestion control
CONFIG_TCP_CONG_ADVANCED
高級擁塞控制,子項提供多種擁塞控制算法供選用.如果沒有特殊需求就別選了,內核會自動將默認的擁塞控制設爲"CUBIC"並將"new Reno"作爲候補.僅在你確實知道自己需要的情況下選"Y".不確定的選"N".
TCP: MD5 Signature Option support (RFC2385)
CONFIG_TCP_MD5SIG
RFC2385中描述了一種對TCP會話進行MD5簽名的保護機制.目前僅用於保護互聯網運營商骨幹路由器間的BGP會話.一般的路由器/服務器等設備根本不需要這個.
The IPv6 protocol
CONFIG_IPV6
引領未來的IPv6支持.
IPv6: Privacy Extensions (RFC 3041) support
CONFIG_IPV6_PRIVACY
IPv6利用"Stateless Address Autoconfiguration"在無DHCP服務器的情況下,產生可用的"臨時IPv6地址".而本選項則爲這個機制增加"隱私擴展"(RFC4941)保護.默認狀態下,內核並不生產"臨時地址",需要"echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr"才能開啓
IPv6: Router Preference (RFC 4191) support
CONFIG_IPV6_ROUTER_PREF
主機連上IPv6網絡後,會發出路由器邀請包(Router Solicitation),路由器則應答路由器公告包(Router Advertisement),其中包含網關地址/IPv6前綴/DNS地址,這樣主機就能取得IPv6地址,並連接到互聯網上,這就是無狀態地址自動分配(StateLess Address AutoConfiguration)."Router Preference"是"Router Advertisement"包的可選擴展.它可以改進主機選中路由器的能力,特別是在多歸屬(multi-homed)網絡中.不確定的選"N".
IPv6: Route Information (RFC 4191) support
CONFIG_IPV6_ROUTE_INFO
對"Route Information"的實驗性支持.
IPv6: Enable RFC 4429 Optimistic DAD
CONFIG_IPV6_OPTIMISTIC_DAD
樂觀重複地址檢測(Optimistic Duplicate Address Detection)的實驗性支持.可以更快的進行自動地址配置.不確定的選"N".
IPv6: AH transformation
CONFIG_INET6_AH
IPsec AH 支持.不確定的選"Y"或"M".AH頭正在慢慢被ESP頭取代.
IPv6: ESP transformation
CONFIG_INET6_ESP
IPsec ESP 支持.不確定的選"Y"或"M".
IPv6: IPComp transformation
CONFIG_INET6_IPCOMP
IPv6靜荷載壓縮協議(IP Payload Compression Protocol)(RFC3173)支持.用於支持IPsec.不確定的選"Y"或"M".
IPv6: Mobility
CONFIG_IPV6_MIP6
移動IPv6(RFC3775)支持.主要用於移動設備.不確定的選"N".
IPv6: IPsec transport mode
CONFIG_INET6_XFRM_MODE_TRANSPORT
IPsec傳輸模式.常用於對等通信,用以提供內網安全.數據包經過了加密但IP頭沒有加密,因此任何標準設備或軟件都可查看和使用IP頭.不確定的選"Y"或"M".
IPv6: IPsec tunnel mode
CONFIG_INET6_XFRM_MODE_TUNNEL
IPsec隧道模式.用於提供外網安全(包括虛擬專用網絡).整個數據包(數據頭和負載)都已經過加密處理且分配有新的ESP頭/IP頭/驗證尾,從而能夠隱藏受保護站點的拓撲結構.不確定的選"Y"或"M".
IPv6: IPsec BEET mode
CONFIG_INET6_XFRM_MODE_BEET
IPsec BEET模式.不確定的選"Y"或"M".
IPv6: MIPv6 route optimization mode
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION
移動IPv6(Mobile IPv6)路由優化模式.主要用於移動設備.不確定的選"N".
IPv6: IPv6-in-IPv4 tunnel (SIT driver)
CONFIG_IPV6_SIT
在IPv4網絡上建立IPv6隧道.如果你希望可以通過IPv4網絡接入一個IPv6網絡,可以選"Y"或"M",否則選"N".
IPv6: IPv6 Rapid Deployment (6RD)
CONFIG_IPV6_SIT_6RD
IPv6快速部署(6RD)支持.不確定的選"N".
IPv6: IP-in-IPv6 tunnel (RFC2473)
CONFIG_IPV6_TUNNEL
IPv6-in-IPv6/IPv4-in-IPv6 隧道(RFC2473)支持.不確定的選"N".
IPv6: GRE tunnel
CONFIG_IPV6_GRE
基於IPv6的通用路由封裝(Generic Routing Encapsulation)隧道支持.該驅動主要用於對端是Cisco路由器的場合,因爲Cisco的路由器特別偏好GRE隧道(而不是CONFIG_IPV6_TUNNEL),並且GRE還允許通過隧道對組播進行再分發.
IPv6: Multiple Routing Tables
CONFIG_IPV6_MULTIPLE_TABLES
多重路由表(Multiple Routing Tables)支持.不確定的選"N".
IIPv6: source address based routing
CONFIG_IPV6_SUBTREES
允許根據源地址或前綴進行路由.不確定的選"N".
IPv6: multicast routing
CONFIG_IPV6_MROUTE
測試性的IPv6組播路由支持.實際應用的場合很少,不確定的選"N".
IPv6: multicast policy routing
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES
通常,組播路由器上會運行一個單獨的用戶態守護進程,根據源地址和目的地址來處理數據包.開啓此項後,將能同時考慮數據包所帶的標記(mark)和所通過的網絡接口,並可在用戶空間同時運行多個守護進程,每一個進程處理一張路由表.
IPv6: PIM-SM version 2 support
CONFIG_IPV6_PIMSM_V2
IPv6 PIM multicast routing protocol PIM-SMv2 支持.
NetLabel subsystem support
CONFIG_NETLABEL
NetLabel子系統支持.NetLabel子系統爲諸如CIPSO與RIPSO之類能夠在分組信息上添加標籤的協議提供支持,看不懂就別選了.
Security Marking
CONFIG_NETWORK_SECMARK
對網絡包進行安全標記,類似於nfmark,但主要是爲安全目的而設計.看不懂的就別選了
Timestamping in PHY devices
CONFIG_NETWORK_PHY_TIMESTAMPING
允許在硬件支持的前提下,爲物理層(PHY)數據包打上時間戳.這會略微增加發送與接收的開銷.不確定的選"N".
Network packet filtering framework (Netfilter)
CONFIG_NETFILTER
Netfilter可以對數據包進行過濾和修改,可以作爲防火牆("packet filter"或"proxy-based")或網關(NAT)或代理(proxy)或網橋使用.
Network packet filtering debugging
CONFIG_NETFILTER_DEBUG
僅供開發者調試Netfilter使用
Advanced netfilter configuration
CONFIG_NETFILTER_ADVANCED
選"Y"將會顯示所有模塊供用戶選擇,選"N"則會隱藏一些不常用的模塊,並自動將常用模塊設爲"M".
Bridged IP/ARP packets filtering
CONFIG_BRIDGE_NETFILTER
如果你希望使用橋接防火牆就打開它.不確定的選"N".
Core Netfilter Configuration
核心Netfilter配置(當包流過Chain時如果match某個規則那麼將由該規則的target來處理,否則將由同一個Chain中的下一個規則進行匹配,若不match所有規則那麼最終將由該Chain的policy進行處理)
Netfilter NFACCT over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_ACCT
允許通過NFNETLINK接口支持NFACCT(記賬).
Netfilter NFQUEUE over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_QUEUE
允許通過NFNETLINK接口支持NFQUEUE(排隊).
Netfilter LOG over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_LOG
允許通過NFNETLINK接口支持"LOG"(日誌).該選項廢棄了ipt_ULOG和ebg_ulog機制,並打算在將來廢棄基於syslog的ipt_LOG和ip6t_LOG模塊.
Netfilter connection tracking support
CONFIG_NF_CONNTRACK
連接追蹤(connection tracking)支持,連接跟蹤把所有連接都保存在一個表格內,並將每個包關聯到其所屬的連接.可用於報文僞裝或地址轉換,也可用於增強包過濾能力.
Connection mark tracking support
CONFIG_NF_CONNTRACK_MARK
允許對連接進行標記,與針對單獨的包進行標記的不同之處在於它是針對連接流的. CONNMARK target 和 connmark match 需要它的支持.
Connection tracking security mark support
CONFIG_NF_CONNTRACK_SECMARK
允許對連接進行安全標記,通常這些標記包(SECMARK)複製到其所屬連接(CONNSECMARK),再從連接複製到其關聯的包(SECMARK).
Connection tracking zones
CONFIG_NF_CONNTRACK_ZONES
"conntrack zones"支持.通常,每個連接需要一個全局唯一標示符,而"conntrack zones"允許在不同zone內的連接使用相同的標識符.
Supply CT list in procfs (OBSOLETE)
CONFIG_NF_CONNTRACK_PROCFS
已被廢棄,選"N".
Connection tracking events
CONFIG_NF_CONNTRACK_EVENTS
連接跟蹤事件支持.如果啓用這個選項,連接跟蹤代碼將提供一個"notifier"鏈,它可以被其它內核代碼用來獲知連接跟蹤狀態的改變
Connection tracking timeout
CONFIG_NF_CONNTRACK_TIMEOUT
連接跟蹤"timeout"擴展.這樣你就可以在網絡流上通過 CT target 附加超時策略.
Connection tracking timestamping
CONFIG_NF_CONNTRACK_TIMESTAMP
時間戳支持.這樣你就能在連接建立和斷開時打上時間戳.
DCCP protocol connection tracking support
CONFIG_NF_CT_PROTO_DCCP
DCCP協議支持.
SCTP protocol connection tracking support
CONFIG_NF_CT_PROTO_SCTP
SCTP協議支持.
UDP-Lite protocol connection tracking support
CONFIG_NF_CT_PROTO_UDPLITE
UDP-Lite支持.
Amanda backup protocol support
CONFIG_NF_CONNTRACK_AMANDA
Amanda備份協議支持.
FTP protocol support
CONFIG_NF_CONNTRACK_FTP
文件傳輸協議(FTP)支持.跟蹤FTP連接需要額外的幫助程序.
H.323 protocol support
CONFIG_NF_CONNTRACK_H323
H.323協議支持.
IRC protocol support
CONFIG_NF_CONNTRACK_IRC
IRC擴展協議DCC(Direct Client-to-Client Protocol)支持.該協議允許用戶之間繞開服務器直接聊天和傳輸文件.
NetBIOS name service protocol support
CONFIG_NF_CONNTRACK_NETBIOS_NS
NetBIOS協議支持.
SNMP service protocol support
CONFIG_NF_CONNTRACK_SNMP
SNMP協議支持.
PPtP protocol support
CONFIG_NF_CONNTRACK_PPTP
RFC2637 點對點隧道協議(Point to Point Tunnelling Protocol) 協議支持.
SANE protocol support
CONFIG_NF_CONNTRACK_SANE
SANE協議支持.
SIP protocol support
CONFIG_NF_CONNTRACK_SIP
SIP協議支持.
TFTP protocol support
CONFIG_NF_CONNTRACK_TFTP
TFTP協議支持.
Connection tracking netlink interface
CONFIG_NF_CT_NETLINK
基於netlink的用戶接口支持.
Connection tracking timeout tuning via Netlink
CONFIG_NF_CT_NETLINK_TIMEOUT
通過Netlink機制支持對連接追蹤超時進行細粒度的調節:允許爲特定的網絡流指定超時策略,而不是使用統一的全局超時策略.
Connection tracking helpers in user-space via Netlink
CONFIG_NF_CT_NETLINK_HELPER
通過Netlink機制爲用戶空間的連接追蹤幫助程序提供基礎框架.
NFQUEUE integration with Connection Tracking
CONFIG_NETFILTER_NETLINK_QUEUE_CT
開啓此項後,即使網絡包已經在隊列(NFQUEUE)中,它依然可以包含連接追蹤信息.
Transparent proxying support
CONFIG_NETFILTER_TPROXY
透明代理支持,也就是可以處理非本地的 IPv4 TCP/UDP 套接字.此功能需要配合一些iptables規則和策略路由才能工作.詳見"Documentation/networking/tproxy.txt"文檔.
Netfilter Xtables support (required for ip_tables)
CONFIG_NETFILTER_XTABLES
如果你打算使用 ip_tables, ip6_tables, arp_tables 之一就必須選上
nfmark target and match support
CONFIG_NETFILTER_XT_MARK
"nfmark"是用戶給包打上的一個自定義標記.用於match時,允許基於"nfmark"值對包進行匹配.用於target時,允許在"mangle"表中創建規則以改變包的"nfmark"值.
ctmark target and match support
CONFIG_NETFILTER_XT_CONNMARK
"ctmark"是用戶以連接爲組,給同一連接中的所有包打上的自定義標記.用法與"nfmark"相似.
set target and match support
CONFIG_NETFILTER_XT_SET
"set"是ipset工具創建的IP地址集合.使用match可以對IP地址集合進行匹配,使用target可以對集合中的項進行增加和刪除.
AUDIT target support
CONFIG_NETFILTER_XT_TARGET_AUDIT
爲被drop/accept的包創建審計記錄.
CHECKSUM target support
CONFIG_NETFILTER_XT_TARGET_CHECKSUM
用於"mangle"表,爲缺少校驗和的包添加checksum字段的值.主要是爲了兼容一些老舊的網絡程序(例如某些dhcp客戶端).
"CLASSIFY" target support
CONFIG_NETFILTER_XT_TARGET_CLASSIFY
允許爲包設置優先級,一些qdiscs排隊規則(atm,cbq,dsmark,pfifo_fast,htb,prio)需要使用它
"CONNMARK" target support
CONFIG_NETFILTER_XT_TARGET_CONNMARK
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_CONNMARK
"CONNSECMARK" target support
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK
針對鏈接進行安全標記,同時還會將連接上的標記還原到包上(如果鏈接中的包尚未進行安全標記),通常與 SECMARK target 聯合使用
"CT" target support
CONFIG_NETFILTER_XT_TARGET_CT
允許爲包加上連接追蹤相關的參數,比如"event"和"helper".
"DSCP" and "TOS" target support
CONFIG_NETFILTER_XT_TARGET_DSCP
DSCP target 允許對IPv4/IPv6包頭部的DSCP(Differentiated Services Codepoint)字段(常用於Qos)進行修改. TOS target 允許在"mangle"表創建規則以修改IPv4包頭的TOS(Type Of Service)字段或IPv6包頭的Priority字段.
"HL" hoplimit target support
CONFIG_NETFILTER_XT_TARGET_HL
HL(IPv6)/TTL(IPv4) target 允許更改包頭的 hoplimit/time-to-live 值.
"HMARK" target support
CONFIG_NETFILTER_XT_TARGET_HMARK
允許在"raw"和"mangle"表中創建規則,以根據特定範圍的哈希計算結果設置"skbuff"標記.
IDLETIMER target support
CONFIG_NETFILTER_XT_TARGET_IDLETIMER
每個被匹配的包的定時器都會被強制指定爲規則指定的值,當超時發生時會觸發一個sysfs文件系統的通知.剩餘時間可以通過sysfs讀取.
"LED" target support
CONFIG_NETFILTER_XT_TARGET_LED
允許在滿足特定條件的包通過的時候,觸發LED燈閃爍.比如可以用於控制網卡的狀態指示燈僅在有SSH活動的時候才閃爍.
LOG target support
CONFIG_NETFILTER_XT_TARGET_LOG
允許向syslog中記錄包頭信息.
"MARK" target support
CONFIG_NETFILTER_XT_TARGET_MARK
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_MARK
"NETMAP" target support
CONFIG_NETFILTER_XT_TARGET_NETMAP
NETMAP用於實現一對一的靜態NAT(地址轉換).
"NFLOG" target support
CONFIG_NETFILTER_XT_TARGET_NFLOG
通過nfnetlink_log記錄日誌.
"NFQUEUE" target Support
CONFIG_NETFILTER_XT_TARGET_NFQUEUE
用於替代老舊的 QUEUE target. 因爲NFQUEUE能支持最多65535個隊列,而QUEUE只能支持一個.
"NOTRACK" target support (DEPRECATED)
CONFIG_NETFILTER_XT_TARGET_NOTRACK
已被廢棄,勿選.
"RATEEST" target support
CONFIG_NETFILTER_XT_TARGET_RATEEST
RATEEST target 允許測量網絡流的傳輸速率.[注: rateest match 允許根據速率進行匹配.]
REDIRECT target support
CONFIG_NETFILTER_XT_TARGET_REDIRECT
REDIRECT是一種特別的NAT:所有進入的連接都被映射到其入口網卡的地址,這樣這些包就會"流入"本機而不是"流過"本機.這主要用於實現透明代理.
"TEE" - packet cloning to alternate destination
CONFIG_NETFILTER_XT_TARGET_TEE
對包進行克隆,並將克隆的副本路由到另一個臨近的路由器(Next Hop).
"TPROXY" target support
CONFIG_NETFILTER_XT_TARGET_TPROXY
類似於REDIRECT,但並不依賴於連接追蹤和NAT,也只能用於"mangle"表,用於將網絡流量重定向到透明代理.
"TRACE" target support
CONFIG_NETFILTER_XT_TARGET_TRACE
允許對包打標記,這樣內核就可以記錄每一個匹配到的規則.
"SECMARK" target support
CONFIG_NETFILTER_XT_TARGET_SECMARK
允許對包進行安全標記,用於安全子系統
"TCPMSS" target support
CONFIG_NETFILTER_XT_TARGET_TCPMSS
允許更改 TCP SYN 包的MSS(Maximum Segment Size)值,通常=MTU-40.
"TCPOPTSTRIP" target support
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP
允許從TCP包頭中剝離所有TCP選項.
"addrtype" address type match support
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE
根據地址類型進行匹配: UNICAST, LOCAL, BROADCAST, ...
"bpf" match support
CONFIG_NETFILTER_XT_MATCH_BPF
BPF(BSD Packet Filter)是一個強大的包匹配模塊,用於匹配那些讓過濾器返回非零值的包.
"cluster" match support
CONFIG_NETFILTER_XT_MATCH_CLUSTER
這個模塊可以用於創建網絡服務器/防火牆集羣,而無需藉助價格昂貴的負載均衡設備.通常,在包必須被本節點處理的條件下,這個match返回"true".這樣,所有節點都可以看到所有的包,但只有匹配的節點才需要進行處理,這樣就將負載進行了分攤.而分攤算法是基於對源地址的哈希值.
"comment" match support
CONFIG_NETFILTER_XT_MATCH_COMMENT
這是一個"僞match",目的是允許你在iptables規則集中加入註釋
"connbytes" per-connection counter match support
CONFIG_NETFILTER_XT_MATCH_CONNBYTES
允許針對單個連接內部每個方向(進/出)匹配已經傳送的字節數/包數
"connlabel" match support
CONFIG_NETFILTER_XT_MATCH_CONNLABEL
允許向連接分配用戶自定義的標籤名.內核僅存儲bit值,而名稱和bit之間的對應關係由用戶空間處理.與"connmark"的不同之處在於:可以同時爲一個連接分配32個標誌位(flag bit).
"connlimit" match support
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT
允許根據每一個客戶端IP地址(或每一段客戶端IP地址段)持有的併發連接數進行匹配.
"connmark" connection mark match support
CONFIG_NETFILTER_XT_MATCH_CONNMARK
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_CONNMARK
"conntrack" connection tracking match support
CONFIG_NETFILTER_XT_MATCH_CONNTRACK
通用連接跟蹤匹配,是"state"的超集,它允許額外的鏈接跟蹤信息,在需要設置一些複雜的規則(比如網關)時很有用
"cpu" match support
CONFIG_NETFILTER_XT_MATCH_CPU
根據處理包所使用的CPU是哪個進行匹配
"dccp" protocol match support
CONFIG_NETFILTER_XT_MATCH_DCCP
DCCP是打算取代UDP的新傳輸協議,它在UDP的基礎上增加了流控和擁塞控制機制,面向實時業務
"devgroup" match support
CONFIG_NETFILTER_XT_MATCH_DEVGROUP
允許根據網卡所屬的"設備組"進行匹配
"dscp" and "tos" match support
CONFIG_NETFILTER_XT_MATCH_DSCP
dscp match 允許根據IPv4/IPv6包頭的DSCP字段進行匹配, tos match 允許根據IPv4包頭的TOS字段進行匹配
"ecn" match support
CONFIG_NETFILTER_XT_MATCH_ECN
允許根據IPv4 TCP包頭的ECN字段進行匹配
"esp" match support
CONFIG_NETFILTER_XT_MATCH_ESP
允許對IPSec包的ESP頭中的SPI(安全參數序列)範圍進行匹配
"hashlimit" match support
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT
此項的目的是取代"limit",它基於你選定的源/目的地址和/或端口動態創建"limit bucket"哈希表.這樣你就可以迅速創建類似這樣的匹配規則:(1)爲給定的目的地址以每秒10k個包的速度進行匹配;(2)爲給定的源地址以每秒500個包的速率進行匹配
"helper" match support
CONFIG_NETFILTER_XT_MATCH_HELPER
加載特定協議的連接跟蹤輔助模塊,由該模塊過濾所跟蹤的連接類型的包,比如ip_conntrack_ftp模塊
"hl" hoplimit/TTL match support
CONFIG_NETFILTER_XT_MATCH_HL
基於IPv6包頭的hoplimit字段,或IPv4包頭的time-to-live字段進行匹配
"iprange" address range match support
CONFIG_NETFILTER_XT_MATCH_IPRANGE
根據IP地址範圍進行匹配,而普通的iptables只能根據"IP/mask"的方式進行匹配.
"ipvs" match support
CONFIG_NETFILTER_XT_MATCH_IPVS
允許根據包的IPVS屬性進行匹配
"length" match support
CONFIG_NETFILTER_XT_MATCH_LENGTH
允許對包的長度進行匹配
"limit" match support
CONFIG_NETFILTER_XT_MATCH_LIMIT
允許根據包的進出速率進行規則匹配,常和"LOG target"配合使用以抵抗某些Dos攻擊
"mac" address match support
CONFIG_NETFILTER_XT_MATCH_MAC
允許根據以太網的MAC地址進行匹配
"mark" match support
CONFIG_NETFILTER_XT_MATCH_MARK
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_MARK
"multiport" Multiple port match support
CONFIG_NETFILTER_XT_MATCH_MULTIPORT
允許對TCP或UDP包同時匹配多個不連續的端口(通常情況下只能匹配單個端口或端口範圍)
"nfacct" match support
CONFIG_NETFILTER_XT_MATCH_NFACCT
允許通過nfnetlink_acct使用擴展記賬
"osf" Passive OS fingerprint match
CONFIG_NETFILTER_XT_MATCH_OSF
開啓Passive OS Fingerprinting模塊,以允許通過進入的TCP SYN包被動匹配遠程操作系統.規則和加載程序可以從這裏獲取:http://www.ioremap.net/projects/osf
"owner" match support
CONFIG_NETFILTER_XT_MATCH_OWNER
基於創建套接字的本地進程身份(user/group)進行匹配,還可以用於檢查一個套接字是否確實存在
IPsec "policy" match support
CONFIG_NETFILTER_XT_MATCH_POLICY
基於IPsec policy進行匹配
"physdev" match support
CONFIG_NETFILTER_XT_MATCH_PHYSDEV
允許對進入或離開所經過的物理網口進行匹配
"pkttype" packet type match support
CONFIG_NETFILTER_XT_MATCH_PKTTYPE
允許對封包目的地址類別(廣播/組播/直播)進行匹配
"quota" match support
CONFIG_NETFILTER_XT_MATCH_QUOTA
允許對總字節數的限額值進行匹配
"rateest" match support
CONFIG_NETFILTER_XT_MATCH_RATEEST
根據 RATEEST target 評估的速率值進行匹配
"realm" match support
CONFIG_NETFILTER_XT_MATCH_REALM
允許根據iptables中的路由子系統中的realm值進行匹配.它與tc中的CONFIG_NET_CLS_ROUTE4非常類似.
"recent" match support
CONFIG_NETFILTER_XT_MATCH_RECENT
recent match 用於創建一個或多個最近使用過的地址列表,然後又可以根據這些列表再進行匹配.
"sctp" protocol match support
CONFIG_NETFILTER_XT_MATCH_SCTP
支持根據流控制傳輸協議(SCTP)源/目的端口和"chunk type"進行匹配.
"socket" match support
CONFIG_NETFILTER_XT_MATCH_SOCKET
can be used to match packets for which a TCP or UDP socket lookup finds a valid socket. It can be used in combination with the MARK target and policy routing to implement full featured non-locally bound sockets.
"state" match support
CONFIG_NETFILTER_XT_MATCH_STATE
這是對包進行分類的有力工具,它允許利用連接跟蹤信息對連接中處於特定狀態的包進行匹配
"statistic" match support
CONFIG_NETFILTER_XT_MATCH_STATISTIC
允許根據一個給定的百分率對包進行週期性的或隨機性的匹配
"string" match support
CONFIG_NETFILTER_XT_MATCH_STRING
允許根據包所承載的數據中包含的特定字符串進行匹配
"tcpmss" match support
CONFIG_NETFILTER_XT_MATCH_TCPMSS
允許根據TCP SYN包頭中的MSS(最大分段長度)選項的值進行匹配
"time" match support
CONFIG_NETFILTER_XT_MATCH_TIME
根據包的到達時刻(外面進入的包)或者離開時刻(本地生成的包)進行匹配
"u32" match support
CONFIG_NETFILTER_XT_MATCH_U32
"u32"允許從包中提取擁有特定mask的最多4字節數據,將此數據移動(shift)特定的位數,然後測試其結果是否位於特定的集合範圍內.更多細節可以直接參考內核源碼(net/netfilter/xt_u32.c)
IP set support
CONFIG_IP_SET
爲內核添加IP集(IP set)支持,然後就可以使用CONFIG_NETFILTER_XT_SET功能.此特性必須配合用戶態工具ipset一起使用.
Maximum number of IP sets
CONFIG_IP_SET_MAX
默認的最大"set"數,取值範圍是[2,65534].此值也可以由ip_set模塊的max_sets參數設置.
bitmap:ip set support
CONFIG_IP_SET_BITMAP_IP
"bitmap:ip"集合類型.根據IP地址範圍設定集合.
bitmap:ip,mac set support
CONFIG_IP_SET_BITMAP_IPMAC
"bitmap:ip,mac"集合類型.根據IP/MAC地址對範圍設定集合.
bitmap:port set support
CONFIG_IP_SET_BITMAP_PORT
"bitmap:port"集合類型.根據端口範圍設定集合.
hash:ip set support
CONFIG_IP_SET_HASH_IP
"hash:ip"集合類型.爲多個離散的IP地址設定集合.
hash:ip,port set support
CONFIG_IP_SET_HASH_IPPORT
"hash:ip,port"集合類型.爲多個離散的IP/MAC地址對設定集合.
hash:ip,port,ip
CONFIG_IP_SET_HASH_IPPORTIP
"hash:ip,port,ip"集合類型.爲多個離散的IP/端口/IP三元組設定集合.
hash:ip,port,net set support
CONFIG_IP_SET_HASH_IPPORTNET
"hash:ip,port,net"集合類型.爲多個離散的IP/端口/網段三元組設定集合.
hash:net set support
CONFIG_IP_SET_HASH_NET
"hash:net"集合類型.爲多個離散的網段設定集合
hash:net,port set support
CONFIG_IP_SET_HASH_NETPORT
"hash:net,port"集合類型.爲多個離散的網段/端口對設定集合
hash:net,iface set support
CONFIG_IP_SET_HASH_NETIFACE
"hash:net,iface"集合類型.爲多個離散的網段/網卡接口對設定集合
list:set set support
CONFIG_IP_SET_LIST_SET
"list:set"集合類型.將多個集合組成一個更大的集合
IP virtual server support
CONFIG_IP_VS
IPVS(IP Virtual Server)支持.IPVS可以幫助LVS基於多個後端真實服務器創建一個高性能的虛擬服務器.可以使用三種具體的方法實現:NAT,隧道,直接路由(使用較廣).
IPv6 support for IPVS
CONFIG_IP_VS_IPV6
爲IPVS添加IPv6支持
IP virtual server debugging
CONFIG_IP_VS_DEBUG
爲IPVS添加調試支持
IPVS connection table size (the Nth power of 2)
CONFIG_IP_VS_TAB_BITS
設置IPVS連接哈希表的大小(2CONFIG_IP_VS_TAB_BITS),取值範圍是[8,20],默認值12的意思是哈希表的大小是212=4096項.IPVS連接哈希表使用鏈表來處理哈希碰撞.使用大的哈希表能夠顯著減少碰撞機率,特別是哈希表中有成千上萬連接的時候.比較恰當的值差不多等於每秒的新建連接數乘以每個連接的平均持續秒數.太小的值會造成太多碰撞,從而導致性能大幅下降;太大的值又會造成佔用太多不必要的內存(每個表項8字節+每個連接128字節).該值也可以通過ip_vs模塊的conn_tab_bits參數進行設置.
TCP load balancing support
CONFIG_IP_VS_PROTO_TCP
TCP傳輸協議負載均衡支持
UDP load balancing support
CONFIG_IP_VS_PROTO_UDP
UDP傳輸協議負載均衡支持
ESP load balancing support
CONFIG_IP_VS_PROTO_ESP
IPSec ESP(Encapsulation Security Payload)傳輸協議負載均衡支持
AH load balancing support
CONFIG_IP_VS_PROTO_AH
IPSec AH(Authentication Header)傳輸協議負載均衡支持.
SCTP load balancing support
CONFIG_IP_VS_PROTO_SCTP
SCTP傳輸協議負載均衡支持
round-robin scheduling
CONFIG_IP_VS_RR
循環分散算法:最簡單的調度算法,將連接簡單的循環分散到後端服務器上
weighted round-robin scheduling
CONFIG_IP_VS_WRR
基於權重的循環分散算法:在循環分散的基礎上,權重較高的後端服務器接納較多的連接
least-connection scheduling
CONFIG_IP_VS_LC
最少連接算法:將連接優先分配到活動連接最少的後端服務器
weighted least-connection scheduling
CONFIG_IP_VS_WLC
基於權重的最少連接算法:結合考慮活動連接數與服務器權重
locality-based least-connection scheduling
CONFIG_IP_VS_LBLC
基於目的IP的最少連接算法(常用於緩存集羣):優先根據目的IP地址將連接分配到特定的後端,僅在這些後端過載時(活動連接數大於其權重)才分散到其他後端.
locality-based least-connection with replication scheduling
CONFIG_IP_VS_LBLCR
與LBLC類似,不同之處在於:前端負載均衡器會像NAT一樣同時記住客戶端IP與後端的對應關係,並在新的連接到來的時候,複用這個對應關係.
destination hashing scheduling
CONFIG_IP_VS_DH
目標地址哈希表算法:簡單的根據靜態設定的目標IP地址哈希表將連接分發到後端
source hashing scheduling
CONFIG_IP_VS_SH
源地址哈希表算法:簡單的根據靜態設定的源IP地址哈希表將連接分發到後端
shortest expected delay scheduling
CONFIG_IP_VS_SED
最小期望延遲算法:將連接分配到根據期望延遲公式((Ci+1)/Ui)算得的延遲最小的後端."i"是後端服務器編號,"Ci"是該服務器當前的連接數,"Ui"是該服務器的權重.
never queue scheduling
CONFIG_IP_VS_NQ
無排隊算法:這是一個兩階段算法,如果有空閒服務器,就直接分發到空閒服務器(而不是等待速度最快的服務器),如果沒有空閒服務器,就分發到期望延遲最小的服務器(SED算法).
IPVS source hashing table size (the Nth power of 2)
CONFIG_IP_VS_SH_TAB_BITS
將源IP地址映射到後端服務器所使用的哈希表的大小(2CONFIG_IP_VS_SH_TAB_BITS),取值範圍是[4,20],默認值8的意思是哈希表的大小是28=256項.理想的大小應該是所有後端的權重乘以後端總數?
FTP protocol helper
CONFIG_IP_VS_FTP
FTP協議連接追蹤幫助
Netfilter connection tracking
CONFIG_IP_VS_NFCT
Netfilter連接追蹤支持
SIP persistence engine
CONFIG_IP_VS_PE_SIP
基於SIP Call-ID提供持久連接支持
IP: Netfilter Configuration
針對IPv4的Netfilter配置
IPv4 connection tracking support (required for NAT)
CONFIG_NF_CONNTRACK_IPV4
IPv4鏈接跟蹤.可用於包僞裝或地址轉換,也可用於增強包過濾能力
proc/sysctl compatibility with old connection tracking
CONFIG_NF_CONNTRACK_PROC_COMPAT
用於兼容老舊的連接追蹤用戶態程序
IP tables support (required for filtering/masq/NAT)
CONFIG_IP_NF_IPTABLES
要用iptables就肯定要選上
"ah" match support
CONFIG_IP_NF_MATCH_AH
允許對IPSec包頭的AH字段進行匹配
"ecn" match support
CONFIG_IP_NF_MATCH_ECN
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_MATCH_ECN
"rpfilter" reverse path filter match support
CONFIG_IP_NF_MATCH_RPFILTER
對進出都使用同一個網絡接口的包進行匹配
"ttl" match support
CONFIG_IP_NF_MATCH_TTL
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_MATCH_HL
Packet filtering
CONFIG_IP_NF_FILTER
定義filter表,以允許對包進行過濾
REJECT target support
CONFIG_IP_NF_TARGET_REJECT
允許返回一個ICMP錯誤包而不是簡單的丟棄包
ULOG target support
CONFIG_IP_NF_TARGET_ULOG
反對使用該選項,因爲它已經被CONFIG_NETFILTER_NETLINK_LOG代替
IPv4 NAT
CONFIG_NF_NAT_IPV4
允許進行僞裝/端口轉發以及其它的NAT功能,僅在你需要使用iptables中的nat表時才需要選擇
MASQUERADE target support
CONFIG_IP_NF_TARGET_MASQUERADE
SNAT是指在數據包從網卡發送出去的時候,把數據包中的源地址部分替換爲指定的IP,這樣,接收方就認爲數據包的來源是被替換的那個IP的主機.僞裝(MASQUERADE)是一種特殊類型的SNAT:MASQUERADE是用發送數據的網卡上的IP來替換源IP,用於那些IP不固定的場合(比如撥號或者通過DHCP分配)
NETMAP target support
CONFIG_IP_NF_TARGET_NETMAP
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_TARGET_NETMAP.
REDIRECT target support
CONFIG_IP_NF_TARGET_REDIRECT
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_TARGET_REDIRECT.
Basic SNMP-ALG support
CONFIG_NF_NAT_SNMP_BASIC
SNMP荷載實現ALG(Application Layer Gateway)支持(RFC2962).
Packet mangling
CONFIG_IP_NF_MANGLE
在iptables中啓用mangle表以便對包進行各種修改,常用於改變包的路由
CLUSTERIP target support
CONFIG_IP_NF_TARGET_CLUSTERIP
CLUSTERIP target 允許你無需使用昂貴的負載均衡設備也能創建廉價的負載均衡集羣
ECN target support
CONFIG_IP_NF_TARGET_ECN
用於mangle表,可以去除IPv4包頭的ECN(Explicit Congestion Notification)位,主要用於在保持ECN功能的前提下,去除網絡上的"ECN黑洞".
"TTL" target support
CONFIG_IP_NF_TARGET_TTL
這只是一個兼容舊配置的選項,等價於CONFIG_NETFILTER_XT_TARGET_HL.
raw table support (required for NOTRACK/TRACE)
CONFIG_IP_NF_RAW
在iptables中添加一個raw表,該表在netfilter框架中非常靠前,並在PREROUTING和OUTPUT鏈上有鉤子,從而可以對收到的數據包在連接跟蹤前進行處理
Security table
CONFIG_IP_NF_SECURITY
在iptables中添加一個security表,以支持強制訪問控制(Mandatory Access Control)策略
ARP tables support
CONFIG_IP_NF_ARPTABLES
arptables支持
ARP packet filtering
CONFIG_IP_NF_ARPFILTER
ARP包過濾.對於進入和離開本地的ARP包定義一個filter表,在橋接的情況下還可以應用於被轉發的ARP包
ARP payload mangling
CONFIG_IP_NF_ARP_MANGLE
允許對ARP包的荷載部分進行修改,比如修改源和目標物理地址
IPv6: Netfilter Configuration
針對IPv6的Netfilter配置.其子項內容類似於IPv4,需要的話可以參考前面IPv4的Netfilter配置進行選擇
DECnet: Netfilter Configuration
針對DECnet的Netfilter配置
Ethernet Bridge tables (ebtables) support
CONFIG_BRIDGE_NF_EBTABLES
針對以太網橋的ebtables Netfilter配置
The DCCP Protocol
CONFIG_IP_DCCP
數據報擁塞控制協議(Datagram Congestion Control Protocol)在UDP的基礎上增加了流控和擁塞控制機制,使數據報協議能夠更好地用於流媒體業務的傳輸
The SCTP Protocol
CONFIG_IP_SCTP
流控制傳輸協議(Stream Control Transmission Protocol)是一種新興的傳輸層協議.TCP協議一次只能連接一個IP地址而在SCTP協議一次可以連接多個IP地址且可以自動平衡網絡負載,一旦某一個IP地址失效會自動將網絡負載轉移到其他IP地址上
The RDS Protocol
CONFIG_RDS
可靠數據報套接字(Reliable Datagram Sockets)協議支持.
The TIPC Protocol
CONFIG_TIPC
透明內部進程間通信協議(Transparent Inter Process Communication),以共享內存爲基礎實現任務和資源的調度,專門用於集羣內部通信
Asynchronous Transfer Mode (ATM)
CONFIG_ATM
異步傳輸模式(ATM)支持.主要用於高速LAN和WAN.目前已經日薄西山了.
Layer Two Tunneling Protocol (L2TP)
CONFIG_L2TP
第二層隧道協議(RFC2661)支持
802.1d Ethernet Bridging
CONFIG_BRIDGE
802.1d以太網橋(例如爲虛擬機提供橋接網卡支持)
802.1Q/802.1ad VLAN Support
CONFIG_VLAN_8021Q
802.1Q虛擬局域網
DECnet Support
CONFIG_DECNET
DECnet協議
ANSI/IEEE 802.2 LLC type 2 Support
CONFIG_LLC2
PF_LLC類型套接字支持.也就是IEEE 802.2 LLC 2
The IPX protocol
CONFIG_IPX
IPX協議是由Novell公司提出的運行於OSI模型第三層的協議,具有可路由的特性,IPX的地址分爲網絡地址和主機地址,網絡地址由管理員分配,主機地址爲MAC地址.由於IP協議的廣泛使用,IPX的應用早已日薄西山.
Appletalk protocol support
CONFIG_ATALK
Appletalk是蘋果公司創建的一組網絡協議,僅用於蘋果系列計算機.
CCITT X.25 Packet Layer
CONFIG_X25
CCITT X.25協議集支持.
LAPB Data Link Driver
CONFIG_LAPB
LAPB協議支持.
Phonet protocols family
CONFIG_PHONET
PhoNet是Nokia開發的面相數據包的通信協議,僅用於Nokia maemo/meego產品.
IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support
CONFIG_IEEE802154
IEEE Std 802.15.4 定義了一個低速率/低功耗/低複雜度的短距離個人無線網絡規範.主要用於物聯網中的傳感器/交換器之類設備之間的互聯.
6lowpan support over IEEE 802.15.4
CONFIG_IEEE802154_6LOWPAN
在IEEE 802.15.4上支持IPv6壓縮.
Generic IEEE 802.15.4 Soft Networking Stack (mac802154)
CONFIG_MAC802154
爲SoftMAC設備(僅實現了PHY層)實現硬件獨立的IEEE Std 802.15.4協議棧.使用HardMAC設備的用戶應該選"N".[注意]這裏的實現既未經過認證,也未進行充分的兼容性測試.
QoS and/or fair queueing
CONFIG_NET_SCHED
QoS(Quality of Service)支持.當內核有多個包需要通過網絡發送的時候,它需要決定哪個包先發,那個包後發,哪個包丟棄.這就是包調度算法.關閉此項表示內核使用最簡單的FIFO算法,開啓此項後就可以使用多種不同的調度算法(需要配合用戶層工具iproute2+tc).QoS還用於支持diffserv(Differentiated Services)和RSVP(Resource Reservation Protocol)功能.包調度的狀態信息可以從"/proc/net/psched"文件中獲取.僅在你確實需要的時候選"Y".
Data Center Bridging support
CONFIG_DCB
DCB(Data Center Bridging)支持.數據中心橋接是一組可增強傳統以太網功能,以管理通信的功能,尤其適用於網絡通信流量和傳輸率都很高的環境中.光纖通道可專用於承載此類型的通信.但是,如果使用專用鏈路來僅提供光纖通道通信,則成本可能會很高.因此,更多情況下使用以太網光纖通道.DCB功能可滿足光纖通道對遍歷以太網時包丟失的敏感度要求.DCB允許對等方基於優先級區分通信.通過區分優先級,可確保在主機之間發生擁塞時,保持較高優先級通信的包完整性.使用DCB交換協議,通信主機可以交換會影響高速網絡通信的配置信息.然後,對等方可對公用配置進行協商,確保通信流不中斷,同時防止高優先級包出現包丟失.這些功能都需要底層的網卡支持.一般網卡都是不支持的.所以不確定的可以選"N".
DNS Resolver support
CONFIG_DNS_RESOLVER
內核DNS解析支持.用於支持CONFIG_AFS_FS/CONFIG_CIFS/CONFIG_CIFS_SMB2模塊.此功能需要用戶態程序"/sbin/dns.resolve"和配置文件"/etc/request-key.conf"的支持.更多信息參見"Documentation/networking/dns_resolver.txt"文檔,不確定的選"N".
B.A.T.M.A.N. Advanced Meshing Protocol
CONFIG_BATMAN_ADV
B.A.T.M.A.N.(更好的移動無線網絡方案)是一種用於 multi-hop ad-hoc mesh 網絡的路由協議.它是一種去中心化分佈式無線Adhoc模式,特別適用於自然災害等緊急情況下,創建臨時的無線網絡.不確定的選"N".
Open vSwitch
CONFIG_OPENVSWITCH
Open vSwitch 是一個多層虛擬交換標準.此選項提供了內核級的高速轉發功能(需要配合用戶態守護進程ovs-vswitchd來實現).
Virtual Socket protocol
CONFIG_VSOCKETS
這是一個類似於TCP/IP的協議,用於虛擬機之間以及虛擬機與宿主之間的通信.開啓此項後,還需要從子項中選擇適用於特定虛擬化技術的傳輸協議.
VMware VMCI transport for Virtual Sockets
CONFIG_VMWARE_VMCI_VSOCKETS
適用於VMware虛擬化技術的VMCI傳輸協議支持.
NETLINK: mmaped IO
CONFIG_NETLINK_MMAP
基於內存映射機制的 netlink IO 支持.這樣可以避免在用戶空間與內存空間之間複製數據,從而提升操作速度.建議開啓.
NETLINK: socket monitoring interface
CONFIG_NETLINK_DIAG
NETLINK socket 監視接口.ss這樣的診斷工具需要它.
Network priority cgroup
CONFIG_NETPRIO_CGROUP
Cgroup子系統支持:基於每個網絡接口爲每個進程分配網絡使用優先級.
enable BPF Just In Time compiler
CONFIG_BPF_JIT
BPF(Berkeley Packet Filter)的過濾功能通常由一個解釋器(interpreter)解釋執行BPF虛擬機指令的方式工作.開啓此項,內核在加載過濾指令後,會將其編譯爲本地指令,以加快執行速度.網絡嗅探程序(libpcap/tcpdump)可以從中受益.注意:需要"echo 1 > /proc/sys/net/core/bpf_jit_enable"之後才能生效.
Network testing
網絡測試,僅供調試使用
Amateur Radio support
CONFIG_HAMRADIO
業餘無線電支持.供無線電愛好者進行自我訓練/相互通訊/技術研究
CAN bus subsystem support
CONFIG_CAN
CAN(Controller Area Network)是一個低速串行通信協議.被廣泛地應用於工業自動化/船舶/醫療設備/工業設備等嵌入式領域.更多信息參見"Documentation/networking/can.txt"文件.
IrDA (infrared) subsystem support
CONFIG_IRDA
紅外線通訊技術支持,主要用於嵌入式環境,某些老舊的筆記本上也可能會有紅外接口.
Bluetooth subsystem support
CONFIG_BT
藍牙支持.藍牙目前已經基本取代紅外線,成爲嵌入式設備/智能設備/筆記本的標配近距離(小於10米)通信設備.在Linux上通常使用來自BlueZ的hciconfig和bluetoothd工具操作藍牙通信.
RFCOMM protocol support
CONFIG_BT_RFCOMM
虛擬串口協議(RFCOMM)是一個面向連接的流傳輸協議,提供RS232控制和狀態信號,從而模擬串口的功能.它被用於支持撥號網絡,OBEX(Object Exchange),以及某些藍牙程序(例如文件傳輸).
RFCOMM TTY support
CONFIG_BT_RFCOMM_TTY
允許在RFCOMM通道上模擬TTY終端
BNEP protocol support
CONFIG_BT_BNEP
藍牙網絡封裝協議(Bluetooth Network Encapsulation Protocol)可以在藍牙上運行其他網絡協議(TCP/IP). Bluetooth PAN(Personal Area Network)需要它的支持.
Multicast filter support
CONFIG_BT_BNEP_MC_FILTER
組播支持
Protocol filter support
CONFIG_BT_BNEP_PROTO_FILTER
協議過濾器支持
CMTP protocol support
CONFIG_BT_CMTP
CMTP(CAPI消息傳輸協議)用於支持已在上世紀被淘汰的ISDN設備.不確定的選"N".
HIDP protocol support
CONFIG_BT_HIDP
人機接口設備協議(Human Interface Device Protocol)用於支持各種人機接口設備(比如鼠標/鍵盤/耳機等).
Bluetooth device drivers
各種藍牙設備驅動
HCI USB driver
CONFIG_BT_HCIBTUSB
使用USB接口的藍牙設備支持
HCI SDIO driver
CONFIG_BT_HCIBTSDIO
使用SDIO接口的藍牙設備支持
HCI UART driver
CONFIG_BT_HCIUART
使用串口的藍牙設備支持.此外,基於UART的藍牙PCMCIACF設備也需要此模塊的支持.
UART (H4) protocol support
CONFIG_BT_HCIUART_H4
大多數使用UART接口的藍牙設備(包括PCMCIA和CF卡)都使用這個協議.
BCSP protocol support
CONFIG_BT_HCIUART_BCSP
基於CSR(Cambridge Silicon Radio)公司的BlueCore系列芯片的藍牙設備(包括PCMCIA和CF卡)支持
Atheros AR300x serial support
CONFIG_BT_HCIUART_ATH3K
基於Atheros AR300x系列芯片的藍牙設備支持
HCILL protocol support
CONFIG_BT_HCIUART_LL
基於Texas Instruments公司的BRF芯片的藍牙設備支持
Three-wire UART (H5) protocol support
CONFIG_BT_HCIUART_3WIRE
Three-wire UART (H5) 協議假定UART通信可能存在各種錯誤,從而使得CTS/RTS引腳線變得可有可無.看不懂就可以不選.
HCI VHCI (Virtual HCI device) driver
CONFIG_BT_HCIVHCI
模擬藍牙設備支持.主要用於開發
{大多數藍牙設備並不需要特定的獨立驅動,此處省略的獨立驅動僅是爲了驅動那些不嚴格遵守藍牙規範的芯片}
RxRPC session sockets
CONFIG_AF_RXRPC
RxRPC會話套接字支持(僅包括傳輸部分,不含表示部分).CONFIG_AFS_FS依賴於它.不確定的選"N".詳情參見"Documentation/networking/rxrpc.txt"文檔.
Wireless
CONFIG_WIRELESS
無線網絡支持.
cfg80211 - wireless configuration API
CONFIG_CFG80211
cfg80211Linux無線局域網(802.11)配置接口,是使用WiFi的前提.注意:"WiFi"是一個無線網路通信技術的品牌,由WiFi聯盟所持有.目的是改善基於IEEE 802.11標準的無線網路產品之間的互通性.現時一般人會把WiFi及IEEE 802.11混爲一談,甚至把WiFi等同於無線網路(WiFi只是無線網絡的一種).
nl80211 testmode command
CONFIG_NL80211_TESTMODE
僅供調試和特殊目的使用.
enable developer warnings
CONFIG_CFG80211_DEVELOPER_WARNINGS
僅供調試開發使用
cfg80211 regulatory debugging
CONFIG_CFG80211_REG_DEBUG
僅供調試開發使用
cfg80211 certification onus
CONFIG_CFG80211_CERTIFICATION_ONUS
僅在你確實明白此項含義的情況下,才考慮選"Y",否則請選"N".
enable powersave by default
CONFIG_CFG80211_DEFAULT_PS
若開啓此項則表示默認開啓省電模式(也就是默認"Soft blocked: yes").關閉此項則表示默認使用BIOS中的狀態(通常是上一次關機是的狀態).詳情參見"Documentation/power/pm_qos_interface.txt"文檔.
cfg80211 DebugFS entries
CONFIG_CFG80211_DEBUGFS
僅供調試
use statically compiled regulatory rules database
CONFIG_CFG80211_INTERNAL_REGDB
由於絕大多數發行版都含有CRDA軟件包,所以絕大多數人應該選"N".如果你確實需要選"Y",那麼請認真閱讀"net/wireless/db.txt"文件.
cfg80211 wireless extensions compatibility
CONFIG_CFG80211_WEXT
爲那些老舊的用戶空間程序提供兼容性,建議關閉.
lib80211 debugging messages
CONFIG_LIB80211_DEBUG
僅供調試
Generic IEEE 802.11 Networking Stack (mac80211)
CONFIG_MAC80211
獨立於硬件的通用IEEE 802.11協議棧模塊(mac80211).它是驅動開發者用來編寫softMAC無線設備驅動的框架,softMAC設備允許用軟件實現幀的管理(包括解析和產生80211無線幀),從而讓系統能更好的控制硬件,現在大多數的無線網卡都是softMAC設備.不確定的選"Y".
PID controller based rate control algorithm
CONFIG_MAC80211_RC_PID
基於比例-積分-微分控制器(PID controller)的發送速率(TX rate)控制算法.用於CONFIG_MAC80211模塊.不確定的選"N".
Minstrel
CONFIG_MAC80211_RC_MINSTREL
minstrel發送速率(TX rate)控制算法.用於CONFIG_MAC80211模塊.這是首選的算法,不確定的選"Y".
Minstrel 802.11n support
CONFIG_MAC80211_RC_MINSTREL_HT
minstrel_ht發送速率(TX rate)控制算法.適用於802.11n規範.不確定的選"Y".
Default rate control algorithm
默認發送速率(TX rate)控制算法.相當於mac80211模塊"ieee80211_default_rc_algo"參數的值.建議選擇"Minstrel"算法.
Enable mac80211 mesh networking (pre-802.11s) support
CONFIG_MAC80211_MESH
802.11s草案是無線網狀網絡(Mesh Networking)的延伸與增補標準(amendment).它擴展了IEEE 802.11 MAC(介質訪問控制)標準,定義了利用自我組態的多點跳躍拓樸(multi-hop topologies),進行無線感知(radio-aware metrics),以支援廣播/組播/單播傳送網絡封包的架構與協定.不確定的選"N".
Enable LED triggers
CONFIG_MAC80211_LEDS
允許在接受/發送數據時觸發無線網卡的LED燈閃爍.
Export mac80211 internals in DebugFS
CONFIG_MAC80211_DEBUGFS
在DebugFS中顯示mac80211模塊內部狀態的擴展信息,僅用於調試目的.
Trace all mac80211 debug messages
CONFIG_MAC80211_MESSAGE_TRACING
跟蹤所有mac80211模塊的調試信息,僅用於調試目的.
Select mac80211 debugging features
CONFIG_MAC80211_DEBUG_MENU
僅供調試
WiMAX Wireless Broadband support
CONFIG_WIMAX
WiMAX(IEEE 802.16)協議支持.隨着2010年英特爾放棄WiMAX以及LTE在4G市場成了唯一的主流標準,WiMAX的電信運營商也逐漸向LTE轉移,WiMAX論壇也於2012年將TD-LTE納入WiMAX2.1規範,一些WiMAX運營商也開始將設備升級爲TD-LTE.
WiMAX debug level
CONFIG_WIMAX_DEBUG_LEVEL
設置允許使用的最大調試信息詳細等級,推薦使用默認值"8",設爲"0"表示允許使用所有調試信息.運行時默認禁止使用調試信息,但可通過sysfs文件系統中的debug-levels文件開啓調試信息.
RF switch subsystem support
CONFIG_RFKILL
爲了節約電力,很多無線網卡和藍牙設備都有內置的射頻開關(RF switche)用於開啓和關閉設備(通過rfkill命令).建議選"Y".更多詳情參見"Documentation/rfkill.txt"文檔
RF switch input support
CONFIG_RFKILL_INPUT
這是個反對使用的特性,一般情況下建議關閉.若關閉此項導致某些筆記本的無線網卡開關按鈕失效,可以考慮開啓.
Generic rfkill regulator driver
CONFIG_RFKILL_REGULATOR
通用射頻開關驅動,其射頻開關連接在電壓調節器(voltage regulator)上.依賴於CONFIG_REGULATOR框架.不確定的選"N"或"M"
GPIO RFKILL driver
CONFIG_RFKILL_GPIO
通用GPIO射頻開關驅動.僅用於嵌入式環境,其射頻開關連接在GPIO總線上,比如NVIDIA的Tegra和三星的Exynos 4智能手機SoC芯片.
Plan 9 Resource Sharing Support (9P2000)
CONFIG_NET_9P
實驗性的支持Plan 99P2000協議.
CAIF support
CONFIG_CAIF
除非你爲Android/MeeGo系統編譯內核,並且需要使用PF_CAIF類型的socket,否則請選"N".
Ceph core library
CONFIG_CEPH_LIB
僅在你需要使用Ceph分佈式文件系統,或者rados塊設備(rbd)時選"Y".否則應選"N".
NFC subsystem support
CONFIG_NFC
NFC(近場通信)子系統.這些設備主要用於智能手機之類的嵌入式領域.

Device Drivers
設備驅動程序

Generic Driver Options
驅動程序通用選項
path to uevent helper
CONFIG_UEVENT_HELPER_PATH
早年的內核(切換到基於netlink機制之前),在發生uevent事件(通常是熱插拔)時,需要調用用戶空間程序(通常是"/sbin/hotplug"),以幫助完成uevent事件的處理.此選項就是用於設定這個幫助程序的路徑.由於目前的發行版都已不再需要此幫助程序,所以請保持空白.此外,如果你使用了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".
Driver Core verbose debug messages
CONFIG_DEBUG_DRIVER
讓驅動程序核心在系統日誌中產生冗長的調試信息,僅供調試
Managed device resources verbose debug messages
CONFIG_DEBUG_DEVRES
爲內核添加一個"devres.log"引導參數.當被設爲非零值時,將會打印出設備資源管理驅動(devres)的調試信息.僅供調試使用.
Contiguous Memory Allocator
CONFIG_CMA
在使用ARM等嵌入式Linux系統的時候,GPU,Camera,HDMI等都需要預留大量連續內存,這部分內存平時不用,但是傳統的做法又必須先預留着.而通過連續內存分配器(Contiguous Memory Allocator)可以做到不預留內存,僅在需要的時候纔將大塊的連續物理內存分配給相應的驅動程序.這個機制對於那些不支持I/O map和scatter-gather的設備很有作用.詳情參見"include/linux/dma-contiguous.h"文件,不確定的選"N".
Bus devices
總線設備.此類設備僅出現在ARM平臺.
Connector - unified userspace <-> kernelspace linker
CONFIG_CONNECTOR
統一的用戶空間和內核空間連接器,工作在netlink socket協議的頂層.連接器是非常便利的用戶態與內核態的通信方式,內核開發者在編寫內核子系統或模塊時可以採用這種方式方便地進行用戶態與內核態的數據交換.內核有兩個連接器應用實例:一個是進程事件連接器,另一個是CIFS文件系統.另外還有一個給Gentoo裝上啓動畫面的例子.
Report process events to userspace
CONFIG_PROC_EVENTS
提供一個向用戶空間報告進程事件(fork,exec,id變化(uid,gid,suid))的連接器.
Memory Technology Device (MTD) support
CONFIG_MTD
MTD子系統是一個閃存轉換層.其主要目的是提供一個介於閃存硬件驅動程序與高級應用程序之間的抽象層,以簡化閃存設備的驅動.注意:MTD常用於嵌入式系統,而我們常見的U盤/MMC卡/SD卡/CF卡等移動存儲設備以及固態硬盤(SSD),雖然也叫"flash",但它們並不是使用MTD技術的存儲器.僅在你需要使用主設備號爲31的MTD塊設備(/dev/romX,/dev/rromX,/dev/flashX,/dev/rflashX),或者主設備號爲90的MTD字符設備(/dev/mtdX,/dev/mtdrX)時選"Y",否則選"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".
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".
NVM Express block device
CONFIG_BLK_DEV_NVME
NVM Express是專門針對PCI-E接口高性能固態硬盤的標準規範.有了這一標準,操作系統廠商只需要編寫一種驅動,就可以支持不同廠商的不同PCI-E SSD設備,以解決目前PCI-E SSD產品形態與規格五花八門,缺乏通用性和互用性的問題.
OSD object-as-blkdev support
CONFIG_BLK_DEV_OSD
允許將一個單獨的 SCSI OSD(Object-Based Storage Devices) 對象當成普通的塊設備來使用.舉例來說,你可以在OSD設備上創建一個2G大小的對象,然後通過本模塊將其模擬成一個2G大小的塊設備使用.不確定的選"N".
Promise SATA SX8 support
CONFIG_BLK_DEV_SX8
基於Promise公司的SATA SX8控制器的RAID卡
RAM block device support
CONFIG_BLK_DEV_RAM
內存中的虛擬磁盤,大小固定.詳情參閱"Documentation/blockdev/ramdisk.txt".由於其功能比CONFIG_TMPFS和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虛擬塊設備驅動.它可以用於KVMXEN這類基於lguestQEMU的VMM(Virtual Machine Monitor).
Very old hard disk (MFM/RLL/IDE) driver
CONFIG_BLK_DEV_HD
又老又舊的MFM/RLL/ESDI硬盤驅動.無需猶豫,選"N".
Rados block device (RBD)
CONFIG_BLK_DEV_RBD
rados塊設備(rbd)支持.它可以與分佈式文件系統Ceph合作,也能獨立工作.
IBM FlashSystem 70/80 PCIe SSD Device Driver
CONFIG_BLK_DEV_RSXX
IBM FlashSystem 70/80 PCIe SSD 驅動
Misc devices
雜項設備
{省略的部分請按照實際的硬件狀況進行選擇}
Integrated Circuits ICS932S401
CONFIG_ICS932S401
IDT ICS932S401 系列時鐘頻率控制芯片支持(可能會出現在某些主板上).
Enclosure Services
CONFIG_ENCLOSURE_SERVICES
SES(SCSI Enclosure Services)是一項目前大多數移動硬盤盒/硬盤托架/電腦主板都支持的硬件控制命令服務,SES可以讓主機端透過SCSI命令去控制外接盒內的電源/冷卻裝置以及其他與數據傳輸無關的東西.要使用這項技術,外置硬盤盒和主機上的SCSI/ATA芯片都需要支持SES技術才OK.
VMware Balloon Driver
CONFIG_VMWARE_BALLOON
VMware物理內存balloon驅動.參見CONFIG_BALLOON_COMPACTION選項.
Generic on-chip SRAM driver
CONFIG_SRAM
許多SoC系統都有芯片內嵌的SRAM.開啓此項後,就可以聲明將此段內存範圍交給通用內存分配器(genalloc)管理.不確定的選"N".
EEPROM support
EEPROM主要用於保存主板或板卡的BIOS,如果你想通過此Linux系統刷寫BIOS可以考慮開啓相應的子項.不確定的全部選"N".
Intel Management Engine Interface
CONFIG_INTEL_MEI
Intel芯片組管理引擎,介於固件和系統驅動之間,類似於一種接口(Interface),幫助系統和固件之間交互.如果你的芯片組位於"CONFIG_INTEL_MEI_ME"中,可以選"Y",不過其實也沒有多少實際意義.
ME Enabled Intel Chipsets
CONFIG_INTEL_MEI_ME
請根據幫助中列出的芯片組對照實際情況選擇.
VMware VMCI Driver
CONFIG_VMWARE_VMCI
VMware VMCI(Virtual Machine Communication Interface)是一個在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".
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 +=12K)
CONFIG_SCSI_CONSTANTS
以易讀的方式報告SCSI錯誤,內核將會增大12K
SCSI logging facility
CONFIG_SCSI_LOGGING
啓用SCSI日誌(默認並不開啓,需要"echo [bitmask] > /proc/sys/dev/scsi/logging_level"),可用於跟蹤和捕獲SCSI設備的錯誤.關於[bitmask]的說明可以查看"drivers/scsi/scsi_logging.h"文件.
Asynchronous SCSI scanning
CONFIG_SCSI_SCAN_ASYNC
異步掃描的意思是,在內核引導過程中,SCSI子系統可以在不影響其他子系統引導的同時進行SCSI設備的探測(包括同時在多個總線上進行檢測),這樣可以加快系統的引導速度.但是如果SCSI設備驅動被編譯爲模塊,那麼異步掃描將會導致內核引導出現問題(解決方法是加載scsi_wait_scan模塊,或者使用"scsi_mod.scan=sync"內核引導參數).不確定的選"N".
SCSI Transports
SCSI接口類型,下面的子項可以全不選,內核中若有其他部分依賴它,會自動選上
Parallel SCSI (SPI) Transport Attributes
CONFIG_SCSI_SPI_ATTRS
傳統的並行SCSI(Ultra320/160之類),已逐漸被淘汰
FiberChannel Transport Attributes
CONFIG_SCSI_FC_ATTRS
光纖通道接口
SCSI target support for FiberChannel Transport Attributes
CONFIG_SCSI_FC_TGT_ATTRS
爲光纖通道添加"target"模式驅動
iSCSI Transport Attributes
CONFIG_SCSI_ISCSI_ATTRS
iSCSI協議是利用TCP/IP網絡傳送SCSI命令和數據的I/O技術
SAS Transport Attributes
CONFIG_SCSI_SAS_ATTRS
串行SCSI傳輸屬性支持(SAS對於SPI的關係猶如SATA對於IDE),這是目前的主流接口
SAS Domain Transport Attributes
CONFIG_SCSI_SAS_LIBSAS
爲使用了SAS Domain架構的驅動程序提供幫助.SAS Domain即整個SAS交換構架,由"SAS device"和"SAS expander device"組成,其中Device又區分爲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的引導信息.
{此處省略的部分按照實際使用的控制器進行選擇}
VMware PVSCSI driver support
CONFIG_VMWARE_PVSCSI
VMware半虛擬化的SCSI HBA控制器
Microsoft Hyper-V virtual storage driver
CONFIG_HYPERV_STORAGE
微軟的Hyper-V虛擬存儲控制器
Intel(R) C600 Series Chipset SAS Controller
CONFIG_SCSI_ISCI
Intel C600 系列芯片組 6Gb/s SAS控制器
virtio-scsi support
CONFIG_SCSI_VIRTIO
virtio虛擬HBA控制器
PCMCIA SCSI adapter support
CONFIG_SCSI_LOWLEVEL_PCMCIA
通過PCMCIA卡與計算機連接的SCSI設備
SCSI Device Handlers
CONFIG_SCSI_DH
針對某些特定SCSI設備的驅動,具體子項請按照實際使用的控制器進行選擇
OSD-Initiator library
CONFIG_SCSI_OSD_INITIATOR
OSD(Object-Based Storage Device)協議是一個T10 SCSI命令集,和SCSI處於同一級別,也跟SCSI很類似,分成osd-initiator/osd-target兩部分,用於對象存儲文件系統,此選項實現了OSD-Initiator庫(libosd.ko).更多細節參見"Documentation/scsi/osd.txt"文件.看不懂就說明你不需要.[提示]此選項依賴於CONFIG_CRYPTO_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")也依賴於它.
Device mapper debugging support
CONFIG_DM_DEBUG
僅供內核開發者調試使用
Crypt target support
CONFIG_DM_CRYPT
此模塊允許你創建一個經過透明加密的邏輯設備(使用cryptsetup工具),要使用加密功能,除此項外,還需要在"Cryptographic API"裏選中相應的加密算法,例如CONFIG_CRYPTO_AES.更多文檔請參考LUKS FAQ.
Snapshot target
CONFIG_DM_SNAPSHOT
允許卷管理器爲DM設備創建可寫的快照(定格於特定瞬間的一個設備虛擬映像).LVM2 Snapshot需要它的支持.更多詳情參見"Documentation/device-mapper/snapshot.txt"文檔.不確定的選"N".
Thin provisioning target
CONFIG_DM_THIN_PROVISIONING
"Thin provisioning"(某些地方翻譯爲"精簡配置")的意思是允許分配給所有用戶的總存儲容量超過實際的存儲容量(使用thin-provisioning-tools工具).例如給100個用戶分配空間,每個用戶最大允許10G空間,共計需要1000G空間.但實際情況是95%的用戶都只使用了不到1G的空間,那麼實際準備1000G空間就是浪費.有了"thin provisioning"的幫助,你實際只需要準備150G的空間就可以了,之後,可以隨着用戶需求的增加,添加更多的實際存儲容量,從而減少存儲投資和避免浪費.更多詳情參見"Documentation/device-mapper/thin-provisioning.txt"文檔.
Keep stack trace of thin provisioning block lock holders
CONFIG_DM_DEBUG_BLOCK_STACK_TRACING
僅用於調試目的
Cache target
CONFIG_DM_CACHE
dm-cache通過將頻繁使用的熱點數據緩存到一個容量較小但性能很高的存儲設備上,從而提升塊設備的性能.它支持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簡單的把所有數據都同步寫入到原始設備上,相當於關閉緩存.
Mirror target
CONFIG_DM_MIRROR
允許對邏輯捲進行鏡像,同時實時數據遷移工具pvmove也需要此項的支持.
RAID 1/4/5/6/10 target
CONFIG_DM_RAID
RAID 1/4/5/6/10 支持.即使使用ICH8R/ICH9R/ICH10R這樣的南橋,也不推薦使用"Device Mapper RAID"(既無性能優勢又依賴於特定硬件),應該直接使用更成熟的CONFIG_BLK_DEV_MD模塊.
Mirror userspace logging
CONFIG_DM_LOG_USERSPACE
device-mapper用戶空間日誌功能由內核模塊和用戶空間程序兩部分組成,此選項是內核模塊(API定義於"linux/dm-dirty-log.h"文件).不確定的選"N".
Zero target
CONFIG_DM_ZERO
"Zero target"類似於"/dev/zero",所有的寫入都被丟棄,所有的讀取都可以得到無限多個零.可用於某些恢復場合.
Multipath target
CONFIG_DM_MULTIPATH
設備映射多路徑(DM-Multipath)支持.不確定的選"N".
I/O Path Selector based on the number of in-flight I/Os
CONFIG_DM_MULTIPATH_QL
這是一個動態負載均衡路徑選擇器:選擇當前正在處理中的I/O數量最小的通路.
I/O Path Selector based on the service time
CONFIG_DM_MULTIPATH_ST
這是一個動態負載均衡路徑選擇器:選擇完成此I/O操作預期時間最少的通路.
I/O delaying target
CONFIG_DM_DELAY
對讀/寫操作進行延遲,並可將其發送到不同的設備.僅用於測試DM子系統.
DM uevents
CONFIG_DM_UEVENT
爲DM事件透過netlink向用戶層的udevd發出uevent通知,這樣就允許udevd在"/dev/"目錄中執行相應的操作.
Flakey target
CONFIG_DM_FLAKEY
模擬間歇性的I/O錯誤,以用於調試DM子系統.
Verity target support
CONFIG_DM_VERITY
Verity target 可以創建一個只讀的邏輯設備,然後根據預先生成的哈希校驗和(存儲在其他設備上),校驗底層設備上的數據正確性.要使此模塊正常工作,還需要在"Cryptographic API"部分選中相應的哈希算法.
Generic Target Core Mod (TCM) and ConfigFS Infrastructure
CONFIG_TARGET_CORE
通用TCM存儲引擎與ConfigFS虛擬文件系統(/sys/kernel/config)支持.看不懂就說明你不需要.
Fusion MPT device support
CONFIG_FUSION
Fusion MPT(Message Passing Technology) 是 LSI Logic 公司爲了更容易實現SCSI和光纖通道而提出的技術,支持Ultra320 SCSI/光纖通道/SAS.
IEEE 1394 (FireWire) support
火線(IEEE 1394)是蘋果公司開發的串行接口,類似於USB,但PC上並不常見,算得上是個沒有未來的技術了.
I2O device support
CONFIG_I2O
智能輸入輸出(Intelligent Input/Output)架構讓硬件驅動分成了兩部分:OSM(特定於操作系統)+HDM(特定於硬件,與操作系統無關).由於I2O設備上集成有專用的I/O處理器,從而加快I/O速度(因爲避免了CPU的參與).I2O屬於已被廢棄的技術,目前能見到的此類設備都屬於老古董了.
Macintosh device drivers
CONFIG_MACINTOSH_DRIVERS
蘋果的Macintosh電腦上的專有設備驅動
Network device support
CONFIG_NETDEVICES
網絡設備.除非你不想連接任何網絡,否則必選"Y".
Network core driver support
CONFIG_NET_CORE
如果你不想使用任何高級網絡功能(撥號網絡/EQL/VLAN/bridging/bonding/光纖通道/虛擬網絡等),僅僅是一般性質的聯網(普通服務器,通過路由器或者局域網上網的常規個人電腦),可以選"N".此外,某些網卡的驅動會依賴於其下的CONFIG_MII子項(會被自動選中).
Bonding driver support
CONFIG_BONDING
鏈路聚合技術擁有多個不同的稱謂:Linux稱爲"Bonding",IEEE稱爲"802.3ad",Sun稱爲"Trunking",Cisco稱爲"Etherchannel".該技術可以將多個以太網通道聚合爲一個單獨的虛擬適配器,例如將兩塊網卡聚合成一個邏輯網卡,可以用來實現負載均衡或硬件冗餘.
Dummy net driver support
CONFIG_DUMMY
Dummy網絡接口本質上是一個可以配置IP地址的bit-bucket(位桶,所有發送到此設備的流量都將被湮滅),以使應用程序看上去正在和一個常規的網絡接口進行通信.使用SLIP(小貓撥號,目前應該已經絕跡了)或PPP(常用於PPPoE ADSL)的用戶需要它
EQL (serial line load balancing) support
CONFIG_EQUALIZER
串行線路的負載均衡.如果有兩個MODEM和兩條SLIP/PPP線路,該選項可以讓你同時使用這兩個通道以達到雙倍速度(網絡的對端也要支持EQL技術).曾經曇花一現的ISDN就這項技術的一個實例.
Fibre Channel driver support
CONFIG_NET_FC
光纖通道(Fibre Channel)是一種高速網絡串行協議,主要用於存儲局域網(SAN),它與SCSI協議兼容,並意在取代SCSI.與傳統的SCSI技術相比,除了提供更高的數據傳輸速度,更遠的傳輸距離,更多的設備連接支持,更穩定的性能,更簡易的安裝以外,最重要的是支持最新的網絡區域存儲(SAN)技術.如果你的機器上有光纖通道卡(FC卡),除了需要開啓此項外,還需要開啓相應的FC卡驅動,以及CONFIG_CHR_DEV_SG選項.
Generic Media Independent Interface device support
CONFIG_MII
媒體獨立接口(Media Independent Interface)又稱介質無關接口,是IEEE-802.3(規定了以太網相關協議的具體內容)定義的以太網行業標準.它包括一個數據接口,以及一個位於MAC和PHY之間的控制接口.[提示]大多數以太網卡都有MII收發器,其驅動都依賴於此項,也會自動選中此項.
Intermediate Functional Block support
CONFIG_IFB
IFB是一箇中間層驅動,可以用來靈活的配置資源共享.更多信息參見iproute2文檔.看不懂就說明你不需要.
Ethernet team driver support
CONFIG_NET_TEAM
允許通過"ip link add link [ address MAC ] [ NAME ] type team"命令,將多個以太網卡(稱爲"port")組合在一起,創建一個虛擬的"team"網絡設備,其目的是取代傳統的"Bonding"(CONFIG_BONDING)驅動."ip"是iproute2包中的一個命令.不確定的選"N".
MAC-VLAN support
CONFIG_MACVLAN
MAC-VLAN是通過MAC地址來劃分VLAN的方式,在Linux則用來給網卡添加多個MAC地址.你可以使用"ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"命令創建一個虛擬的"macvlan"設備(系統會自動打開網卡的混雜模式),然後就可以在同一個物理網卡上虛擬出多個以太網口.
MAC-VLAN based tap driver
CONFIG_MACVTAP
基於MAC-VLAN接口的tap(虛擬以太網設備)字符設備(macvtap)驅動,旨在簡化虛擬化的橋接網絡,目的是替代TUN/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"文檔.看不懂就表明你不需要.
Virtual ethernet pair device
CONFIG_VETH
該驅動提供了一個本地以太網隧道(設備會被成對的創建).
Virtio network driver
CONFIG_VIRTIO_NET
virtio虛擬網卡驅動.可以用於lguest或者基於QEMU的虛擬機管理程序(例如KVM/Xen).
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中明確列出的型號外,其他型號用的都是這個驅動.
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"這樣的文件.
Intel Wireless WiFi DVM Firmware support
CONFIG_IWLDVM
DVM固件支持(這也是當前唯一可用的固件).選"Y/M".[提示]如果你將此驅動靜態編譯進內核,那麼務必使用CONFIG_EXTRA_FIRMWARE功能將固件也一起編譯進內核.
Intel Wireless WiFi MVM Firmware support
CONFIG_IWLMVM
MVM固件支持(這是專用於7000系列無線網卡的固件).
Debugging Options
僅供調試使用,其下所有選項都選"N".
iwlwifi experimental P2P support
CONFIG_IWLWIFI_P2P
iwlwifi驅動實驗性的P2P支持.不確定的選"N".
WiMAX Wireless Broadband devices
WiMAX無線設備
Wan interfaces support
CONFIG_WAN
廣域網(Wide Area Network)網卡支持.這種網卡很罕見.不確定的選"N".
IEEE 802.15.4 drivers
CONFIG_IEEE802154_DRIVERS
IEEE 802.15.4描述了低速率無線個人局域網的物理層和媒體接入控制協議
Xen network device frontend driver
CONFIG_XEN_NETDEV_FRONTEND
XEN半虛擬化網絡設備前端驅動(通常是被"domain 0"導出的)
Xen backend network device
CONFIG_XEN_NETDEV_BACKEND
XEN半虛擬化網絡設備後端驅動,通常被用在"domain 0"內核上,用於向其他domain導出半虛擬化網絡設備.
VMware VMXNET3 ethernet driver
CONFIG_VMXNET3
VMware vmxnet3 虛擬以太網卡驅動
Microsoft Hyper-V virtual network driver
CONFIG_HYPERV_NET
Microsoft Hyper-V 虛擬以太網卡驅動
ISDN support
CONFIG_ISDN
上世紀在ADSL流行之前曾經有過短暫流行,但現在已經絕跡了
Input device support
輸入設備
Generic input layer (needed for keyboard, mouse, ...)
CONFIG_INPUT
通用輸入層.只要你有任何輸入設備(鍵盤,鼠標,手寫板,觸摸板,遊戲杆,方向盤,遊戲鍵盤...),就必須選"Y".
Support for memoryless force-feedback devices
CONFIG_INPUT_FF_MEMLESS
遊戲玩家使用的力反饋設備,例如: Logitech WingMan Force 3D 飛行搖桿ThrustMaster FireStorm Dual Power 2.如果你有此類設備,除了本項之外,還需要開啓特定於硬件的驅動.
Polled input device skeleton
CONFIG_INPUT_POLLDEV
使用輪詢機制的輸入設備支持,此項主要是爲源碼樹之外的驅動準備的,內核自帶的驅動若有需要會自動選中.不確定的選"N".
Sparse keymap support library
CONFIG_INPUT_SPARSEKMAP
使用"sparse keymap"的輸入設備支持,此項主要是爲源碼樹之外的驅動準備的,內核自帶的驅動若有需要會自動選中.不確定的選"N".
Matrix keymap support library
CONFIG_INPUT_MATRIXKMAP
使用"matrix keymap"的輸入設備支持,此項主要是爲源碼樹之外的驅動準備的,內核自帶的驅動若有需要會自動選中.不確定的選"N".
Mouse interface
CONFIG_INPUT_MOUSEDEV
鼠標接口(/dev/input/mouseX,/dev/input/mice).用鼠標的必選.[提示]如果系統上有多個鼠標,那麼,mouseX對應單個特定的鼠標,而mice則是所有鼠標的集合(所有鼠標的事件都會被髮送到這個設備文件中).
Provide legacy /dev/psaux device
CONFIG_INPUT_MOUSEDEV_PSAUX
仍然支持傳統的/dev/psaux接口,這是爲兼容老舊的程序而設置.選"N".
Horizontal screen resolution
CONFIG_INPUT_MOUSEDEV_SCREEN_X
作爲鼠標使用的數字化轉換器(digitizer)或手寫板(graphic tablet)需要知道X window的水平分辯率.一般可理解爲顯示屏的水平分辨率.
Vertical screen resolution
CONFIG_INPUT_MOUSEDEV_SCREEN_Y
作爲鼠標使用的數字化轉換器(digitizer)或手寫板(graphic tablet)需要知道X window的垂直分辯率.一般可理解爲顯示屏的垂直分辨率.
Joystick interface
CONFIG_INPUT_JOYDEV
遊戲杆(joystick)和遊戲鍵盤(gamepad)支持(/dev/input/jsX)
Event interface
CONFIG_INPUT_EVDEV
將所有的輸入設備事件都通過"/dev/input/eventX"以一種通用的方式進行處理.Xorg需要使用此接口.不確定的選"Y".
Event debugging
CONFIG_INPUT_EVBUG
將所有輸入設備的動作(鍵盤按下,鼠標移動等)都記錄到系統日誌當中.主要用於調試,同時也會帶來安全漏洞(鍵盤輸入中很可能包含你的密碼).選"N".
Keyboards
CONFIG_INPUT_KEYBOARD
鍵盤驅動
AT keyboard
CONFIG_KEYBOARD_ATKBD
標準AT鍵盤或者PS/2鍵盤.[提示]除了臺式機PS/2接口上的鍵盤外,許多筆記本的鍵盤其實也是PS/2鍵盤.使用USB鍵盤或者ADB鍵盤(舊式蘋果鍵盤)的可以選"N".
{此處被省略的鍵盤都很罕見,基本上不必考慮}
Mice
CONFIG_INPUT_MOUSE
鼠標驅動
PS/2 mouse
CONFIG_MOUSE_PS2
標準的兩鍵或三鍵的PS/2鼠標,同時兼容Microsoft/Logitech/Genius生產的帶有滾輪或者額外按鍵的PS/2鼠標.使用Synaptics/ALPS/Elantech觸摸板的用戶還可以看看其專用的X驅動,這些驅動可以提供更多的高級功能.使用USB鼠標的可以選"N".其下的子項是針對各廠商特定產品的擴展協議支持.按需選擇即可.[提示]除了臺式機PS/2接口上的鼠標外,許多筆記本的觸摸板其實也是PS/2鼠標.
{此處被省略的鼠標都很罕見,基本上不必考慮}
Joysticks/Gamepads
遊戲杆,6自由度搖桿,遊戲鍵盤,方向盤,射擊武器...等各種遊戲裝置
Tablets
CONFIG_INPUT_TABLET
平板輸入設備
Touchscreens
CONFIG_INPUT_TOUCHSCREEN
觸摸屏輸入設備
Miscellaneous devices
CONFIG_INPUT_MISC
其他雜項輸入設備
PC Speaker support
CONFIG_INPUT_PCSPKR
標準蜂鳴器.建議開啓.
{此處被省略的其他設備都很罕見,基本上不必考慮}
Hardware I/O ports
硬件I/O端口
Serial I/O support
CONFIG_SERIO
串行I/O硬件支持.標準AT鍵盤,PS/2鼠標,串口鼠標,Sun鍵盤,遊戲杆,6自由度搖桿等設備都依賴於它.不確定的選"Y".
i8042 PC Keyboard controller
CONFIG_SERIO_I8042
標準AT鍵盤,PS/2鼠標,這兩種設備需要它的支持.
Serial port line discipline
CONFIG_SERIO_SERPORT
RS232串口(COM).串口鼠標,遊戲杆,6自由度搖桿等設備都依賴於它.
ct82c710 Aux port controller
CONFIG_SERIO_CT82C710
一種德州儀器TravelMate筆記本上使用QuickPort接口的鼠標
Parallel port keyboard adapter
CONFIG_SERIO_PARKBD
並口鍵盤適配器,用於將AT/XT鍵盤或PS/2鼠標轉接到並口上.非常罕見.
PCI PS/2 keyboard and PS/2 mouse controller
CONFIG_SERIO_PCIPS2
接在移動式擴展塢(Docking station)上的PS/2鍵盤或鼠標
PS/2 driver library
CONFIG_SERIO_LIBPS2
爲PS/2接口上的設備提供驅動(比如PS/2鼠標和標準AT鍵盤)
Raw access to serio ports
CONFIG_SERIO_RAW
以raw方式訪問serio接口(echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl),例如i8042鍵盤控制器的AUX端口.看不懂的就別選了.
Altera UP PS/2 controller
CONFIG_SERIO_ALTERA_PS2
Altera University Program PS/2 端口支持.不確定的選"N".
TQC PS/2 multiplexer
CONFIG_SERIO_PS2MULT
TQC板上的PS/2端口複用器(multiplexer)
ARC PS/2 support
CONFIG_SERIO_ARC_PS2
ARC FPGA 平臺上的PS/2控制器
Gameport support
CONFIG_GAMEPORT
15針電腦遊戲接口(Gameport).
Character devices
字符設備
Enable TTY
CONFIG_TTY
字符終端和串口都需要TTY的支持.選"Y",除非你知道自己在幹什麼.[提示]你想在控制檯上顯示漢字嗎?試試CJKTTY補丁吧!
Virtual terminal
CONFIG_VT
虛擬終端可以在一個物理終端設備上虛擬出多個"顯示器+鍵盤"的組合(可以使用"Alt+Fn"組合鍵在多個虛擬終端間切換).除非是嵌入式系統,否則必選"Y".
Enable character translations in console
CONFIG_CONSOLE_TRANSLATIONS
在虛擬控制檯(console)上支持字體映射和Unicode轉換.建議選"Y",否則將無法在控制檯上顯示Unicode字符.
Support for console on virtual terminal
CONFIG_VT_CONSOLE
內核默認將第一個虛擬終端(/dev/tty0)用作系統控制檯(可以通過"console=tty3"這樣的參數去修改),將諸如模塊錯誤/內核錯誤/啓動信息之類的警告信息發送到這裏,而且以單用戶模式登錄時也需要使用這個控制檯.除非是嵌入式系統,否則必選"Y".
Support for binding and unbinding console drivers
CONFIG_VT_HW_CONSOLE_BINDING
虛擬終端是通過控制檯驅動程序與物理終端交互的,但在某些系統上可以使用多個控制檯驅動程序(如framebuffer控制檯驅動程序),該選項使得你可以選擇其中之一.如果你需要使用多個控制檯驅動,可以選"Y",不確定的選"N".參見"Documentation/console/console.txt"和"Documentation/fb/fbcon.txt"獲取更多細節.
Unix98 PTY support
CONFIG_UNIX98_PTYS
僞終端(PTY)是指一個"軟件終端",它是由slave(等價於一個物理終端)和master(被一個諸如xterm之類的進程用來讀寫slave設備)兩部分組成的軟設備.圖形界面用戶與需要支持ssh/telnet遠程登錄者必選.
Support multiple instances of devpts
CONFIG_DEVPTS_MULTIPLE_INSTANCES
允許多個"devpts"文件系統實例(使用"-o newinstance"掛載選項),以允許相互隔離的PTY命名空間(比如在虛擬化容器中).不確定的選"N".
Legacy (BSD) PTY support
CONFIG_LEGACY_PTYS
使用過時的BSD風格的/dev/ptyxx作爲master,/dev/ttyxx作爲slave,這個方案有一些安全問題,選"N".
Non-standard serial port support
CONFIG_SERIAL_NONSTANDARD
非標準串口支持.這樣的設備非常罕見,選"N".
HSDPA Broadband Wireless Data Card - Globe Trotter
CONFIG_NOZOMI
一種PCMCIA接口的HSDPA(WCDMA) 3G 無線上網卡
Multi-Tech multiport card support
CONFIG_ISI
Multi-Tech公司生產的多端口卡(擁有多個串口)實驗性支持.不確定的選"N".
HDLC line discipline support
CONFIG_N_HDLC
Microgate SyncLink.不確定的選"N".
GSM MUX line discipline support
CONFIG_N_GSM
GSM MUX(多路複用器)支持.不確定的選"N".
Trace data router for MIPI P1149.7 cJTAG standard
CONFIG_TRACE_ROUTER
僅用於調試內含modem設備的手機系統.
Trace data sink for MIPI P1149.7 cJTAG standard
CONFIG_TRACE_SINK
僅用於調試內含modem設備的手機系統.
KCopy
內核Copy
Memory-to-memory copies using kernel assist
CONFIG_KCOPY
高性能的進程間內存複製(可以減少一次向共享內存的複製動作).主要用於高性能並行計算領域,比如基於消息傳遞接口(Message Passing Interface)協議的開發的並行程序.不確定的選"N".
/dev/kmem virtual device support
CONFIG_DEVKMEM
"/dev/kmem"虛擬設備是內核看到的虛擬內存的全鏡像,可以用來訪問內核內存.一般可以用來查看內核變量或者用作rootkit之類(!危險!).僅供調試,不確定的選"N".
Serial drivers
串口(COM)驅動.串口在臺式機主板上正在逐漸消亡,而在筆記本和服務器上早就已經絕跡了.大多數人應該將所有子項都選"N".
8250/16550 and compatible serial support
CONFIG_SERIAL_8250
這是標準串口(COM)驅動.只要你想使用串口,就必選此項.不過,大多數人應該選"N".
Support 8250_core.* kernel options
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS
選"N".
8250/16550 PNP device support
CONFIG_SERIAL_8250_PNP
即插即用串口支持,不確定的選"Y".
Console on 8250/16550 and compatible serial port
CONFIG_SERIAL_8250_CONSOLE
將串口當做系統控制檯(接受所有內核消息,單用戶模式登錄)使用(需要使用"console=ttyS1"參數).僅在沒有顯示接口嵌入式設備上有用.不確定的選"N".
DMA support for 16550 compatible UART controllers
CONFIG_SERIAL_8250_DMA
與標準8250/16650兼容的通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter)的DMA支持.在嵌入式設計中,UART用來主機與輔助設備通信,如汽車音響與外接AP之間的通信,與PC機通信包括與監控調試器和其它器件(如EEPROM)通信.不確定的選"Y".
8250/16550 PCI device support
CONFIG_SERIAL_8250_PCI
PCI串口支持.選"N"表示僅支持傳統的標準串口.
8250/16550 PCMCIA device support
CONFIG_SERIAL_8250_CS
16-bit PCMCIA串口支持.選"N"表示僅支持傳統的標準串口.
Maximum number of 8250/16550 serial ports
CONFIG_SERIAL_8250_NR_UARTS
允許的最大串口數量,保持默認值即可.
Number of 8250/16550 serial ports to register at runtime
CONFIG_SERIAL_8250_RUNTIME_UARTS
內核在啓動時註冊的串口數量(可以通過"8250.nr_uarts"參數修改),保持默認即可.
Extended 8250/16550 serial driver options
CONFIG_SERIAL_8250_EXTENDED
非標準的串口驅動選項(例如HUB6,中斷共享,多端口,超過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串口.看不懂的選"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),用於客戶機和宿主機之間的通信.Virtio的目標是爲各種半虛擬化的虛擬機管理程序(特別是KVM)提供一組通用的模擬設備.
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".
IPMI Watchdog Timer
CONFIG_IPMI_WATCHDOG
啓用IPMI Watchdog定時器.如果硬件有這種功能,推薦選"Y".
IPMI Poweroff
CONFIG_IPMI_POWEROFF
允許通過IPMI消息處理器關閉機器
Hardware Random Number Generator Core support
CONFIG_HW_RANDOM
硬件隨機數發生器設備(/dev/hw_random)支持.此設備並不會直接向內核的隨機數發生器填充(這是"rngd"守護進程的職責).詳情參見"Documentation/hw_random.txt"文檔.不確定的選"Y".
Timer IOMEM HW Random Number Generator support
CONFIG_HW_RANDOM_TIMERIOMEM
Technologic Systems 的TS-7800單板計算機,這是一個嵌入式設備.
Intel HW Random Number Generator support
CONFIG_HW_RANDOM_INTEL
Intel基於i8xx芯片組的硬件隨機數發生器
AMD HW Random Number Generator support
CONFIG_HW_RANDOM_AMD
AMD基於76x芯片組的硬件隨機數發生器
Atmel Random Number Generator support
CONFIG_HW_RANDOM_ATMEL
Atmel AT91 硬件隨機數發生器
VIA HW Random Number Generator support
CONFIG_HW_RANDOM_VIA
VIA芯片組的硬件隨機數發生器
VirtIO Random Number Generator support
CONFIG_HW_RANDOM_VIRTIO
Virtio虛擬的硬件隨機數發生器
EXYNOS HW random number generator support
CONFIG_HW_RANDOM_EXYNOS
基於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".
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".
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".
Enable compatibility bits for old user-space
CONFIG_I2C_COMPAT
爲了與 lm-sensors 3.1.2 之前的版本兼容而設置.某些2011年之前版本的i2c相關程序也需要此兼容性.
I2C device interface
CONFIG_I2C_CHARDEV
I2C設備通常都是由內核控制的,但此選項可以向用戶空間提供I2C設備接口,以允許用戶空間的程序通過/dev/i2c-*字符設備文件使用I2C總線.詳情參見"Documentation/i2c/dev-interface"文檔.不確定的選"N".
I2C bus multiplexing support
CONFIG_I2C_MUX
多路複用I2C總線支持.不確定的選"N".
Multiplexer I2C Chip support
I2C多路複用芯片,其下的子項按實際情況選擇就OK了
Autoselect pertinent helper modules
CONFIG_I2C_HELPER_AUTO
有一些I2C驅動程序需要"I2C algorithm"的幫助才能工作.而"I2C算法"本質上是I2C接口的純軟件抽象.開啓此項後,如有需要,則會自動選上這些算法,而無需你再手動選擇.推薦選"Y".僅在你想使用額外的算法時,才選"N".
SMBus-specific protocols
CONFIG_I2C_SMBUS
SMBus特有的擴展支持.目前唯一實際支持的擴展是SMBus報警協議.建議選"Y".
I2C Algorithms
I2C算法,子項可以全不選,若有其他部分依賴其子項時,會自動選上
I2C Hardware Bus support
I2C硬件支持
*** PC SMBus host controller drivers ***
這部分按照主板芯片組的實際情況選擇就OK了
SMBus Control Method Interface
CONFIG_I2C_SCMI
SMBus控制方法接口(Control Method Interface)是SMBus的ACPI接口.用於在ACPI環境中使用SMBus設備.不確定的選"M"(i2c-scmi).
{其餘被省略的都是用於嵌入式系統或者額外的I2C/SMBus擴展卡,按實際情況選擇即可}
I2C/SMBus Test Stub
CONFIG_I2C_STUB
用於幫助開發SMBus client驅動(特別是某些傳感器芯片).詳情參見"Documentation/i2c/i2c-stub"文檔.不確定的選"N".
I2C Core debugging messages
CONFIG_I2C_DEBUG_CORE
向系統日誌中傳遞大量的I2C Core調試信息.僅用於調試I2C設備故障
I2C Algorithm debugging messages
CONFIG_I2C_DEBUG_ALGO
向系統日誌中傳遞大量的I2C Algorithm調試信息.僅用於調試I2C設備故障
I2C Bus debugging messages
CONFIG_I2C_DEBUG_BUS
向系統日誌中傳遞大量的I2C Bus調試信息.僅用於調試I2C設備故障
SPI support
CONFIG_SPI
串行外設接口(Serial Peripheral Interface)是一種標準的四線同步雙向串行總線.SPI類似於I2C,但比I2C的"2線"稍微複雜一些,SPI需要4個引腳("4線"),不但傳輸速率比I2C更高,還能實現全雙工通信.大多數SPI設備不支持動態設備檢測,有些甚至是隻讀或者只寫的.SPI常用於微控制器(Microcontroller)與外圍設備(RTC,傳感器,EEPROM,FLASH,解/編碼器,模數轉換器,數字信號處理器)之間的通信,MMC和SD卡也可以通過SPI協議訪問,而MMC接口的DataFlash卡則必須通過SPI才能訪問.僅用於嵌入式環境,PC平臺上沒有這樣的設備.
Qualcomm MSM SSBI bus support
CONFIG_SSBI
高通(Qualcomm)驍龍系列智能手機處理器內嵌的單線串行總線接口(Single-wire Serial Bus Interface)
HSI support
CONFIG_HSI
高速同步串行接口(High speed synchronous Serial Interface)是移動產業處理器接口(MIPI)聯盟的高速同步接口工作組發佈的一項技術規範.MIPI(Mobile Industry Processor Interface)是2003年由ARM,Nokia,ST,TI等公司成立的一個聯盟,目的是把手機內部的接口(如攝像頭,顯示屏接口,射頻/基帶接口等)標準化,從而減少手機設計的複雜程度和增加設計靈活性.MIPI聯盟下面有不同的工作組,分別定義了一系列的手機內部接口標準,比如攝像頭接口CSI,顯示接口DSI,射頻接口DigRF,麥克風/揚聲器接口SLIMbus等.統一接口標準的好處是手機廠商根據需要可以從市面上靈活選擇不同的芯片和模組,更改設計和功能時更加快捷方便.目前,MIPI聯盟的董事成員包括英特爾,摩托羅拉,諾基亞,三星,意法半導體,德州儀器.
PPS support
CONFIG_PPS
秒脈衝(Pulse Per Second)是GPS天線的一項功能,用於獲取GPS衛星的授時.PPS的精度可以到納秒級,而且沒有累積誤差.
PTP clock support
CONFIG_PTP_1588_CLOCK
精密時間協議(Precision Time Protocol)是IEEE 1588定義的一種基於以太網的高精度時間同步協議.PTP採用硬件與軟件結合設計,可以提供比純軟件方式的NTP(網絡時間協議)高的多的精度(微秒級).與GPS授時相比,在提供和GPS相同的精度情況下,PTP不需要爲每個設備安裝GPS那樣昂貴的組件,只需要一個高精度的本地時鐘和提供高精度時鐘戳的部件,成本較低.一般的PC和服務器上沒有PTP硬件.
GPIO Support
CONFIG_GPIOLIB
每個芯片都會有至少一個引腳(PIN),像CPU或者芯片組這種複雜的芯片,其引腳會有成白上千個,這些PIN就是芯片與外部溝通的渠道,每個PIN都會有它特定的功能.GPIO(General Purpose I/O)就是芯片上的一種通用功能的引腳,其功能可由使用者通過編程的方式自定義(所謂"可編程引腳"),比如使用兩條PIN就可以組成I2C,使用4條PIN就可以組成SPI.嵌入式系統經常需要控制結構簡單但數量衆多的外部設備(比如LED的亮與滅),使用傳統的串口或者並口就太"大炮打蚊子",而GPIO則非常適合用於控制此類數量衆多的簡單設備.GPIO在嵌入式設備中使用廣泛,但PC平臺的芯片組大多也集成有GPIO引腳.詳情參見"Documentation/gpio/gpio.txt"文檔.
Debug GPIO calls
CONFIG_DEBUG_GPIO
僅供調試使用
/sys/class/gpio/... (sysfs interface)
CONFIG_GPIO_SYSFS
爲GPIO設備添加sysfs接口.主要用於調試和問題排查.不確定的選"N".
Generic memory-mapped GPIO controller support (MMIO platform device)
CONFIG_GPIO_GENERIC_PLATFORM
這是最簡單的GPIO控制器驅動(platform總線驅動),僅支持單獨一個"data"寄存器,用於讀/寫GPIO的狀態.不確定的選"Y".
{這裏被省略的部分,按主板上實際集成的芯片選擇即可}
Dallas's 1-wire support
CONFIG_W1
Dallas公司發明的單總線是比I2C更簡單的總線,僅使用一個引腳(1-wire),使用Master-Slave結構,用於連接慢速的單引腳設備,比如iButton和熱傳感器.主要用於嵌入式系統.
Power supply class support
CONFIG_POWER_SUPPLY
允許用戶空間程序通過sysfs/uevent接口對電源(電池,交流電,USB)進行監控.建議選"Y".
Power supply debug
CONFIG_POWER_SUPPLY_DEBUG
僅供調試使用
Generic PDA/phone power driver
CONFIG_PDA_POWER
通用的PDA/phone電源切換驅動.用於在內部電池和外部電源(AC/USB)之間進行切換.
Generic battery support using IIO
CONFIG_GENERIC_ADC_BATTERY
爲使用IIO總線(CONFIG_IIO)的電池提供的通用驅動
Test power driver
CONFIG_TEST_POWER
僅供測試使用
SBS Compliant gas gauge
CONFIG_BATTERY_SBS
智能電池系統(Smart Battery System)規範兼容的氣壓計(集成在電池組中)支持.
GPIO charger
CONFIG_CHARGER_GPIO
支持充電器通過GPIO引腳報告其在線狀態.
Board level reset or power off
CONFIG_POWER_RESET
允許通過操作板載的主電源,關閉或重啓整個系統.
{這裏被省略的部分,按實際電池控制芯片選擇即可}
Adaptive Voltage Scaling class support
CONFIG_POWER_AVS
自適應電壓調節(Adaptive Voltage Scaling)技術能夠動態的對設備工作電壓進行精細的調整,擁有比DVFS更佳的電力利用效率,是一種降低功耗與優化性能並舉的電源與性能管理技術.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"文檔.
Default Thermal governor
選擇默認的熱調節器,建議選"step_wise".
Fair-share thermal governor
CONFIG_THERMAL_GOV_FAIR_SHARE
此調節器根據設備對所屬區域的"貢獻"(contribution)進行調節.
Step_wise thermal governor
CONFIG_THERMAL_GOV_STEP_WISE
此調節器以線性方式進行調節,也就是每次調節都只在緊鄰的兩檔之間進行切換.
User_space thermal governor
CONFIG_THERMAL_GOV_USER_SPACE
此調節器讓用戶空間程序去決定如何調節
generic cpu cooling support
CONFIG_CPU_THERMAL
通用的CPU降溫機制(通過降低頻率來實現,而不是通過ACPI接口).顯然通過ACPI接口是更好的機制,所以建議選"N".
Thermal emulation mode support
CONFIG_THERMAL_EMULATION
"Thermal"模擬.僅供調試使用,切勿用於生產系統!!
Intel PowerClamp idle injection driver
CONFIG_INTEL_POWERCLAMP
Intel PowerClamp 驅動通過利用Nehalem之後的CPU支持的"package-level C-state"特性,強制爲在線的CPU注入"idle"指令(通過"/sys/class/thermal/"接口設定"idle"百分比),以確保CPU的功耗不會超過特定的閾值(發熱量也就不會超過特定的閾值).這樣刻意的降低系統性能峯值還有一個好處,那就是相對於傳統的動態頻率調節技術而言,能夠達到更高的每瓦特性能.詳見Documentation/thermal/intel_powerclamp.txt文檔.如果你對節能和限制發熱量特別在意,同時又不在乎系統峯值性能的降低,可以選"Y".
Watchdog Timer Support
CONFIG_WATCHDOG
選"Y"並選中下面相應的驅動之後,再創建一個主/次設備號爲10/130的字符設備"/dev/watchdog",即可擁有一隻看門狗.其工作原理是:當/dev/watchdog設備被打開後,如果喂狗守護進程超過60秒沒有喂狗(寫入"/dev/watchdog"),那麼底層的看門狗硬件將會觸發整個機器硬重啓(相當於按下面板上的"RESET"按鈕).這對於提高服務器的在線率來說意義重大.詳情參見"Documentation/watchdog/watchdog-api.txt"文檔.
WatchDog Timer Driver Core
CONFIG_WATCHDOG_CORE
看門狗核心驅動,它爲所有特定於具體硬件的看門狗驅動提供了統一的框架和"/dev/watchdog"接口(未來還會包括sysfs接口).使用看門狗的必選.
Disable watchdog shutdown on close
CONFIG_WATCHDOG_NOWAYOUT
默認情況下(此項="N")如果喂狗進程關閉"/dev/watchdog"文件,那麼表示停止看門狗功能.開啓此項後,看門狗一旦啓用就不能被停止(即使關閉"/dev/watchdog"文件也不會停止).
Software watchdog
CONFIG_SOFT_WATCHDOG
內核提供的"軟看門狗".使用它不需要有任何硬件的支持,但可靠性不如硬件看門狗,僅能應對喂狗進程的崩潰,不能應對內核本身的崩潰.在某些情況下(例如Oracle數據庫),CONFIG_HANGCHECK_TIMER是比"軟看門狗"更好的選擇.
{此處省略的看門狗硬件請按照實際使用的芯片進行選擇}
Sonics Silicon Backplane support
CONFIG_SSB
SSB(Sonics Silicon Backplane)是一種僅在嵌入式環境中使用的總線.
Broadcom specific AMBA
CONFIG_BCMA
Broadcom特有的AMBA(Advanced Microcontroller Bus Architecture)總線支持.僅用於嵌入式環境
Multifunction device drivers
MFD(多功能設備)的含義是"在單個芯片上集成多個功能(GPIO,觸摸屏,鍵盤,電流調節,電源管理...)".此種芯片通常通過一個或多個IRQ線和低速數據總線(SPI/I2C/GPIO)與主CPU進行通信.對於主系統來說,它們通過數據總線顯示爲一個單獨的MFD設備.但透過MFD框架,又可以擁有多個相互獨立的子設備(子功能).MFD多用於嵌入式環境.
Intel ICH LPC
CONFIG_LPC_ICH
LPC(Low Pin Count)總線是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"文件.
Intel SCH LPC
CONFIG_LPC_SCH
用於 Intel Atom 處理器的 Intel SCH(System Controller Hub) LPC 總線支持.目前僅支持SMBus和GPIO.
{此處省略的硬件請按照實際使用的芯片進行選擇}
Voltage and Current Regulator Support
CONFIG_REGULATOR
通用的電壓與電流調節器框架.除了提供通用的電壓與電流調節接口外,還能通過sysfs向用戶空間提供電壓與電流的狀態信息.目的在於通過動態調節電壓和電流,降低能耗,延長電池壽命.建議筆記本用戶選"Y".
Multimedia support
CONFIG_MEDIA_SUPPORT
多媒體設備:攝像頭,視頻採集,模擬電視,數字電視,機頂盒,收音機,遙控器,數字視頻廣播(DVB)...內核多媒體子系統由LinuxTV項目負責維護.
Cameras/video grabbers support
CONFIG_MEDIA_CAMERA_SUPPORT
攝像頭,視頻採集卡
Analog TV support
CONFIG_MEDIA_ANALOG_TV_SUPPORT
模擬電視信號接收器,包括那些既能接收模擬信號又能接收數字信號的電視卡
Digital TV support
CONFIG_MEDIA_DIGITAL_TV_SUPPORT
數字電視信號接收器,包括那些既能接收模擬信號又能接收數字信號的電視卡
AM/FM radio receivers/transmitters support
CONFIG_MEDIA_RADIO_SUPPORT
AM/FM無線電接收機和發射機,包括那些帶有收音機功能的電視卡
Remote Controller support
CONFIG_MEDIA_RC_SUPPORT
基於紅外線/射頻的遙控器,用於控制視頻採集卡或者電視卡.大多數電視卡和視頻採集卡都需要它的支持,即使這些卡實際並不需要遙控器.
Media Controller API
CONFIG_MEDIA_CONTROLLER
此API用於查詢多媒體設備內部的拓撲結構,並進行動態配置.主要用於嵌入式環境中的攝像頭配置.
V4L2 sub-device userspace API
CONFIG_VIDEO_V4L2_SUBDEV_API
此API用於配置視頻的格式/尺寸/幀率.主要用於嵌入式環境中的攝像頭配置.
Enable advanced debug functionality on V4L2 drivers
CONFIG_VIDEO_ADV_DEBUG
開啓V4L2驅動程序的高級調試特性,不確定的選"N".
Enable old-style fixed minor ranges on drivers/video devices
CONFIG_VIDEO_FIXED_MINOR_RANGES
僅在你使用mknod而不是udev進行設備管理時才需要開啓.不確定的選"N".
V4L2 int device (DEPRECATED)
CONFIG_VIDEO_V4L2_INT_DEVICE
僅用於舊式的圖像傳感器驅動(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系列芯片組)也不是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裏的一些概念.
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支持.[注意]僅用於服務器芯片,不要用於桌面芯片!
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的高度可移植性也就根源於此.圖形界面用戶必選.
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文本模式控制檯.僅服務器環境可以考慮選"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特性依賴於它.桌面用戶必選"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".
Support for the Framebuffer Console Decorations
CONFIG_FB_CON_DECOR
允許在控制檯上顯示背景圖像,例如在系統啓動時,在一堆滾動的字符背後顯示漂亮的背景圖像.當然,要實現這個功能,還需要用戶空間程序的幫助.詳見"Documentation/fb/fbcondecor.txt"文檔以及fbsplash的wiki頁.
Select compiled-in fonts
CONFIG_FONTS
選擇內嵌到內核中的字體(點陣字庫,僅包含ASCII字符擴展ASCII字符,共256個).選"N"表示內嵌自動選擇的默認字體,選"Y"表示可以手動選擇內嵌的字體.[提示]可到drivers/video/console目錄下找到相應的"font_*.c"文件,將其中的"0"全部替換爲空格,即可看到點陣字符.
VGA 8x8 font
CONFIG_FONT_8x8
這是傳統上高分辨率(高於80x50)下使用的字體.因爲點陣太小,所以顯示的字體質量非常低劣.
VGA 8x16 font
CONFIG_FONT_8x16
這是傳統上的標準字體(用於80x25),也是默認內嵌的字體,最爲常見.建議選"Y".
{其它字體省略}
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 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主機就可以通過省去對外部集線器的支持,降低系統軟硬件的成本.
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
僅供調試使用
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
如果你有一個USB2.0 hub並且某些接在這個hub上的USB1.1設備不能正常工作(顯示'cannot submit datapipe: error -28'或'error -71'錯誤),可以考慮選"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磁帶,記憶棒,數碼相機,讀卡器等等).該選項依賴於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_ATA驅動,而不是這裏的驅動.
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"內核引導參數.
{此處省略的芯片請按照實際情況選擇}
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資源(有時也可節約大量的內存操作).目前主要用於:(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 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(Virtual Function I/O)無特權用戶空間I/O驅動框架,主要用於爲虛擬化環境中的I/O驅動提供更高的安全性,需要有IOMMU虛擬化硬件支持(例如:AMD-Vi(AMD IOMMU),Intel VT-d).VFIO的目標是在IOMMU硬件的幫助下,取代UIO框架和"KVM PCI device assignment"(CONFIG_KVM_DEVICE_ASSIGNMENT).詳見"Documentation/vfio.txt"文檔.不確定的選"N".[提示]QEMU 1.3以上版本才能利用VFIO特性.
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設備,建議選"Y".
Virtualization drivers
CONFIG_VIRT_DRIVERS
這個選項僅對PowerPC架構有意義
Virtio drivers
Virtio驅動.Virtio的目標是爲各種半虛擬化的虛擬機管理程序(特別是KVM)提供一組通用的模擬設備,目前已實現:network/block/balloon/console/hw_random,未來還會實現更多.
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
使用內存映射機制的platform設備驅動
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管理規範)映射設備(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/相機/藍牙等設備.
pvpanic device support
CONFIG_PVPANIC
pvpanic是QEMU提供的一種準虛擬化(paravirtualized)設備,允許客戶機向宿主機報告panic事件.
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空等時間.
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".
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緊密相關,目前其下尚無子項可選.
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".
Intel Non-Transparent Bridge support
CONFIG_NTB
PCI-E非透明橋是一個點對點PCI-E總線,用於連接兩條對等的PCI-E總線.通常用於嵌入式智能I/O板卡.例如英特爾C5500/C3500系列嵌入式至強處理器.具體支持的設備號(PCI_DEVICE_ID)可以查看"drivers/ntb/ntb_hw.h"文件.不確定的選"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".
IndustryPack bus support
CONFIG_IPACK_BUS
IndustryPack是工業控制領域常用的一種總線.不確定的選"N".
Reset Controller Support
CONFIG_RESET_CONTROLLER
爲GPIO總線或者芯片內置的重啓控制器提供通用支持.僅用於嵌入式設備.不確定的選"N".

Firmware Drivers
固件(Firmware)驅動

BIOS Enhanced Disk Drive calls determine boot disk
CONFIG_EDD
這是一個實驗性選項,支持實模式BIOS中的增強磁盤服務(EDD),從而實現從某個特定的硬盤啓動(可以從sysfs中查看具體是哪個硬盤),大多數BIOS提供商都沒有實現這個特性.不確定的選"N".
Sets default behavior for EDD detection to off
CONFIG_EDD_OFF
選"Y"相當於使用"edd=off"內核引導參數(禁用EDD),選"N"相當於使用"edd=on"內核引導參數(啓用EDD).語法:edd={on|skipmbr|off}.
Add firmware-provided memory map to sysfs
CONFIG_FIRMWARE_MEMMAP
將原始的固件內容映射到"/sys/firmware/memmap"文件.主要用於調試目的,以及kexec爲下一個內核設置參數.詳見"Documentation/ABI/testing/sysfs-firmware-memmap"文檔.不確定的選"N".
BIOS update support for DELL systems via sysfs
CONFIG_DELL_RBU
允許Dell OpenManageDUP(Dell Update Packages)工具通過sysfs更新DELL服務器主板的BIOS.詳見"Documentation/dell_rbu.txt"文檔.即使你確實需要此功能,也建議選"M"而不是"Y".畢竟刷BIOS不能當做家常便飯.留着刷BIOS的接口,總是件危險的事.
Dell Systems Management Base Driver
CONFIG_DCDBAS
該驅動爲DELL服務器專用的系統管理軟件(Dell OpenManage)提供了sysfs接口.詳見"Documentation/dcdbas.txt"文檔.
Export DMI identification via sysfs to userspace
CONFIG_DMIID
SMBIOS(System Management BIOS)/DMI(Desktop Management Interface)中的系統識別信息(序列號,製造商,型號,等等)導出到用戶空間(/sys/class/dmi/id/).開啓此項後,dmidecode工具就可以顯示與製造商相關的信息.此外,基於DMI的模塊的自動加載也依賴於此項.建議選"Y",因爲某些Udev規則和虛擬化檢測需要它.
DMI table support in sysfs
CONFIG_DMI_SYSFS
將SMBIOS/DMI中的原始數據(包含大量的系統硬件信息)導出到用戶空間(/sys/firmware/dmi/).這些信息可以通過dmidecode工具顯示出來.
iSCSI Boot Firmware Table Attributes
CONFIG_ISCSI_IBFT_FIND
使內核能定位iBFT(iSCSI Boot Firmware Table)在內存中的位置.目的是爲子項(CONFIG_ISCSI_IBFT)提供支持.
iSCSI Boot Firmware Table Attributes module
CONFIG_ISCSI_IBFT
將iBFT(iSCSI Boot Firmware Table)的內容通過sysfs導出到用戶空間.如果你想在系統引導過程中動態檢測iSCSI引導參數,可以選"Y",否則應選"N".
Google Firmware Drivers
CONFIG_GOOGLE_FIRMWARE
僅用於Google自家的服務器
EFI (Extensible Firmware Interface) Support
EFI/UEFI(統一可擴展固件接口)支持.2009年之後,UEFI已經基本全線取代了BIOS.
EFI Variable Support via sysfs
CONFIG_EFI_VARS
允許通過sysfs接口操作(讀/寫/新建/刪除)EFI變量.開啓後可支持各種操作EFI變量的工具:efivar‎,efibootmgr,vathpela/efibootmgr,uefivars,efitools,fwts(Firmware Test Suite).建議選"Y".
Register efivars backend for pstore
CONFIG_EFI_VARS_PSTORE
將efivars模塊(CONFIG_EFI_VARS)用作pstore文件系統(CONFIG_PSTORE)的後端.這樣就可以向EFI變量中寫入各種pstore支持的信息,例如,控制檯消息,崩潰轉儲,等等.
Disable using efivars as a pstore backend by default
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE
禁止默認將efivars模塊(CONFIG_EFI_VARS)用作pstore文件系統(CONFIG_PSTORE)的後端.

File systems
文件系統

Second extended fs support
CONFIG_EXT2_FS
Ext2文件系統,無日誌.詳見"Documentation/filesystems/ext2.txt"文檔.
Ext2 extended attributes
CONFIG_EXT2_FS_XATTR
Ext2文件系統擴展屬性(與inode關聯的name:value對)支持.詳見attr手冊.不確定的選"N".
Ext2 POSIX Access Control Lists
CONFIG_EXT2_FS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.不確定的選"N".
Ext2 Security Labels
CONFIG_EXT2_FS_SECURITY
"安全標籤"允許選擇使用不同安全模塊(如SELinux)實現的訪問控制模型,如果你沒有使用需要擴展屬性的安全模塊,可以選"N".
Ext2 execute in place support
CONFIG_EXT2_FS_XIP
芯片內執行(execute in place)的意思是程序在寫入存儲介質時就已經分配好運行時的地址,因此不需要載入內存即可在芯片內執行,一般僅在嵌入式系統上才使用這種技術.
Ext3 journalling file system support
CONFIG_EXT3_FS
Ext3日誌型文件系統.詳見"Documentation/filesystems/ext3.txt"文檔.
Default to 'data=ordered' in ext3
CONFIG_EXT3_DEFAULTS_TO_ORDERED
選"Y"表示將默認的日誌模式設爲"data=ordered"(更安全),選"N"表示將默認的日誌模式設爲"data=writeback"(更危險).選"Y",僅在你確實明白"data=writeback"的風險,以及確實有充足的理由的時候,才能選"N".
Ext3 extended attributes
CONFIG_EXT3_FS_XATTR
Ext3文件系統擴展屬性(與inode關聯的name:value對)支持.詳見attr手冊.不確定的選"N".
Ext3 POSIX Access Control Lists
CONFIG_EXT3_FS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.不確定的選"N".
Ext3 Security Labels
CONFIG_EXT3_FS_SECURITY
"安全標籤"允許選擇使用不同安全模塊(如SELinux)實現的訪問控制模型,如果你沒有使用需要擴展屬性的安全模塊,可以選"N".
The Extended 4 (ext4) filesystem
CONFIG_EXT4_FS
Ext4日誌型文件系統.詳見"Documentation/filesystems/ext4.txt"文檔.
Use ext4 for ext2/ext3 file systems
CONFIG_EXT4_USE_FOR_EXT23
在ext2/ext3文件系統上使用ext4驅動.這樣可以對ext2/ext3/ext4三種文件系統只使用同一個驅動.主要目的是減少內核尺寸.
Ext4 POSIX Access Control Lists
CONFIG_EXT4_FS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.不確定的選"N".
Ext4 Security Labels
CONFIG_EXT4_FS_SECURITY
"安全標籤"允許選擇使用不同安全模塊(如SELinux)實現的訪問控制模型,如果你沒有使用需要擴展屬性的安全模塊,可以選"N".
EXT4 debugging support
CONFIG_EXT4_DEBUG
僅供調試使用
JBD (ext3) debugging support
CONFIG_JBD_DEBUG
僅供調試使用
JBD2 (ext4) debugging support
CONFIG_JBD2_DEBUG
僅供調試使用
Reiserfs support
CONFIG_REISERFS_FS
曾經的明星文件系統,特別擅長處理大量小文件的場合,由於其創始人入獄,前景不明.
Enable reiserfs debug mode
CONFIG_REISERFS_CHECK
僅供調試使用
Stats in /proc/fs/reiserfs
CONFIG_REISERFS_PROC_INFO
在/proc/fs/reiserfs文件中顯示Reiserfs文件系統的狀態,僅供調試使用
ReiserFS extended attributes
CONFIG_REISERFS_FS_XATTR
ReiserFS文件系統擴展屬性(與inode關聯的name:value對)支持.詳見attr手冊.不確定的選"N".
ReiserFS POSIX Access Control Lists
CONFIG_REISERFS_FS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.不確定的選"N".
ReiserFS Security Labels
CONFIG_REISERFS_FS_SECURITY
"安全標籤"允許選擇使用不同安全模塊(如SELinux)實現的訪問控制模型,如果你沒有使用需要擴展屬性的安全模塊,可以選"N".
JFS filesystem support
CONFIG_JFS_FS
JFS日誌型文件系統.詳見"Documentation/filesystems/jfs.txt"文檔.
JFS POSIX Access Control Lists
CONFIG_JFS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.不確定的選"N".
JFS Security Labels
CONFIG_JFS_SECURITY
"安全標籤"允許選擇使用不同安全模塊(如SELinux)實現的訪問控制模型,如果你沒有使用需要擴展屬性的安全模塊,可以選"N".
JFS debugging
CONFIG_JFS_DEBUG
僅供調試使用
JFS statistics
CONFIG_JFS_STATISTICS
在/proc/fs/jfs/目錄中顯示JFS文件系統的統計信息
XFS filesystem support
CONFIG_XFS_FS
XFS日誌型文件系統是一個高性能的文件系統(筆者的最愛),擅長大文件和多線程.詳見"Documentation/filesystems/"目錄中"xfs*.txt"系列文檔.
XFS Quota support
CONFIG_XFS_QUOTA
XFS磁盤配額(使用專用的xfs_quota工具)比通用磁盤配額模塊(CONFIG_QUOTA)擁有更高級的特性,它不但能夠控制用戶或組的磁盤用量,還能控制項目(文件夾)的磁盤用量(無論哪個用戶在項目的文件夾中創建文件),但是不能同時使用組配額和項目配額.此外,對XFS來說,配額數據記錄在文件系統元數據中,而不是像CONFIG_QUOTA那樣記錄在aquota.user和aquota.group文件中.最後,XFS配額和通用磁盤配額是兩個相互獨立的系統,可以同時並存.
XFS POSIX ACL support
CONFIG_XFS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.不確定的選"N".
XFS Realtime subvolume support
CONFIG_XFS_RT
"實時子卷"是專門存儲文件數據的卷,可以允許將日誌與數據分開在不同的磁盤上,例如將大塊頭的流媒體文件存儲在高速磁盤組成的實時子捲上.詳見xfs手冊頁.
XFS Verbose Warnings
CONFIG_XFS_WARN
僅供調試使用
XFS Debugging support
CONFIG_XFS_DEBUG
僅供調試使用
GFS2 file system support
CONFIG_GFS2_FS
GFS2可用於搭建高可用集羣文件系統,由紅帽公司開發,允許所有集羣節點並行訪問,同時又能夠完美的保持文件系統的一致性:一個節點對文件系統的任何修改都立即對所有其他節點可見.詳見"Documentation/filesystems/"目錄中"gfs*.txt"系列文檔.
GFS2 DLM locking
CONFIG_GFS2_FS_LOCKING_DLM
GFS2分佈式鎖管理器(DLM).務必選"Y",除非你知道自己在做什麼.
OCFS2 file system support
CONFIG_OCFS2_FS
OCFS2(Oracle集羣文件系統)的目標是成爲一種通用文件系統.OCFS2能使集羣中的所有節點併發的通過標準文件系統接口來訪問存儲備.要使用OCFS2還需要ocfs2-tools的幫助.詳見"Documentation/filesystems/ocfs2.txt"文檔.
O2CB Kernelspace Clustering
CONFIG_OCFS2_FS_O2CB
O2CB(OCFS2 Cluster Base)是位於內核空間的集羣服務結構.具體包括:NM(節點管理器,監控所有節點),HB(心跳服務),TCP(控制節點間的通訊),DLM(分佈式鎖管理器),CONFIGFS(用戶配置文件系統驅動,掛載點是/config),DLMFS(用戶空間和內核空間DLM的接口).開啓此項後,將只需要很少量的用戶空間組件(也就是ocfs2-tools),OCFS2就可以轉起來了.但它只能玩轉OCFS2自身,玩不了其他集羣.
OCFS2 Userspace Clustering
CONFIG_OCFS2_FS_USERSPACE_CLUSTER
爲用戶空間的集羣服務提供支持.目的是爲了配合CONFIG_DLM模塊一起使用.
OCFS2 statistics
CONFIG_OCFS2_FS_STATS
允許對OCFS2的使用狀況進行一些統計.開啓後會增加內存佔用.
OCFS2 logging support
CONFIG_OCFS2_DEBUG_MASKLOG
僅供調試使用
OCFS2 expensive checks
CONFIG_OCFS2_DEBUG_FS
僅供調試使用
Btrfs filesystem support
CONFIG_BTRFS_FS
Btrfs是由Oracle於2007年宣佈的支持寫時複製(COW)的文件系統.擁有衆多搶眼球的特性:軟RAID管理,卷管理,克隆/快照,壓縮功能,支持跨多塊磁盤動態增大或收縮卷.其目標是成爲下一代Linux標準文件系統.詳見"Documentation/filesystems/btrfs.txt"文檔.
Btrfs POSIX Access Control Lists
CONFIG_BTRFS_FS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.不確定的選"N".
Btrfs with integrity check tool compiled in (DANGEROUS)
CONFIG_BTRFS_FS_CHECK_INTEGRITY
僅供調試使用
Btrfs will run sanity tests upon loading
CONFIG_BTRFS_FS_RUN_SANITY_TESTS
僅供調試使用
Btrfs debugging support
僅供調試使用
NILFS2 file system support
CONFIG_NILFS2_FS
NILFS2是一種非常前衛的"log-structured"文件系統,是Linux下一代文件系統的有力競爭者.NILFS2將底層設備當作一種只能追加寫(append)的設備,文件系統的任何修改都只以順序追加的方式寫入磁盤(而是不覆蓋舊數據),從而避免耗時的尋道(seek)操作,從而大幅提升寫入性能(因爲文件系統的整體效率主要由寫操作的效率決定).此種思路帶來了一系列靚瞎眼的特性:自動不間斷快照(可以迅速恢復被刪除的文件或者回到先前某個特定的時間點),快速崩潰恢復(比大多數日誌型文件系統還要快),高性能(在SSD上更有絕對優勢).但也帶來了一個新問題:需要垃圾收集機制以清理舊數據,造成垃圾收集時的性能降低(可以通過合理安排垃圾收集時間來避免).NILFS2目前不支持如下功能:atime(訪問時間),POSIX ACL,擴展屬性.不過考慮到SSD(固態硬盤)即將成爲主流,假以時日,前途大大的啊!.詳見"Documentation/filesystems/nilfs2.txt"文檔.
Enable POSIX file locking API
CONFIG_FILE_LOCKING
POSIX標準文件鎖定API支持.NFS之類的網絡文件系統和給文件加鎖與解鎖的flock()系統調用需要它.不確定的選"Y".
Dnotify support
CONFIG_DNOTIFY
舊式的基於目錄的文件變化的通知機制(已被Inotify取代),目前僅有少量古董程序依賴它.建議選"N".
Inotify support for userspace
CONFIG_INOTIFY_USER
用戶空間的Inotify支持.Inotify是替代Dnotify的文件系統變化通知機制.建議選"Y".[提示]如果你使用了systemd作爲init,那就必須選"Y".
Filesystem wide access notification
CONFIG_FANOTIFY
fanotify是一種打算取代Inotify的文件系統變化通知機制,不過,由於目前Fanotify比inotify支持的文件系統事件類型少很多,完全取代Inotify還不現實.Udev的"Predictable Network Interface Names"功能依賴於它.建議選"Y".[提示]如果你使用了systemd作爲init,那就必須選"Y".
fanotify permissions checking
CONFIG_FANOTIFY_ACCESS_PERMISSIONS
允許fanotify的監聽器(listener)對文件系統事件進行權限檢查.這樣,監聽器就可以在系統訪問某個文件之前,首先掃描此文件.某些防病毒程序以及分級存儲管理系統可能需要此特性.不確定的選"N".
Quota support
CONFIG_QUOTA
通用的磁盤配額支持(限制某個用戶或者某組用戶的磁盤佔用空間).需要配合quota-tools工具使用.
Report quota messages through netlink interface
CONFIG_QUOTA_NETLINK_INTERFACE
通過netlink接口報告QUOTA的警告信息(例如"到達限額").不確定的選"Y".
Print quota warnings to console (OBSOLETE)
CONFIG_PRINT_QUOTA_WARNING
將QUOTA的警告信息直接顯示在控制檯上.反對使用,未來會移除此項.選"N".
Additional quota sanity checks
CONFIG_QUOTA_DEBUG
對quota內部結構進行額外的完整性檢查.主要用於調試目的.不確定的選"N".
Old quota format support
CONFIG_QFMT_V1
老舊的v1版配額格式(linux-2.4.22之前使用的格式)支持.選"N".
Quota format vfsv0 and vfsv1 support
CONFIG_QFMT_V2
vfsv0/vfsv1配額格式支持.兩者都支持32位的UID/GID,而vfsv1還支持64位的inode/block配額.建議開啓.
Kernel automounter version 4 support (also supports v3)
CONFIG_AUTOFS4_FS
第四版內核按需自動掛載文件系統的支持(也支持v3).此特性需要配合用戶空間工具(autofsSystemd)使用,以實現僅在某個文件系統掛載點真正被訪問到的時候才觸發掛載操作.[提示]使用了systemd的系統建議選"Y".
FUSE (Filesystem in Userspace) support
CONFIG_FUSE_FS
FUSE允許在用戶空間實現一個全功能的文件系統,還有一個與之對應的libfuse2庫和相關工具.詳見"Documentation/filesystems/fuse.txt"文檔.如果你打算開發一個自己的文件系統或者使用一個基於FUSE的文件系統(例如NTFS-3GZFS-FUSE),可以選"Y".
Character device in Userspace support
CONFIG_CUSE
這是一個FUSE擴展,用於在用戶空間實現字符設備支持.
Caches
文件系統緩存
General filesystem local caching manager
CONFIG_FSCACHE
通用文件系統本地緩存管理器.它爲各種不同的文件系統(例如網絡文件系統)提供了統一的本地緩存框架.這樣各種緩存實現可以作爲插件添加進來.詳見"Documentation/filesystems/caching/fscache.txt"文檔.
Gather statistical information on local caching
CONFIG_FSCACHE_STATS
收集本地緩存的統計信息(這會增加系統運行負載),並通過/proc/fs/fscache/stats文件導出到用戶空間.主要用於調試目的.
Gather latency information on local caching
CONFIG_FSCACHE_HISTOGRAM
收集本地緩存的延遲信息(這會增加系統運行負載),並通過/proc/fs/fscache/histogram文件導出到用戶空間.主要用於調試目的.
Debug FS-Cache
CONFIG_FSCACHE_DEBUG
僅供調試使用
Maintain global object list for debugging purposes
CONFIG_FSCACHE_OBJECT_LIST
在/proc/fs/fscache/objects文件中維護一個活動緩存對象的全局列表.僅用於調試目的.
Filesystem caching on files
CONFIG_CACHEFILES
將一個已掛載的文件系統用作另一個文件系統的緩存.例如將一個本地磁盤分區掛載爲一個遠程網絡文件系統的緩存,或者將一個高速設備(例如SSD)用作一個低速設備(例如普通硬盤)的緩存.
Debug CacheFiles
CONFIG_CACHEFILES_DEBUG
僅供調試使用
Gather latency information on CacheFiles
CONFIG_CACHEFILES_HISTOGRAM
收集本地緩存的延遲信息(這會增加系統運行負載),並通過/proc/fs/cachefiles/histogram文件導出到用戶空間.主要用於調試目的.
CD-ROM/DVD Filesystems
CD-ROM/DVD光盤文件系統
ISO 9660 CDROM file system support
CONFIG_ISO9660_FS
ISO9660是所有CD/DVD光盤通用的標準文件系統.建議選"Y".詳見"Documentation/filesystems/isofs.txt"文檔.
Microsoft Joliet CDROM extensions
CONFIG_JOLIET
Microsoft對ISO9660文件系統的Joliet擴展,允許在文件名中使用Unicode字符,也允許長文件名.建議選"Y".
Transparent decompression extension
CONFIG_ZISOFS
Linux對ISO9660文件系統的擴展,允許將數據透明的壓縮存儲在CD上.使用並不廣泛,不確定的可以選"N".
UDF file system support
CONFIG_UDF_FS
UDF的目標是取代ISO9660,現已經廣泛地用於大容量DVD光盤上(特別是刻錄盤).建議選"Y".詳見"Documentation/filesystems/udf.txt"文檔.
DOS/FAT/NT Filesystems
DOS/FAT/NTFS文件系統
MSDOS fs support
CONFIG_MSDOS_FS
古老的MSDOS文件系統(FAT16),基本絕種了
VFAT (Windows-95) fs support
CONFIG_VFAT_FS
從Win95開始使用的VFAT文件系統(FAT32).如果你要使用基於UEFI平臺的電腦,並且使用GPT磁盤分區,則必須選"Y".詳見"Documentation/filesystems/vfat.txt"文檔.
Default codepage for FAT
CONFIG_FAT_DEFAULT_CODEPAGE
在FAT系列文件系統上,"8.3"格式的短文件名以特定的代碼頁進行存儲(可以通過chcp命令查看),但長文件名卻以Unicode進行存儲.此選項的作用就是指定將長文件名轉換爲短文件名時使用的默認代碼頁.可以通過"codepage"掛載選項進行修改.簡體中文通常使用"936",繁體中文通常使用"950".
Default iocharset for FAT
CONFIG_FAT_DEFAULT_IOCHARSET
指定默認以什麼字符集顯示文件名,這個值可以通過"iocharset"掛載選項修改.但必須與系統的locale設置保持一致.例如在"zh_CN.UTF-8"或"en_US.UTF-8"的情況下應該使用"utf8".[注意]應謹慎使用"iocharset=utf8",因爲它會導致FAT文件系統上的文件名變得大小寫敏感。
NTFS file system support
CONFIG_NTFS_FS
NTFS文件系統.僅選中此項表示僅支持只讀(不支持NTFS壓縮或加密文件),不支持寫入.詳見"Documentation/filesystems/ntfs.txt"文檔.
NTFS debugging support
CONFIG_NTFS_DEBUG
僅供調試使用
NTFS write support
CONFIG_NTFS_RW
由於微軟沒有公開NTFS的技術標準,所以內核只能支持非常殘缺的寫入功能:僅能覆蓋已存在的文件但不能改變其長度,不能創建文件或目錄.建議選"N".[提示]在Linux環境下寫入NTFS始終是一件危險的事情,即使對於NTFS-3G也是如此,除了不支持壓縮或加密文件之外,網上還有不少血的教訓,有興趣可以搜搜.
Pseudo filesystems
僞文件系統
/proc file system support
CONFIG_PROC_FS
顯示系統狀態的虛擬文件系統(進程信息,irq設置,內存使用,設備驅動,網絡狀態等),通常掛載到"/proc"目錄.許多程序依賴於它,systemd也依賴於它.選"Y",除非你知道自己在做什麼.詳見"Documentation/filesystems/proc.txt"文檔.
/proc/kcore support
CONFIG_PROC_KCORE
系統物理內存的映象.建議選"N".
/proc/vmcore support
CONFIG_PROC_VMCORE
以ELF格式轉儲的已崩潰內核鏡像,僅供調試使用
Sysctl support (/proc/sys)
CONFIG_PROC_SYSCTL
顯示各種不同的內核調節參數,並讓root用戶能通過/proc/sys/目錄交互地更改其中的某些內容.必選"Y",除非你是嵌入式系統並且知道自己在做什麼.詳見"Documentation/sysctl/"目錄中的文檔.
Enable /proc page monitoring
CONFIG_PROC_PAGE_MONITOR
用於監視進程內存佔用的接口(/proc/<pid>/{smaps,clear_refs,pagemap}和/proc/{kpagecount,kpageflags}).建議選"Y".
sysfs file system support
CONFIG_SYSFS
導出內核內部對象及其屬性和對象之間的相互關係的文件系統,通常掛載到"/sys"目錄,sysfs把連接在系統上的設備和總線以及驅動程序等組織成爲一個分級的文件,並允許通過該文件系統調整某些內核子系統以及設備的參數.內核啓動時依靠它掛載類似"/dev/sda1"這樣形式的根分區,禁用sysfs後必須在內核引導參數中使用設備號指定根分區(類似"root=03:01"這樣).systemd依賴於它.選"Y",除非你知道自己在做什麼.詳見"Documentation/filesystems/"目錄中"sysfs*.txt"系列文檔.
Tmpfs virtual memory file system support (former shm fs)
CONFIG_TMPFS
tmpfs文件系統(以前叫shm[共享內存]文件系統),大多數系統的正常運行都依賴於它(例如Udev使用的"/dev/"目錄通常掛載爲tmpfs).選"Y",除非你知道自己在做什麼.詳見"Documentation/filesystems/tmpfs.txt"文檔.
Tmpfs POSIX Access Control Lists
CONFIG_TMPFS_POSIX_ACL
POSIX ACL(訪問控制列表)支持,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個用戶進行訪問控制.詳見acl手冊.許多發行版都要求/dev/目錄支持ACL(例如讓ALSA相關的文件可以正常工作),並且systemd也建議開啓它.不確定的選"Y".
Tmpfs extended attributes
CONFIG_TMPFS_XATTR
TMPFS文件系統擴展屬性(與inode關聯的name:value對)支持(僅支持trusted.*和security.*命名空間).詳見attr手冊.由於它被CONFIG_TMPFS_POSIX_ACL依賴,並且systemd也建議開啓它.建議選"Y".
HugeTLB file system support
CONFIG_HUGETLBFS
這是使用大內存頁的傳統方式,需要專門進行配置以及應用程序的特別支持.推薦使用較新的透明大內存頁(CONFIG_TRANSPARENT_HUGEPAGE).選"N".
Userspace-driven configuration filesystem
CONFIG_CONFIGFS_FS
configfs是一個基於內存的虛擬文件系統,與sysfs類似但又有不同:configfs用於從用戶空間查看/修改/創建/刪除內核對象,而sysfs僅能查看/修改由內核負責創建和刪除的對象.通常掛載到"/config"目錄.詳見"Documentation/configfs/"目錄中的文檔.不確定的選"N".
Miscellaneous filesystems
CONFIG_MISC_FILESYSTEMS
各種非主流的雜項文件系統,有些是專用於嵌入式系統,有些是來自於其他操作系統,還有些專用於某些特定場合.
{此處省略哪些非常非主流的文件系統}
eCrypt filesystem layer support
CONFIG_ECRYPT_FS
eCryptfs是一個符合POSIX標準的企業級文件系統加密棧(加密/解密轉換層),工作在VFS(虛擬文件系統)層,可以在各種普通文件系統上使用(需要ecryptfs-utils工具).eCryptfs將加密元數據保存在每個文件的首部,從而允許文件在不同主機之間任意移動,同時又能確保僅在內核密鑰環中擁有正確密鑰的時候才能解密文件的內容.此外,eCryptfs還支持高級密匙管理和配置策略.[提示]使用eCryptfs之後,讀操作性能最大可下降1/3左右,寫操作性能則普遍下降一個數量級.
Enable notifications for userspace key wrap/unwrap
CONFIG_ECRYPT_FS_MESSAGING
允許ecryptfsd守護進程操作/dev/ecryptfs設備.這將允許用戶空間使用其他後端(例如OpenSSL)加密/解密FEK(file encryption key).不確定的選"N".
SquashFS 4.0 - Squashed file system support
CONFIG_SQUASHFS
SquashFS是一種高壓縮率的只讀文件系統,可以使用多種壓縮算法(例如zlib,xz,lzo).SquashFS常用於嵌入式設備和LiveCD系統.
Squashfs XATTR support
CONFIG_SQUASHFS_XATTR
Squashfs文件系統擴展屬性(與inode關聯的name:value對)支持.詳見attr手冊.不確定的選"N".
Include support for ZLIB compressed file systems
CONFIG_SQUASHFS_ZLIB
ZLIB是Squashfs默認的標準壓縮算法.在壓縮率和性能之間達到了最佳的平衡.
Include support for LZO compressed file systems
CONFIG_SQUASHFS_LZO
LZO是性能最佳的壓縮算法(CPU和內存佔用都很低),但是壓縮率確是最差的.常用於資源有限的嵌入式系統.
Include support for XZ compressed file systems
CONFIG_SQUASHFS_XZ
XZ是壓縮率最佳的壓縮算法,但其CPU和內存佔用都最高.可用於PC環境.
Use 4K device block size?
CONFIG_SQUASHFS_4K_DEVBLK_SIZE
出於降低潛伏時間的考慮,Squashfs默認使用1K大小的塊.但是在MTD NAND設備上,使用4K大小的塊纔可以獲得最佳性能.此外,在大多數設備上,使用4K大小的塊才能獲得最佳連續讀取性能.如果你的Squashfs位於閃存設備上,建議選"Y".否則建議選"N".
Additional option for memory-constrained systems
CONFIG_SQUASHFS_EMBEDDED
允許強制指定緩存大小.不確定的選"N".
Number of fragments cached
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE
SquashFS默認緩存最後3個從文件系統上讀取的片段.降低此值(最小值是"1",不能設爲"0")可以降低內存的佔用,但是會增加底層物理設備的讀取次數.增加此值則正好相反.[提示]按一般經驗,大於"3"的值並不能帶來顯著的性能提升.
EFI Variable filesystem
CONFIG_EFIVAR_FS
efivarfs可以取代通過sysfs(CONFIG_EFI_VARS)展示的"EFI變量",其主要目的是可以突破sysfs中變量值不能超出1024字節的限制.systemd依賴於它.建議選"Y".
Network File Systems
CONFIG_NETWORK_FILESYSTEMS
網絡文件系統
NFS client support
CONFIG_NFS_FS
NFS(Network File System)客戶端支持,這樣就可以使用nfs-utils包中的mount.nfs工具掛載遠程服務器提供的NFS文件系統.詳見nfs手冊頁.
NFS client support for NFS version 2
CONFIG_NFS_V2
NFSv2(RFC 1094)版本協議支持
NFS client support for NFS version 3
CONFIG_NFS_V3
NFSv3(RFC 1813)版本協議支持
NFS client support for the NFSv3 ACL protocol extension
CONFIG_NFS_V3_ACL
爲NFSv3添加POSIX ACL支持(Solaris NFSv3 ACL).大多數NFS服務器都不支持這個擴展.不確定的選"N".
NFS client support for NFS version 4
CONFIG_NFS_V4
NFSv4(RFC 3530)版本協議支持
Provide swap over NFS support
CONFIG_NFS_SWAP
允許將NFS文件系統用做swap分區.
NFS client support for NFSv4.1
CONFIG_NFS_V4_1
NFSv4.1(RFC 5661)版本協議客戶端支持,這樣就可以使用nfs-utils包中的mount.nfs工具掛載遠程服務器提供的NFS文件系統.詳見nfs手冊頁以及NFS各個版本之間的比較.
NFSv4.1 Implementation ID Domain
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN
NFSv4.1規範新引入了會話機制,該選項定義在建立會話過程中使用在EXCHANGE_ID指令中的"domain"部分的值.這個值必須是個標準的DNS域名格式.如果你沒有修改內核的NFS客戶端代碼,那麼請保持默認值"kernel.org".
Root file system on NFS
CONFIG_ROOT_NFS
允許將NFS掛載爲根文件系統(root=/dev/nfs),通常用於沒有本地存儲設備的無盤工作站(還必須開啓CONFIG_IP_PNP以及至少一個子項).詳見"Documentation/filesystems/nfs/nfsroot.txt"文檔.
Provide NFS client caching support
CONFIG_NFS_FSCACHE
爲NFS提供本地緩存支持,也就是利用CONFIG_FSCACHE選項的功能.
Use the legacy NFS DNS resolver
CONFIG_NFS_USE_LEGACY_DNS
內核現在有自己的DNS解析實現,如果你依然想使用老式的DNS解析腳本,可以選"Y".不確定的選"N".
NFS server support
CONFIG_NFSD
NFS服務器端支持.要實現此功能,還需要nfs-utils軟件包的支持.詳見nfs手冊頁.這裏也有一個NFS文章系列可以看看.此選項內嵌了NFSv2協議支持.
NFS server support for NFS version 3
CONFIG_NFSD_V3
NFSv3(RFC 1813)版本協議支持
NFS server support for the NFSv3 ACL protocol extension
CONFIG_NFSD_V3_ACL
爲NFSv3添加POSIX ACL支持(Solaris NFSv3 ACL).此擴展並不屬於NFSv3協議的官方內容.
NFS server support for NFS version 4
CONFIG_NFSD_V4
NFSv4(RFC 3530)版本協議支持
NFS server manual fault injection
CONFIG_NFSD_FAULT_INJECTION
僅供調試使用
Secure RPC: Kerberos V mechanism
CONFIG_RPCSEC_GSS_KRB5
爲使用Kerberos V5 GSS-API身份驗證機制(RFC1964)的安全RPC提供支持.要實現此功能,還需要nfs-utils軟件包以及用戶空間的Kerberos支持.
RPC: Enable dprintk debugging
CONFIG_SUNRPC_DEBUG
允許使用rpcdebug工具調試RPC故障,如果選"N"會讓故障調試特別困難.
Ceph distributed file system
CONFIG_CEPH_FS
允許掛載Ceph分佈式文件系統.不確定的選"N".詳見"Documentation/filesystems/ceph.txt"文檔.
CIFS support (advanced network filesystem, SMBFS successor)
CONFIG_CIFS
CIFS(Common Internet File System)協議客戶端支持.CIFS主要用於Linux與Windows之間共享文件系統.如果你打算掛載Windows的共享文件夾,或者由Samba提供的文件系統,就選"Y".詳見"Documentation/filesystems/cifs.txt"文檔.
CIFS statistics
CONFIG_CIFS_STATS
在/proc/fs/cifs/Stats文件中顯示每個被掛載的CIFS文件系統的統計信息
Extended statistics
CONFIG_CIFS_STATS2
在/proc/fs/cifs/目錄下顯示更詳細的統計信息.對運行性能和內存佔用都有些影響.不確定的選"N".
Support legacy servers which use weaker LANMAN security
CONFIG_CIFS_WEAK_PW_HASH
選"N",除非你確實知道自己在幹什麼.
Kerberos/SPNEGO advanced session setup
CONFIG_CIFS_UPCALL
Kerberos/SPNEGO高級會話支持.不確定的選"N".
CIFS extended attributes
CONFIG_CIFS_XATTR
CIFS文件系統擴展屬性(與inode關聯的name:value對)支持.不確定的選"N".
CIFS POSIX Extensions
CONFIG_CIFS_POSIX
CIFS POSIX擴展.不確定的選"N".
Provide CIFS ACL support
CONFIG_CIFS_ACL
允許從服務器抓取CIFS/NTFS ACL.不確定的選"N".
Enable CIFS debugging routines
CONFIG_CIFS_DEBUG
僅供調試使用
DFS feature support
CONFIG_CIFS_DFS_UPCALL
DFS(Distributed File System)支持.不確定的選"N".
SMB2 network file system support
CONFIG_CIFS_SMB2
僅供開發與調試使用
Provide CIFS client caching support
CONFIG_CIFS_FSCACHE
爲CIFS提供本地緩存支持,也就是利用CONFIG_FSCACHE選項的功能.
NCP file system support (to mount NetWare volumes)
CONFIG_NCP_FS
NCP(NetWare Core Protocol)協議支持.這東西早就銷聲匿跡了,選"N".
Coda file system support (advanced network fs)
CONFIG_CODA_FS
Coda是一種比NFS更先進的分佈式集羣文件系統.LVS(Linux Virtual Server)就採用了Coda分佈式文件系統.詳見"Documentation/filesystems/coda.txt"文檔.
Andrew File System support
CONFIG_AFS_FS
AFS(Andrew File System)文件系統的實驗性支持,目前僅支持只讀訪問.詳見"Documentation/filesystems/afs.txt"文檔.
Provide AFS client caching support
CONFIG_AFS_FSCACHE
爲AFS提供本地緩存支持,也就是利用CONFIG_FSCACHE選項的功能.
Plan 9 Resource Sharing Support (9P2000)
CONFIG_9P_FS
9P2000協議是Plan 9概念網絡操作系統上使用的資源共享協議.不確定的選"N".
Native language support
CONFIG_NLS
本地語言支持.僅在你使用FAT/NTFS/JOLIET文件系統的情況下才需要這個東西.
Default NLS Option
CONFIG_NLS_DEFAULT
掛載文件系統時,控制檯的默認本地語言(不是文件系統用於存儲文件名的語言),建議設爲"utf8"(因爲控制檯的默認編碼是"utf8":vt.default_utf8=1).
{此處省略的各種字符集請按需選擇}
Distributed Lock Manager (DLM)
CONFIG_DLM
通用的分佈式鎖管理器(DLM).用於爲各種分佈式文件系統提供通用的鎖定支持.
DLM debugging
CONFIG_DLM_DEBUG
僅供開發與調試使用

Kernel hacking
內核hack選項

Show timing information on printks
CONFIG_PRINTK_TIME
在控制檯和syslog()系統調用的輸出中包含printk()消息的時間戳,以便於直接顯示內核啓動過程中各步驟所用的時間.注意:無論此項是否開啓,時間戳總會被記錄在/dev/kmsg中,開啓此項僅相當於使用"printk.time=1"內核引導參數.
Default message log level (1-7)
CONFIG_DEFAULT_MESSAGE_LOGLEVEL
printk()內核消息日誌的默認級別,取值範圍是[1,7].數值越大顯示的消息就越詳細:1=ALERT,2=CRIT,3=ERR,4=WARNING,5=NOTICE,6=INFO,7=DEBUG.
Enable __deprecated logic
CONFIG_ENABLE_WARN_DEPRECATED
編譯時開啓"反對使用"邏輯檢查,關閉此項將不會顯示類似"warning: 'foo' is deprecated (declared at kernel/power/somefile.c:1234)"的警告消息.
Enable __must_check logic
CONFIG_ENABLE_MUST_CHECK
編譯時開啓"必須檢查"邏輯檢查,關閉此項將不會顯示類似"warning: ignoring return value of 'foo', declared with attribute warn_unused_result"的警告消息.
Warn for stack frames larger than (needs gcc 4.4)
CONFIG_FRAME_WARN
堆棧幀大小警告閾值,設置過小會導致編譯時警告太多,設爲"0"可以關閉警告,需要GCC-4.4或更高版本
Magic SysRq key
CONFIG_MAGIC_SYSRQ
開啓"魔法鍵"(SysRq)支持(可以通過"echo 0 > /proc/sys/kernel/sysrq"關閉).由於SysRq會帶來安全隱患(允許未經登錄的操作),所以你應該僅在確實需要的場合開啓.更多詳情參見"Documentation/sysrq.txt"文檔
Strip assembler-generated symbols during link
CONFIG_STRIP_ASM_SYMS
連接時剝離彙編器產生的內部符號(類似'.Lxxx'),這樣可以淨化get_wchan()之類的輸出,同時還可以減小內核尺寸.建議開啓.
Generate readable assembler code
CONFIG_READABLE_ASM
生成人類易讀的彙編輸出,以方便內核調試.這會禁用一些編譯優化措施,也會降低內核的運行速度.
Enable unused/obsolete exported symbols
CONFIG_UNUSED_SYMBOLS
導出無用和廢棄的符號,這將使內核不必要的增大.建議關閉.
Debug Filesystem
CONFIG_DEBUG_FS
debugfs是內核開發者用來存儲調試信息的虛擬文件系統.不搞內核開發就別選
Run 'make headers_check' when building vmlinux
CONFIG_HEADERS_CHECK
在編譯內核時運行'make headers_check'命令檢查內核頭文件的正確性,當你修改了與用戶空間相關的內核頭文件後應該啓用該選項
Enable full Section mismatch analysis
CONFIG_DEBUG_SECTION_MISMATCH
僅供內核開發者使用
Kernel debugging
CONFIG_DEBUG_KERNEL
僅供內核開發者使用.[提示]如果你開啓了CONFIG_EXPERT,此項會被強制選中,如果這不是你想要的,可以到內核源碼樹的根目錄下使用"sed -i '/select DEBUG_KERNEL/d' usr/src/linux/init/Kconfig"命令去掉這個依賴.
Panic on Oops
CONFIG_PANIC_ON_OOPS
當內核oops時,直接panic掉(相當於Windows藍屏死機),這樣可以確保內核停止工作,避免導致無法預料的後果.等價於使用"oops=panic"內核引導參數.不確定的選"N".
Detect Hung Tasks
CONFIG_DETECT_HUNG_TASK
探測掛起的任務(處於不可中斷的"D"狀態).由於僅能檢測,不能做進一步的處理,所以僅用於幫助內核調試.
Collect scheduler debugging info
CONFIG_SCHED_DEBUG
提供一個"/proc/sched_debug"文件以幫助調試調度程序.僅供內核開發以及調試調度程序使用.
Collect scheduler statistics
CONFIG_SCHEDSTATS
收集調度程序的統計信息,並展示在"/proc/schedstat"文件中.可以用於調試調度程序,或者調整特定的應用程序.不確定的選"N".
Collect kernel timers statistics
CONFIG_TIMER_STATS
收集內核計時器的統計信息,並展示在"/proc/timer_stats"文件中.使用"echo 1 > /proc/timer_stats"開啓統計,使用"echo 0 > /proc/timer_stats"關閉統計.不確定的選"N".
Debug object operations
CONFIG_DEBUG_OBJECTS
跟蹤各種對象的生命週期(life time),並校驗對這些對象的各種操作.僅供內核調試.
Debug slab memory allocations
CONFIG_DEBUG_SLAB
僅供內核開發者使用
SLUB debugging on by default
CONFIG_SLUB_DEBUG_ON
默認開啓SLUB內存分配器調試功能.僅供調試,切勿用於生產環境.
Enable SLUB performance statistics
CONFIG_SLUB_STATS
收集SLUB內存分配器的性能統計信息.僅供調試,切勿用於生產環境.
Kernel memory leak detector
CONFIG_DEBUG_KMEMLEAK
內核內存泄漏檢測.僅供內核調試.
Debug preemptible kernel
CONFIG_DEBUG_PREEMPT
對內核的主動搶佔特性進行調試.僅供內核開發者使用
RT Mutex debugging, deadlock detection
CONFIG_DEBUG_RT_MUTEXES
僅供內核開發者使用
Built-in scriptable tester for rt-mutexes
CONFIG_RT_MUTEX_TESTER
僅供內核開發者使用
Spinlock and rw-lock debugging: basic checks
CONFIG_DEBUG_SPINLOCK
僅供內核開發者使用
Mutex debugging: basic checks
CONFIG_DEBUG_MUTEXES
僅供內核開發者使用
Lock debugging: detect incorrect freeing of live locks
CONFIG_DEBUG_LOCK_ALLOC
僅供內核開發者使用
Lock debugging: prove locking correctness
CONFIG_PROVE_LOCKING
僅供內核開發者使用
Lock usage statistics
CONFIG_LOCK_STAT
僅供內核開發者使用
Lock dependency engine debugging
CONFIG_DEBUG_LOCKDEP
僅供內核開發者使用
Sleep inside atomic section checking
CONFIG_DEBUG_ATOMIC_SLEEP
僅供內核開發者使用
Locking API boot-time self-tests
CONFIG_DEBUG_LOCKING_API_SELFTESTS
在內核啓動時運行一個簡短的加鎖/解鎖函數(spinlocks,rwlocks,mutexes,rwsems)自我測試.僅供內核開發者使用
Stack utilization instrumentation
CONFIG_DEBUG_STACK_USAGE
僅供內核開發者使用
kobject debugging
CONFIG_DEBUG_KOBJECT
僅供內核開發者使用
Verbose BUG() reporting (adds 70K)
CONFIG_DEBUG_BUGVERBOSE
在內核panic時讓BUG()函數報告更詳細的信息.內核將會增大70-100K.
Compile the kernel with debug info
CONFIG_DEBUG_INFO
以調試方式編譯內核(gcc -g).僅供內核開發者使用
Debug VM
CONFIG_DEBUG_VM
僅供內核開發者使用
Debug VM translations
CONFIG_DEBUG_VIRTUAL
僅供內核開發者使用
Debug filesystem writers count
CONFIG_DEBUG_WRITECOUNT
僅供內核開發者使用
Debug memory initialisation
CONFIG_DEBUG_MEMORY_INIT
在內存初始化時增加額外的合理性檢查.不確定的選"Y".
Debug linked list manipulation
CONFIG_DEBUG_LIST
僅供內核開發者使用
Linked list sorting test
CONFIG_TEST_LIST_SORT
僅供內核開發者使用
Debug SG table operations
CONFIG_DEBUG_SG
僅供內核開發者使用
Debug notifier call chains
CONFIG_DEBUG_NOTIFIERS
僅供內核開發者使用
Debug credential management
CONFIG_DEBUG_CREDENTIALS
僅供內核開發者使用
Compile the kernel with frame pointers
CONFIG_FRAME_POINTER
僅供內核開發者使用
Delay each boot printk message by N milliseconds
CONFIG_BOOT_PRINTK_DELAY
僅供內核開發者使用
RCU Debugging
僅供內核開發者使用.建議所有子項全選"N".
Kprobes sanity tests
CONFIG_KPROBES_SANITY_TEST
僅供內核開發者使用
Self test for the backtrace code
CONFIG_BACKTRACE_SELF_TEST
僅供內核開發者使用
Force extended block device numbers and spread them
CONFIG_DEBUG_BLOCK_EXT_DEVT
僅供內核開發者使用
Force weak per-cpu definitions
CONFIG_DEBUG_FORCE_WEAK_PER_CPU
僅供內核開發者使用
Debug access to per_cpu maps
CONFIG_DEBUG_PER_CPU_MAPS
僅供內核開發者使用
Linux Kernel Dump Test Tool Module
CONFIG_LKDTM
僅供內核開發者使用
Notifier error injection
CONFIG_NOTIFIER_ERROR_INJECTION
僅供內核開發者使用
Fault-injection framework
CONFIG_FAULT_INJECTION
僅供內核開發者使用
Latency measuring infrastructure
CONFIG_LATENCYTOP
僅供內核開發者使用
Strict user copy size checks
CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
僅供內核開發者使用
Debug page memory allocations
CONFIG_DEBUG_PAGEALLOC
僅供內核開發者使用
Tracers
CONFIG_FTRACE
僅供內核開發者使用.建議選"N".
Red-Black tree test
CONFIG_RBTREE_TEST
僅供內核開發者使用
Interval tree test
CONFIG_INTERVAL_TREE_TEST
僅供內核開發者使用
Remote debugging over FireWire early on boot
CONFIG_PROVIDE_OHCI1394_DMA_INIT
僅供內核開發者使用
Remote debugging over FireWire with firewire-ohci
CONFIG_FIREWIRE_OHCI_REMOTE_DMA
僅供內核開發者使用
Build targets in Documentation/ tree
CONFIG_BUILD_DOCSRC
編譯內核源碼樹下"Documentation"目錄中的目標.不確定的選"N".
Enable dynamic printk() support
CONFIG_DYNAMIC_DEBUG
僅供內核開發者使用
Enable debugging of DMA-API usage
CONFIG_DMA_API_DEBUG
僅供內核開發者使用
Perform an atomic64_t self-test at boot
CONFIG_ATOMIC64_SELFTEST
僅供內核開發者使用
Self test for hardware accelerated raid6 recovery
CONFIG_ASYNC_RAID6_TEST
僅供內核開發者使用
Sample kernel code
CONFIG_SAMPLES
內核示例代碼.僅供內核開發者使用
KGDB: kernel debugger
CONFIG_KGDB
僅供內核開發者使用
kmemcheck: trap use of uninitialized memory
CONFIG_KMEMCHECK
僅供內核開發者使用
Test functions located in the string_helpers module at runtime
CONFIG_TEST_STRING_HELPERS
僅供內核開發者使用
Test kstrto*() family of functions at runtime
CONFIG_TEST_KSTRTOX
僅供內核開發者使用
Filter access to /dev/mem
CONFIG_STRICT_DEVMEM
如果選"N",那麼用戶空間的root用戶將可以通過/dev/mem訪問所有內存空間(包括用戶空間與內核空間),以方便調試內核.如果選"Y",那麼內核空間除了PCI和BIOS部分以及數據區之外,都禁止訪問,以保護系統安全.不確定的選"Y".
Enable verbose x86 bootup info messages
CONFIG_X86_VERBOSE_BOOTUP
顯示詳細的內核引導信息.建議選"N"使引導過程更安靜(依然會顯示錯誤信息).
Early printk
CONFIG_EARLY_PRINTK
將內核日誌直接輸出到VGA緩衝或串口.這有助於調試那些在控制檯尚未完成初始化之前就造成系統崩潰的bug.
Early printk via EHCI debug port
CONFIG_EARLY_PRINTK_DBGP
支持將內核日誌直接通過EHCI調試端口輸出.選"N",除非你想調試內核.
Check for stack overflows
CONFIG_DEBUG_STACKOVERFLOW
僅供內核開發者使用
Export kernel pagetable layout to userspace via debugfs
CONFIG_X86_PTDUMP
僅供內核開發者使用
Write protect kernel read-only data structures
CONFIG_DEBUG_RODATA
僅供內核開發者使用
Set loadable kernel module data as NX and text as RO
CONFIG_DEBUG_SET_MODULE_RONX
將內核模塊的數據區標記爲NX(不可執行),文本段標記爲RO(只讀),以防止不良模塊(例如被植入病毒的模塊)對系統的破壞,也能預防某些類型的內核入侵.這需要CPU支持NX位(CPU flags中要含有"nx"標誌).但是這也有副作用:會與運行時代碼補丁衝突,還會導致動態內核跟蹤失效.建議選"Y",除非你需要調試內核,或者需要爲運行中的模塊打補丁.
Testcase for the NX non-executable stack feature
CONFIG_DEBUG_NX_TEST
對處理器的NX的測試用例.僅供內核開發者使用
Set upper limit of TLB entries to flush one-by-one
CONFIG_DEBUG_TLBFLUSH
僅供內核開發者使用
Enable IOMMU debugging
CONFIG_IOMMU_DEBUG
僅供內核開發者使用
Enable IOMMU stress-test mode
CONFIG_IOMMU_STRESS
僅供內核開發者使用
IOMMU leak tracing
CONFIG_IOMMU_LEAK
僅供內核開發者使用
x86 instruction decoder selftest
CONFIG_X86_DECODER_SELFTEST
僅供內核開發者使用
IO delay type
IO延遲方式
port 0x80 based port-IO delay
CONFIG_IO_DELAY_0X80
傳統的Linux IO延遲方式,久經考驗,也是最安全的默認值.
port 0xed based port-IO delay
CONFIG_IO_DELAY_0XED
基於0xed端口的IO延遲方式,主要是爲了避免和基於0x80端口的主板診斷卡衝突.絕大多數人都沒有主板診斷卡,除非那些專門維修主板的硬件工程師.
udelay based port-IO delay
CONFIG_IO_DELAY_UDELAY
使用內核端udelay()函數作爲延遲方法(簡單的延遲2微秒).可以不佔用任何IO端口空間.
no port-IO delay
CONFIG_IO_DELAY_NONE
不使用任何port-IO延遲機制.只要你的機器不是老古董,建議選擇此項.
Debug boot parameters
CONFIG_DEBUG_BOOT_PARAMS
僅供內核開發者使用
CPA self-test code
CONFIG_CPA_DEBUG
僅供內核開發者使用
Allow gcc to uninline functions marked 'inline'
CONFIG_OPTIMIZE_INLINING
允許GCC將標記爲內聯(inline)的函數變成非內聯(uninline).選"Y"後將完全無視代碼中的"inline"標記,完全由GCC自行決定是否應該將函數內聯.由於GCC4.x系列更新了判斷函數是否應該內聯的算法,選"Y"後,編譯出的內核體積會減小,但運行速度未必提升.建議經過測試後決定"Y"還是"N".
NMI Selftest
CONFIG_DEBUG_NMI_SELFTEST
對不可屏蔽中斷(Non Maskable Interrupt)進行自檢,僅供內核開發者使用

Security options
安全選項
這裏的選項不明白的建議不要選,否則有可能弄巧成拙.

Enable access key retention support
CONFIG_KEYS
在內核中保留認證令牌(authentication token)和訪問密鑰(access key).eCryptfs(CONFIG_ECRYPT_FS)依賴於它.不確定的選"N".
TRUSTED KEYS
CONFIG_TRUSTED_KEYS
"TRUSTED KEY"的意思是由TPM(可信賴平臺模塊)用RSA算法封裝的一對隨機數.開啓此項後,內核將可以爲創建/封裝/解封"TRUSTED KEY"提供支持.如果引導PCR(平臺配置寄存器)和各種條件都匹配,那麼TPM只解封密鑰.用戶空間永遠只能看到加密過後的二進制內容.不確定的選"N".
ENCRYPTED KEYS
CONFIG_ENCRYPTED_KEYS
"ENCRYPTED KEY"的意思是由內核封裝的一對隨機數,該對隨機數可以用一個"主密鑰"使用對稱加密算法進行加密和解密.開啓此項後,內核將可以爲創建/加密/解密"ENCRYPTED KEY"提供支持."主密鑰"既可以是"TRUSTED KEY"也可以是"user-key"(用戶選擇的密鑰).用戶空間永遠只能看到/存儲加密過後的二進制內容.不確定的選"N".
Enable the /proc/keys file by which keys may be viewed
CONFIG_KEYS_DEBUG_PROC_KEYS
開啓"/proc/keys"文件支持,該文件中保存了系統上所有可見的密鑰.注意,LSM(Linux安全模塊)安全檢查仍然是必須的.不確定的選"N".
Restrict unprivileged access to the kernel syslog
CONFIG_SECURITY_DMESG_RESTRICT
禁止非特權用戶訪問內核日誌(dmesg),相當於"echo 1 > /proc/sys/kernel/dmesg_restrict".不確定的選"N".
Enable different security models
CONFIG_SECURITY
允許內核選擇不同的LSM(Linux安全模塊),如果未選中則內核將使用默認的安全模塊("Default security module").不確定的選"N".
Enable the securityfs filesystem
CONFIG_SECURITYFS
securityfs安全文件系統支持.當前僅被TPM bios字符設備驅動以及IMA(完整性提供者)使用.它與SELinux或SMACK之類沒有關係.不確定的選"N".
Socket and Networking Security Hooks
CONFIG_SECURITY_NETWORK
允許安全模塊通過Security Hook對Socket與Networking進行訪問控制.不確定的選"N".
XFRM (IPSec) Networking Security Hooks
CONFIG_SECURITY_NETWORK_XFRM
爲XFRM(IPSec)啓用安全Hook.這樣安全模塊可以通過這些hook,根據IPSec策略標籤,實現針對每個網絡包的訪問控制.非IPSec通信則被當做"無標籤"處理,僅允許那些被明確批准可以不使用策略標籤的socket才能不通過IPSec進行通信.不確定的選"N".
Security hooks for pathname based access control
CONFIG_SECURITY_PATH
此安全鉤子程序可以讓各種安全模塊實現基於路徑的訪問控制.不確定的選"N".
Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)
CONFIG_INTEL_TXT
支持使用可信引導(Trusted Boot)技術引導內核(需要使用tboot模塊).這將使用英特爾TXT(可信任執行技術)來引導內核.在不支持TXT的平臺上開啓此項沒有效果.詳見"Documentation/intel_txt.txt"文檔.不確定的選"N".
Low address space for LSM to protect from user allocation
CONFIG_LSM_MMAP_MIN_ADDR
禁止用戶空間分配的低位內存範圍.禁止用戶寫入低位內存有助於降低內核NULL指針漏洞造成的破壞(參見CONFIG_DEFAULT_MMAP_MIN_ADDR選項).建議保持默認值"65536".
NSA SELinux Support
CONFIG_SECURITY_SELINUX
SELinux(安全增強Linux)是美國國家安全局(NSA)開發的Linux安全模塊,它擁有一個靈活而強制性的訪問控制結構,可防禦未知攻擊,相當於B1級的軍事安全性能(比微軟所謂的C2等高得多).應用SELinux後,可以減輕惡意攻擊或惡意軟件帶來的災難,對機密性和完整性有很高要求的信息,亦可提供很高的安全保障.但另一方面,如果不深入瞭解SELinux知識而盲目使用,則會弄巧成拙.不確定的選"N".
NSA SELinux boot parameter
CONFIG_SECURITY_SELINUX_BOOTPARAM
添加"selinux"內核引導參數.以允許在引導時使用'selinux=0'禁用SELinux或'selinux=1'啓用SELinux.
NSA SELinux boot parameter default value
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE
"selinux"內核引導參數的默認值.
NSA SELinux runtime disable
CONFIG_SECURITY_SELINUX_DISABLE
允許在運行時禁用SELinux.建議選"N".
NSA SELinux Development Support
CONFIG_SECURITY_SELINUX_DEVELOP
SELinux開發支持.開啓此項後,除非明確使用"enforcing=1"引導參數讓內核以"強制模式"運行,否則內核將以"許可模式"運行(記錄所有事件,同時允許所有操作).主要用於測試SELinux以及策略開發.此外,開啓此項後,還可以在運行時通過"/selinux/enforce"讓內核在"強制模式"與"許可模式"之間切換.
NSA SELinux AVC Statistics
CONFIG_SECURITY_SELINUX_AVC_STATS
蒐集訪問向量緩存(access vector cache)的統計信息並在/selinux/avc/cache_stats中顯示出來.這些信息可以用avcstat之類的工具查看.
NSA SELinux checkreqprot default value
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE
內核引導參數"checkreqprot"的默認值.設爲"0"表示默認檢查內核要求執行的保護策略,設爲"1"表示默認檢查應用程序要求執行的保護策略.此值還可以在運行時通過/selinux/checkreqprot修改.不確定的選"1".
NSA SELinux maximum supported policy format version
CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX
將支持的策略格式的最高版本設置爲一個特定的數值.該數值將通過/selinux/policyvers向用戶空間報告,並在加載策略時被使用.不確定的選"N".
NSA SELinux maximum supported policy format version value
支持策略格式的最高版本的數值.可以通過"checkpolicy -V"命令檢查當前工具鏈支持的版本數值.
Simplified Mandatory Access Control Kernel Support
CONFIG_SECURITY_SMACK
Smack(簡化的強制訪問控制內核)內核安全模塊.Smack是一種簡單而有效的強制訪問控制機制,它的簡單體現在安全策略的配置很簡單,它的有效體現在完全使用LSM作爲其控制手段.不確定的選"N".
TOMOYO Linux Support
CONFIG_SECURITY_TOMOYO
TOMOYO Linux是日本NTT數據公司開發的一種Linux安全模塊.不確定的選"N".
AppArmor support
CONFIG_SECURITY_APPARMOR
AppArmor是來自Novell的一種Linux安全模塊.不確定的選"N".
Yama support
CONFIG_SECURITY_YAMA
Yama(閻王)是3.4版內核新引入的一種Linux安全模塊.不確定的選"N".
Digital signature verification using multiple keyrings
CONFIG_INTEGRITY_SIGNATURE
允許使用多個密鑰環(keyring)進行數字簽名驗證,也就允許爲多個不同的使用場合(evm,ima,module)分別使用不同的keyring.看不懂的選"N".
Enable asymmetric keys support
CONFIG_INTEGRITY_ASYMMETRIC_KEYS
允許使用非對稱密鑰進行數字簽名驗證.
Integrity Measurement Architecture(IMA)
CONFIG_IMA
IMA(完整性度量架構)是一個在TCG(可信計算工作組)技術規範之上提出的完整性檢查技術.IMA維護着一個系統關鍵文件的哈希值列表,從而可以檢測這些關鍵文件是否被篡改.如果系統上有TPM安全芯片,那麼IMA還會在TPM芯片內存儲哈希值的集合.這樣的TPM芯片可以提供給第三方,用於檢查系統上的關鍵文件是否被篡改.不確定的選"N".
Enables auditing support
CONFIG_IMA_AUDIT
添加"ima_audit"內核引導參數支持.當設爲"ima_audit=1"時,將允許顯示完整性審計信息.
Appraise integrity measurements
CONFIG_IMA_APPRAISE
本地完整性鑑定支持.這樣就可以在加載文件時檢驗它的完整性.這要求系統配置EVM支持.不確定的選"N".
EVM support
CONFIG_EVM
EVM通過保護文件的安全擴展屬性來對抗完整性攻擊.
EVM HMAC version
CONFIG_EVM_HMAC_VERSION
支持的EVM HMAC版本:"1"表示原始版本,默認值"2"表示添加了文件系統UUID支持的改進版本.
Default security module
內核默認的安全模塊.[提示]"Unix Discretionary Access Controls"是經典的UNIX基於目錄的訪問控制安全模型.如果沒有開啓任何安全模塊,這將是默認值.

Cryptographic API
內核加密API支持
這裏的加密算法被廣泛的應用於驅動程序通信協議等機制中.子選項可以全不選,內核中若有其他部分依賴它,會自動選上.使用內核樹外的模塊時可能需要手動選擇.

FIPS 200 compliance
CONFIG_CRYPTO_FIPS
"fips"內核引導參數支持.這是在FIPS200認證的系統中運行所必須的.選"N",除非你確實知道自己在做什麼.
Cryptographic algorithm manager
CONFIG_CRYPTO_MANAGER
創建默認的加密模版實例.必選
Userspace cryptographic algorithm configuration
CONFIG_CRYPTO_USER
用戶空間加密實例配置.不確定的選"N".
Disable run-time self tests
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS
禁止在註冊算法時進行簡單的自我檢測.不確定的選"Y".
GF(2^128) multiplication functions
CONFIG_CRYPTO_GF128MUL
由高效表格驅動的伽羅瓦域 GF(2^128)乘法器支持.某些加密模式需要它.不確定的選"N".如果有其它模塊需要此特性,會被自動選中.
Null algorithms
CONFIG_CRYPTO_NULL
NULL加密算法(什麼也不做),用於IPsec協議的封裝安全載荷模塊(ESP)
Parallel crypto engine
CONFIG_CRYPTO_PCRYPT
將任意加密算法轉化成並行算法,並在內核線程中執行.
Software async crypto daemon
CONFIG_CRYPTO_CRYPTD
這是一個通用的軟件異步加密守護進程,可將任意的同步軟件加密算法轉換成在內核線程中執行的異步算法.
Authenc support
CONFIG_CRYPTO_AUTHENC
用於IPSec組合模式的包裝器.
Testing module
CONFIG_CRYPTO_TEST
醜陋的加密測試模塊.僅供調試使用.
CCM support
CONFIG_CRYPTO_CCM
CBC-MAC計數器.IPsec需要它.
GCM/GMAC support
CONFIG_CRYPTO_GCM
GCM(Galois/Counter Mode)與GMAC(Galois Message Authentication Code)支持.IPsec需要它.[註釋]GCM是一種對稱加密算法的塊密碼工作模式,使用128位塊大小.塊密碼工作模式可以分爲加密模式,認證模式,認證加密模式.GCM模式爲認證模式的一種,提供認證和加密兩種功能.
Sequence Number IV Generator
CONFIG_CRYPTO_SEQIV
序號初始向量(IV)生成器.它基於一個序號與一個鹽粒子(salt)的異或值生成一個向量.此算法主要用於塊密碼的CTR(計數模式).
CBC support
CONFIG_CRYPTO_CBC
塊密碼工作模式:密碼分組鏈接(Cipher Block Chaining)模式.IPSec需要它.
CTR support
CONFIG_CRYPTO_CTR
塊密碼工作模式:計數器(Counter)模式.IPSec需要它.
CTS support
CONFIG_CRYPTO_CTS
塊密碼工作模式:密文竊取(Cipher Text Stealing)模式.Kerberos gss機制支持的AES加密需要它.
ECB support
CONFIG_CRYPTO_ECB
塊密碼工作模式電子密碼本(Electronic CodeBook)模式.這是最簡單的分組密碼算法,只是簡單的分別加密每個塊.
LRW support
CONFIG_CRYPTO_LRW
塊密碼工作模式:LRW(Liskov Rivest Wagner)模式.這個模式以三個人名命名.這是一種小數據塊加密模式,加密後的數據保持與明文數據同樣的長度,專門用於CONFIG_DM_CRYPT模塊加密磁盤區塊(使用"aes-lrw-benbi"指定).
PCBC support
CONFIG_CRYPTO_PCBC
塊密碼工作模式:填充密碼塊鏈接(Propagating Cipher Block Chaining)模式.CONFIG_AF_RXRPC需要它.
XTS support
CONFIG_CRYPTO_XTS
塊密碼工作模式:XTS模式.這是IEEE1619/D16規範制定的一種小數據塊加密模式,加密後的數據保持與明文數據同樣的長度,專門用於加密磁盤區塊(使用"aes-xts-plain"指定).
CMAC support
CONFIG_CRYPTO_CMAC
NIST(美國國家標準與技術研究所)制定的基於密文的消息認證碼(Cipher-based Message Authentication Code)
HMAC support
CONFIG_CRYPTO_HMAC
基於哈希的消息驗證代碼(RFC2104).在發送方和接收方共享機密密鑰的前提下,HMAC可用於確定通過不安全信道發送的消息是否被篡改.IPSec需要它.
XCBC support
CONFIG_CRYPTO_XCBC
基於哈希的加密算法(RFC3566)
VMAC support
CONFIG_CRYPTO_VMAC
VMAC是一種專用於64位CPU的高速消息認證算法
CRC32c CRC algorithm
CONFIG_CRYPTO_CRC32C
CRC32c摘要算法是常見的CRC32循環冗餘校驗的一個變種,僅多項式常數不同,算法完全一樣.常用於iSCSI和SCTP數據校驗.
CRC32c INTEL hardware acceleration
CONFIG_CRYPTO_CRC32C_INTEL
利用SSE4.2指令集中專用的"CRC32"指令,可以提高最少10倍的運算速度.如果你的CPU支持SSE4.2,建議選"Y".
CRC32 CRC algorithm
CONFIG_CRYPTO_CRC32
經典的CRC32循環冗餘校驗算法.
CRC32 PCLMULQDQ hardware acceleration
CONFIG_CRYPTO_CRC32_PCLMUL
使用處理器的PCLMULQDQ指令(又稱CLMUL指令集,其實只有一條指令)加速CRC32的運算.PCLMULQDQ是從Intel Westmere和AMD Bulldozer開始引入的指令(隸屬於AES指令集).可以大幅提升CRC32的運算速度.如果你的CPU支持AES指令集,建議選"Y".
GHASH digest algorithm
CONFIG_CRYPTO_GHASH
GHASH是用於GCM(Galois/Counter Mode)的消息摘要算法.
MD4 digest algorithm
CONFIG_CRYPTO_MD4
老舊的MD4(RFC1320)摘要算法,已經被淘汰.
MD5 digest algorithm
CONFIG_CRYPTO_MD5
廣泛使用的MD5(RFC1321)摘要算法,128位.已經被發現可以快速找到碰撞,正逐漸淘汰中.
Michael MIC keyed digest algorithm
CONFIG_CRYPTO_MICHAEL_MIC
Michael MIC是僅用於TKIP(IEEE 802.11i)的摘要算法.不能用於其它場合,因爲它存在一些缺陷.
RIPEMD-128 digest algorithm
CONFIG_CRYPTO_RMD128
RIPEMD-128(ISO/IEC 10118-3:2004)128位摘要算法.安全性不高,不建議使用.
RIPEMD-160 digest algorithm
CONFIG_CRYPTO_RMD160
RIPEMD-160(ISO/IEC 10118-3:2004)160位摘要算法.是替代各種128位摘要算法(RIPEMD-128,MD5,MD4)的首選.其運算速度和SHA1相當,但是目前尚無已知有效的攻擊方法.
RIPEMD-256 digest algorithm
CONFIG_CRYPTO_RMD256
RIPEMD-256在本質上和RIPEMD-128是一樣的.因爲RIPEMD的設計者們根本就沒有真正設計256和320位這兩種標準,他們只是在128位和160位的基礎上,修改了初始參數和s-box來達到輸出爲256和320位的目的.所以,256位的強度和128相當,而320位的強度和160位相當.
RIPEMD-320 digest algorithm
CONFIG_CRYPTO_RMD320
RIPEMD-320在本質上和RIPEMD-160是一樣的.因爲RIPEMD的設計者們根本就沒有真正設計256和320位這兩種標準,他們只是在128位和160位的基礎上,修改了初始參數和s-box來達到輸出爲256和320位的目的.所以,256位的強度和128相當,而320位的強度和160位相當.
SHA1 digest algorithm
CONFIG_CRYPTO_SHA1
目前使用最廣泛的SHA-1(FIPS 180-1/DFIPS 180-2)160位摘要算法是SHA家族中的一員,在許多安全協議中廣爲使用(TLS,SSL,PGP,SSH,S/MIME,IPsec等).SHA-1曾被視爲是MD5的後繼者,但由於出現了針對SHA-1的理論上破解的方法(不等於實踐中被破解),有些人已經開始改用其它的替代算法(例如SHA-3).
SHA1 digest algorithm (SSSE3/AVX)
CONFIG_CRYPTO_SHA1_SSSE3
使用SSSE3/AVX指令集加速SHA-1的計算.如果你的CPU支持SSSE3/AVX指令集,建議選"Y".
SHA256 digest algorithm (SSSE3/AVX/AVX2)
CONFIG_CRYPTO_SHA256_SSSE3
使用SSSE3/AVX/AVX2指令集加速SHA-256的計算.
SHA512 digest algorithm (SSSE3/AVX/AVX2)
CONFIG_CRYPTO_SHA512_SSSE3
使用SSSE3/AVX/AVX2指令集加速SHA-512的計算.
SHA224 and SHA256 digest algorithm
CONFIG_CRYPTO_SHA256
SHA-224和SHA-256摘要算法,速度較SHA1稍慢,都屬於"SHA-2"系列,目前尚無已知的有效攻擊方法.但並未被廣泛使用.
SHA384 and SHA512 digest algorithms
CONFIG_CRYPTO_SHA512
SHA-384和SHA-512摘要算法,速度大約只有SHA1的40-50%,都屬於"SHA-2"系列,目前尚無已知的有效攻擊方法.但並未被廣泛使用.
Tiger digest algorithms
CONFIG_CRYPTO_TGR192
Tiger號稱是最快的哈希算法,專門爲64位機器做了優化.
Whirlpool digest algorithms
CONFIG_CRYPTO_WP512
Whirlpool是一種512位的摘要算法,利用了已有的AES分組密碼算法構造Hash函數,擁有相當高的安全性,已經被列入了ISO標準,目前最新版本爲3.0(2003年發佈).
GHASH digest algorithm (CLMUL-NI accelerated)
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL
使用CPU的CLMUL指令集(包含在AES指令集中)加速GHASH摘要算法.
AES cipher algorithms
CONFIG_CRYPTO_AES
AES(FIPS-197)又稱"Rijndael",是目前最佳的對稱加密算法,快速且節省內存,可以使用128/192/256位密鑰,是目前使用最廣泛的對稱加密算法.
AES cipher algorithms (x86_64)
CONFIG_CRYPTO_AES_X86_64
針對x86_64架構的AES實現.
AES cipher algorithms (AES-NI)
CONFIG_CRYPTO_AES_NI_INTEL
使用AES指令集加速AES的計算.如果你的CPU支持AES指令集,建議選"Y".
Anubis cipher algorithm
CONFIG_CRYPTO_ANUBIS
Anubis是一種分組密碼算法.分組長度爲128位,密鑰長度可變(最低128位),圈數可變(最低12圈).是歐洲於2000年1月1日啓動的NESSIE計劃17個候選分組加密算法之一.
ARC4 cipher algorithm
CONFIG_CRYPTO_ARC4
一種脆弱的流對稱加密算法,僅用於已經被淘汰的WEP.
Blowfish cipher algorithm
CONFIG_CRYPTO_BLOWFISH
Blowfish對稱加密算法,一種又老又慢的對稱加密算法.
Blowfish cipher algorithm (x86_64)
CONFIG_CRYPTO_BLOWFISH_X86_64
針對x86_64架構的Blowfish實現
Blowfish cipher algorithm (x86_64/AVX2)
CONFIG_CRYPTO_BLOWFISH_AVX2_X86_64
使用AVX2指令集加速Blowfish的計算.
Camellia cipher algorithms
CONFIG_CRYPTO_CAMELLIA
Camellia是歐盟NESSIE項目的選定算法,也是日本CRYPTREC項目的推薦算法.可以使用128/192/256位密鑰,具有與AES同等級的安全強度及運算速度.
Camellia cipher algorithm (x86_64)
CONFIG_CRYPTO_CAMELLIA_X86_64
針對x86_64架構的Camellia實現
Camellia cipher algorithm (x86_64/AES-NI/AVX)
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64
使用AES指令集/AVX指令集加速Camellia的計算.
Camellia cipher algorithm (x86_64/AES-NI/AVX2)
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
使用AES指令集/AVX2指令集加速Camellia的計算.
CAST5 (CAST-128) cipher algorithm
CONFIG_CRYPTO_CAST5
老舊的CAST5(CAST-128)對稱加密算法
CAST5 (CAST-128) cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_CAST5_AVX_X86_64
使用AVX指令集加速CAST5的計算.
CAST6 (CAST-256) cipher algorithm
CONFIG_CRYPTO_CAST6
老舊的CAST6(CAST-256)對稱加密算法
CAST6 (CAST-256) cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_CAST6_AVX_X86_64
使用AVX指令集加速CAST6的計算.
DES and Triple DES EDE cipher algorithms
CONFIG_CRYPTO_DES
老舊的DES和三重DES對稱加密算法.
FCrypt cipher algorithm
CONFIG_CRYPTO_FCRYPT
FCrypt對稱加密算法僅用於CONFIG_AF_RXRPC
Khazad cipher algorithm
CONFIG_CRYPTO_KHAZAD
Khazad是一種最終進入NESSIE決賽的對稱加密算法,專爲64位CPU設計,支持128位密鑰.
Salsa20 stream cipher algorithm
CONFIG_CRYPTO_SALSA20
Salsa20是一種流密碼算法,也是eSTREAM工程最終勝選算法之一.
Salsa20 stream cipher algorithm (x86_64)
CONFIG_CRYPTO_SALSA20_X86_64
針對x86_64架構的Salsa20實現
SEED cipher algorithm
CONFIG_CRYPTO_SEED
SEED(RFC4269)對稱分組加密算法,採用128位密鑰,是韓國的國家標準.
Serpent cipher algorithm
CONFIG_CRYPTO_SERPENT
Serpent對稱加密算法曾經是AES的最終5個候選算法之一,因爲速度較Rijndael慢而最終得票數次之.目前尚未發現針對Serpent的有效攻擊,因此被認爲是一種強安全算法(甚至被認爲比Rijndael更安全).
Serpent cipher algorithm (x86_64/SSE2)
CONFIG_CRYPTO_SERPENT_SSE2_X86_64
使用SSE2指令集加速Serpent的計算.
Serpent cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_SERPENT_AVX_X86_64
使用AVX指令集加速Serpent的計算.
Serpent cipher algorithm (x86_64/AVX2)
CONFIG_CRYPTO_SERPENT_AVX2_X86_64
使用AVX2指令集加速Serpent的計算.
TEA, XTEA and XETA cipher algorithms
CONFIG_CRYPTO_TEA
較弱的幾種對稱加密算法
Twofish cipher algorithm
CONFIG_CRYPTO_TWOFISH
Twofish是派生自Blowfish的對稱加密算法,曾經是AES的最終5個候選算法之一,最終得票數第三.
Twofish cipher algorithm (x86_64)
CONFIG_CRYPTO_TWOFISH_X86_64
針對x86_64架構的Twofish實現
Twofish cipher algorithm (x86_64, 3-way parallel)
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY
針對x86_64架構的三路並行Twofish實現.能夠充分利用亂序執行CPU的指令週期.
Twofish cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_TWOFISH_AVX_X86_64
使用AVX指令集加速Twofish的計算.
Twofish cipher algorithm (x86_64/AVX2)
CONFIG_CRYPTO_TWOFISH_AVX2_X86_64
使用AVX2指令集加速Twofish的計算.
Deflate compression algorithm
CONFIG_CRYPTO_DEFLATE
Deflate(RFC1951)無損數據壓縮算法.當在IPSec中使用IPCOMP協議時才需要.
Zlib compression algorithm
CONFIG_CRYPTO_ZLIB
zlib無損數據壓縮算法是一種事實上的業界標準.被廣泛應用.
LZO compression algorithm
CONFIG_CRYPTO_LZO
LZO是致力於解壓速度的一種無損數據壓縮算法.
Pseudo Random Number Generation for Cryptographic modules
CONFIG_CRYPTO_ANSI_CPRNG
通用的僞隨機數生成器.用於爲密碼模塊提供相應的支持.
User-space interface for hash algorithms
CONFIG_CRYPTO_USER_API_HASH
哈希算法的用戶空間接口.
User-space interface for symmetric key cipher algorithms
CONFIG_CRYPTO_USER_API_SKCIPHER
對稱加密算法的用戶空間接口.
Hardware crypto devices
CONFIG_CRYPTO_HW
硬件加密設備支持
Support for VIA PadLock ACE
CONFIG_CRYPTO_DEV_PADLOCK
帶有PadLock技術的VIA系列處理器支持
PadLock driver for AES algorithm
CONFIG_CRYPTO_DEV_PADLOCK_AES
利用PadLock技術加速AES運算.VIA C3及以上的CPU都支持.
PadLock driver for SHA1 and SHA256 algorithms
CONFIG_CRYPTO_DEV_PADLOCK_SHA
利用PadLock技術加速SHA1和SHA256運算.VIA C7及以上的CPU都支持.
Asymmetric (public-key cryptographic) key type
CONFIG_ASYMMETRIC_KEY_TYPE
非對稱加密算法(公鑰加密算法)
Asymmetric public-key crypto algorithm subtype
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE
非對稱公鑰加密算法子類型.如果需要生成或者校驗簽名,那就還必須配合哈希算法一起使用.
RSA public-key algorithm
CONFIG_PUBLIC_KEY_ALGO_RSA
RSA算法(PKCS#1, RFC3447)支持
X.509 certificate parser
CONFIG_X509_CERTIFICATE_PARSER
X.509證書解析支持

Virtualization
虛擬化支持
僅在將此內核用作宿主機(host)的情況下才需要開啓這裏的子項

Kernel-based Virtual Machine (KVM) support
CONFIG_KVM
KVM(內核虛擬機)是一種基於Linux內核的全虛擬化技術,需要CPU支持x86硬件虛擬化技術(Intel VT或AMD-V).開啓此項後,將可以通過字符文件"/dev/kvm"使用虛擬機.
KVM for Intel processors support
CONFIG_KVM_INTEL
Intel VT技術支持.也就是cpu-flags中有"vmx"標記.
KVM for AMD processors support
CONFIG_KVM_AMD
AMD-V技術支持.也就是cpu-flags中有"svm"標記.
Audit KVM MMU
CONFIG_KVM_MMU_AUDIT
添加一個"kvm.mmu_audit"內核參數,用於控制是否允許在運行時對KVM MMU進行審計."0"表示禁止審計,"1"表示允許審計.主要用於調試目的.不確定的選"N".
KVM legacy PCI device assignment support
CONFIG_KVM_DEVICE_ASSIGNMENT
通過KVM支持傳統的PCI設備分配.內核目前還通過VFIO(CONFIG_VFIO)支持一個全功能的用戶空間設備驅動框架,可以取代這裏的功能.
Host kernel accelerator for virtio net
CONFIG_VHOST_NET
在宿主機內核中開啓此項後,可以加速客戶機的網絡操作速度(客戶機內核必須要加載virtio_net模塊(CONFIG_VIRTIO_NET)).
VHOST_SCSI TCM fabric driver
CONFIG_VHOST_SCSI
允許將宿主機的TCM fabric模塊(vhost_scsi)用於加載了virtio-scsi模塊的客戶機.看不懂的選"N".

Library routines
庫子程序
子選項可以全不選,內核中若有其他部分依賴它,會自動選上.使用內核樹外的模塊時可能需要手動選擇.

CRC-CCITT functions
CONFIG_CRC_CCITT
爲內核樹外的模塊提供CRC-CCITT循環驗證算法支持.
CRC16 functions
CONFIG_CRC16
爲內核樹外的模塊提供CRC16循環驗證算法支持.
CRC calculation for the T10 Data Integrity Field
CONFIG_CRC_T10DIF
爲內核樹外的模塊提供CRC循環驗證算法支持.從而允許內核樹外的SCSI模塊利用T10/SCSI Data Integrity Field保障端到端的數據完整性.
CRC ITU-T V.41 functions
CONFIG_CRC_ITU_T
爲內核樹外的模塊提供CRC ITU-T V.41循環驗證算法支持.
CRC32/CRC32c functions
CONFIG_CRC32
爲內核樹外的模塊提供CRC32/CRC32c循環驗證算法支持.
CRC32 perform self test on init
CONFIG_CRC32_SELFTEST
在CRC32算法初始化的時候進行一個簡單的自我測試.不確定的選"N".
CRC32 implementation
選擇CRC32算法的實現方式.不確定的請保持默認值"Slice by 8 bytes",除非你知道自己在做什麼.
CRC7 functions
CONFIG_CRC7
爲內核樹外的模塊提供CRC7循環驗證算法支持.
CRC32c (Castagnoli, et al) Cyclic Redundancy-Check
CONFIG_LIBCRC32C
爲內核樹外的模塊提供CRC32c循環驗證算法支持.
CRC8 function
CONFIG_CRC8
爲內核樹外的模塊提供CRC8循環驗證算法支持.
XZ decompression support
CONFIG_XZ_DEC
爲內核樹外的模塊提供XZ解壓支持.詳見"Documentation/xz.txt"文檔.子項是針對不同平臺的"BCJ filter decoder".按需選擇即可.
XZ decompressor tester
CONFIG_XZ_DEC_TEST
XZ解壓測試程序.不確定的選"N".
Averaging functions
CONFIG_AVERAGE
爲內核樹外的模塊提供averaging函數支持
CORDIC algorithm
CONFIG_CORDIC
爲內核樹外的模塊提供CORDIC算法支持
JEDEC DDR data
CONFIG_DDR
爲內核樹外的DDR SDRAM內存控制器驅動提供獲取JEDEC數據支持.


發佈了17 篇原創文章 · 獲贊 19 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章