天天看點

Make Menuconfig詳解(二)(配置核心選擇)

作者:Linux核心之家
Make Menuconfig詳解(二)(配置核心選擇)

make menuconfig簡介

Y--将該功能編譯進核心   

N--不将該功能編譯進核心  

M--将該功能編譯成可以在需要時動态插入到核心中的子產品

如果你是使用的是 make xconfig,那使用滑鼠就可以選擇對應的選項。這裡使用的是 make menuconfig,是以需要使用空格鍵進行選取。在每一個選項前都有一個括号, 有的是中括号有的是尖括号,還有圓括号。用空格鍵選擇時可以發現,中括号裡要麼是空,要麼是"*"; 而尖括号裡可以是空,"*"表示編譯到核心裡;"M"表示編譯成子產品。而圓括号的内容是要你在所提供的幾個選項中選擇一項。

Make Menuconfig詳解(二)(配置核心選擇)

General setup

1.1、prompt for development and/or incomplete code/drivers

該選項是對那些還在測試階段的代碼,驅動子產品等的支援。一般應該選這個選項,除非你隻是想使用 LINUX 中已經完全穩定的東西。但這樣有時對系統性能影響挺大。

1.2、Cross-compiler tool prefix

交叉編譯工具字首,例如:Cross-compiler tool prefix值為: (arm-linux-)

1.3、Local version - append to kernel release

核心顯示的版本資訊,填入 64字元以内的字元串,你在這裡填上的字元口串可以用uname -a指令看到。

1.4、 Automatically append version information to the version string

自動在版本字元串後面添加版本資訊,編譯時需要有perl以及git倉庫支援

1.5、Kernel compression mode (Gzip) --->

有四個選項,這個選項是說核心鏡像要用的壓縮模式,回車一下,可以看到gzip,bzip2,lzma,lxo,一般可以按預設的gzip,如果要用bzip2,lzma,lxo要先裝上支援

1.6、Support for paging of anonymous memory (swap)

使用交換分區或交換檔案來做為虛拟記憶體,一定要選上。

1.7、System V IPC

表示系統的程序間通信Inter Process Communication,它用于處理器在程式之間同步和交換資訊,如果不選這項,很多程式運作不起來,必選。

1.8、POSIX Message Queues

POSIX标準的消息隊列,它同樣是一種IPC。建議你最好将它選上

1.9、BSD Process Accounting

使用者程序通路核心時将程序資訊寫入檔案中。通常主要包括程序的建立時間/建立者/記憶體占用等資訊。建議最好選上。

BSD Process Accounting version 3 file format

使用新的第三版檔案格式,可以包含每個程序的PID和其父程序的PID,但是不相容老版本的檔案格式。

1.11、Export task/process statistics through netlink (EXPERIMENTAL)

通過netlink接口向使用者空間導出任務/程序的統計資訊,與BSD Process Accounting的不同之處在于這些統計資訊在整個任務/程序生存期都是可用的

Enable per-task delay accounting (EXPERIMENTAL)

在統計資訊中包含程序等候系統資源(cpu,IO同步,記憶體交換等)所花費的時間

Enable extended accounting over taskstats (EXPERIMENTAL)

在統計資訊中包含擴充程序所花費的時間

1.12、Auditing support

審記支援,用于和核心的某些子子產品同時工作,例如Security Enhanced Linux。隻有選擇此項及它的子項,才能調用有關審記的系統調用。

1.13、Enable system-call auditing support

支援對系統調用的審計

1.14、IRQ subsystem --->

中斷子系統

Support sparse irq numbering

<=== 支援稀有的中斷編号,關閉

1.15、RCU Subsystem --->

非對稱讀寫鎖系統 是一種高性能的kernel 鎖機制,适用于讀多寫少環境

RCU Implementation (Tree-based hierarchical RCU) --->

RCU 實作機制 Tree(X) Tree-based hierarchical RCU 基本數按等級劃分

Enable tracing for RCU

激活跟蹤

(32) Tree-based hierarchical RCU fanout value

基本數按等級劃分分列值

Disable tree-based hierarchical RCU auto-balancing

1.16、< > Kernel .config support

這個選項允許.config檔案(即編譯LINUX時的配置檔案)儲存在核心當中

1.17、(17) Kernel log buffer size (16 => 64KB, 17 => 128KB)

1.18、[ ] Control Group support --->

cgroups 支援, 文檔資料 ,cgroups 主要作用是給程序分組,并可以動态調控程序組的CPU 占用率。比如A 程序分到apple 組,給予20%CPU 占用率,E 程序分easy 組,給予50%CPU 占用率,最高100% 。我目前沒有此類應用場景,用到時會選擇将其編譯進去。

CPU bandwidth provisioning for FAIR_GROUP_SCHED

此選項允許使用者定義的CPU帶寬速率(限制)在公平的組排程運作的任務。組沒有限制設定被認為是無限制和運作沒有限制。

Group scheduling for SCHED_RR/FIFO

此功能可以讓您顯式地配置設定真實的CPU帶寬任務組。

1.19、-*- Namespaces support --->

命名空間支援,允許伺服器為不同的使用者資訊提供不 同的使用者名空間服務

[*] UTS namespace

通用終端系統的命名空間。它允許容器,比如Vservers利用UTS命名空間來為不同的伺服器提供不同的UTS。如果不清楚,選N。

[*] IPC namespace

IPC命名空間,不确定可以不選

[*] User namespace (EXPERIMENTAL)

User命名空間,不确定可以不選

[*] PID Namespaces

PID命名空間,不确定可以不選

[*] Network namespace

1.20、Automatic process group scheduling 自動程序組排程

1.21、[ ] enable deprecated sysfs features to support old userspace tools

1.22、-*- Kernel->user space relay support (formerly relayfs)

在某些檔案系統上( 比如debugfs ) 提供從核心空間向使用者空間傳遞大量資料的接口,我目前沒有此類應用場景

1.23、 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

用于在真正核心裝載前,做一些操作(俗稱兩階段啟動),比如加載module ,mount 一些非root 分區,提供災難恢複shell 環境等, 資料 ,我是期望直接從kernel image 直接啟動,是以沒選它

1.24、Initramfs source file(s)

initrd已經被initramfs取代,如果你不明白這是什麼意思,請保持空白

1.25、Optimize for size

這個選項将在GCC 指令後用 “-Os ” 代替 “-O2 ″參數,這樣可以得到更小的核心。沒必要選。選上了有時會産生錯誤的二進制代碼。

1.26、Enable full-sized data structures for core:在核心中使用全尺寸的資料結構.禁用它将使得某些核心的資料結構減小以節約記憶體,但是将會降低性能。

1.27、Enable futex support:快速使用者空間互斥體可以使線程串行化以避免競态條件,也提高了響應速度.禁用它将導緻核心不能正确的運作基于glibc的程式。

1.28、Enable eventpoll support:支援事件輪循的系統調用。

1.29、Use full shmem filesystem:除非你在很少的記憶體且不使用交換記憶體時,才不要選擇這項。後面的這四項都是在編譯時記憶體中的對齊方式,0 表示

編譯器的預設方式。使用記憶體對齊能提高程式的運作速度,但是會增加程式對記憶體的使用量。核心也是一組程式呀。

Enable VM event counters for /proc/vmstat:允許在/proc/vmstat中包含虛拟記憶體事件記數器。

[*] Disable heap randomization

禁用随機heap(heap堆是一個應用層的概念,即堆對CPU是不可見的,它的實作方式有多種,可以由OS實作,也可以由運作庫實作,如果你願意,你也可以在一個棧中來實作一個堆)

1.30、Choose SLAB allocator (SLAB) --->

選擇記憶體配置設定管理器(強烈推薦使用SLUB)

1.31、[ ] Configure standard kernel features (for small systems) --->

這個選項可以讓核心的基本選項和設定無效或者扭曲。這是用于特定環境中的,它允許“非标準”核心。你要是選它,你一定要明白自己在幹什麼。這是為了編譯某 些特殊用途的核心使用的,例如引導盤系統。配置标準的核心特性(為小型系統)

Enable 16-bit UID system calls:允許對UID系統調用進行過時的16-bit包裝。

Sysctl syscall support 幾乎使用不到這一選項,不選它可以輕微使核心變小

Include all symbols in kallsyms:在kallsyms中包含核心知道的所有符号,核心将會增大300K。

Enable support for printk:允許核心向終端列印字元資訊,在需要診斷核心為什麼不能運作時選擇。

BUG() support:顯示故障和失敗條件(BUG 和WARN),禁用它将可能導緻隐含的錯誤被忽略。

Enable ELF core dumps:記憶體轉儲支援,可以幫助調試ELF格式的程式。

1.32、[*] Profiling support

不選剖面支援,用一個工具來掃描和提供計算機的剖面圖。支援系統評測(對于大多數使用者來說并不是必須的)

1.33、OProfile system profiling

OProfile評測和性能監控工具

1.35、[ ] OProfile multiplexing support (EXPERIMENTAL)

1.34、Kprobes

調試核心除非開發人員,否則不選

1.35、Optimize trace point call sites

1.36、GCOV-based kernel profiling

[ ] Enable gcov-based kernel profiling 不選

Enable loadable module support

2.1 Forced module loading

允許強制加載子產品

2.2 Module unloading

允許解除安裝已經加載的子產品

2.3 Forced module unloading

允許強制解除安裝正在使用中的子產品(比較危險)這個選項允許你強行卸除子產品,即使核心認為這不安全。核心将會立即移除子產品,而不管是否有人在使用它(用 rmmod -f 指令)。這主要是針對開發者和沖動的使用者提供的功能。如果不清楚,選N。

2.4 Module versioning support

有時候,你需要編譯子產品。選這項會添加一些版本資訊,來給編譯的子產品提供獨立的特性,以使不同的核心在使用同一子產品時差別于它原有的子產品。這有時可能會有點用。如果不清楚,選N。允許使用其他核心版本的子產品(可能會出問題)

2.5 Source checksum for all modules

為所有的子產品校驗源碼,如果你不是自己編寫核心子產品就不需要它這個功能是為了防止你在編譯子產品時不小心更改了核心子產品的源代碼但忘記更改版本号而造成版本沖突。如果不清楚,選N。

Enable the block layer

塊裝置支援,使用硬碟/USB/SCSI裝置者必選這選項使得塊裝置可以從核心移除。如果不選,那麼 blockdev 檔案将不可用,一些檔案系統比如 ext3 将不可用。這個選項會禁止 SCSI 字元裝置和 USB 儲存裝置,如果它們使用不同的塊裝置。選Y,除非你知道你不需要挂載硬碟和其他類似的裝置。不過此項無可選項

3.1 Support for large (2TB+) block devices and files

僅在使用大于2TB的塊裝置時需要

3.2 Block layer SG support v4

通用scsi塊裝置第4版支援

3.3 Block layer data integrity support

塊裝置資料完整性支援

3.4 Block layer bio throttling support

可用于限制裝置的IO速度

3.5 Partition Types

Advanced partition selection

如果你想要在linux上使用一個在其他的媒體上運作着作業系統的硬碟時,選擇Y,如果你不确定時可以選N

3.6 IO Schedulers

IO排程器I/O是輸入輸出帶寬控制,主要針對硬碟,是核心的必須的東西。這裡提供了三個IO排程器。

Deadline I/O scheduler

使用輪詢的排程器,簡潔小巧,提供了最小的讀取延遲和尚佳的吞吐量,特别适合于讀取較多的環境(比如資料庫)Deadline I/O排程器簡單而又緊密,在性能上和搶先式排程器不相上下,在一些資料調入時工作得更好。至于在單程序I/O磁盤排程上,它的工作方式幾乎和搶先式排程 器相同,是以也是一個好的選擇。

CFQ I/O scheduler

使用QoS政策為所有任務配置設定等量的帶寬,避免程序被餓死并實作了較低的延遲,可以認為是上述兩種排程器的折中.适用于有大量程序的多使用者系統CFQ排程器嘗試為所有程序提供相同的帶寬。它将提供平等的工作環境,對于桌面系統很合适。

Default I/O scheduler (CFQ)

預設IO排程器我這樣了解上面三個IO排程器:

搶先式是傳統的,它的原理是一有響應,就優先考慮排程。如果你的硬碟此時在運作一項工作,它也會暫停下來先響應使用者。 期限式則是:所有的工作都有最終期限,在這之前必須完成。當使用者有響應時,它會根據自己的工作能否完成,來決定是否響應使用者。 CFQ則是平均配置設定資源,不管你的響應多急,也不管它的工作量是多少,它都是平均配置設定,一視同仁的。

( *) Deadline

( ) CFQ

( ) No-op

Processor type and features (處理器類型及特點)

4.1 DMA memory allocation support

該選項允許小于32位位址的裝置使用前16MB的位址空間,如果不缺定的話,選Y

4.2 Symmetric multi-processing support

對稱多處理器支援,如果你有多個CPU或者使用的是多核CPU就選上.此時"Enhanced Real Time Clock Support"選項必須開啟,"Advanced Power Management"選項必須關閉如果你選N,核心将會在單個或者多個CPU的機器上運作,但是隻會使用一個CPU。如果你選Y,核心可以在很多(但不 是所有)單CPU的機器上運作,在這樣的機器,你選N會使核心運作得更快。 注意如果你選Y,然後在Processor family選項中選擇“586〃 or “Pentium” ,核心将不能運作在486構架的機器上。同樣的,多CPU的運作于PPro構架上的核心也無法在 Pentium 系列的闆上運作。

4.3 Enable MPS table

MPS多處理器規範,不選

4.4 Support for big SMP systems with more than 8 CPUs

預設情況下為不選

4.5 Support for extended (non-PC) x86 platforms

如果選的話,你将可以選擇支援如下32位X86的平台。

AMD Elan,NUMAQ (IBM/Sequent),RDC R-321x SoC,SGI 320/540 (Visual Workstation),STA2X11-based (e.g. Northville),Summit/EXA (IBM x440),Unisys ES7000 IA32 series

Moorestown MID devices如果你有這樣的系統,或者你想要建構一個這樣的通用的分布式,選擇Y,否則選擇N

4.6 intel MID platform support

Medfield MID platform

4.7 RDC R-321x SoC

嵌入式相關,不選

4.8 Support non-standard 32-bit SMP architectures

非标準的32位SMP結構支援,不選

4.9 Eurobraille/Iris poweroff module

來自urobraille的iris機器不支援APM和ACPI來适時關閉自己,此子產品在核心中起到這一作用。這是用于urobraille的iris機子,不确定的話,不選。

4.10 Single-depth WCHAN output

跟 proc 相關的最好不要關,選Y

4.11 paravirt-ops debugging

4.12 Memtest

這一選項使核心增加一個“memtest”(核心測試)的參數,這将允許設定memtest。如果你不知道如何回答這個問題,選擇N

4.13 Processor family (Pentium-Pro)處理器系列,請按照你實際使用的CPU選擇這裡是處理器的類型。這裡的資訊主要目的是用來優化。為了讓核心能夠在所有X86構 架的CPU上運作(雖然不是 最佳速度),在這你可以選386。核心不會運作在比你選的構架還要老的機器上。比如,你選了Pentium構架來優化核心,它将不能在486構架上運作。 如果你不清楚,選386。( ) 386 ( ) 486( ) 586/K5/5x86/6x86/6x86MX ( ) Pentium-Classic( ) Pentium-MMX(系統預設選項) Pentium-Pro ( ) Pentium-II/Celeron(pre-Coppermine)( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon ( ) Pentium M( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon ( ) K6/K6-II/K6-III( ) Athlon/Duron/K7( ) Opteron/Athlon64/Hammer/K8( ) Crusoe( ) Efficeon( ) Winchip-C6( ) Winchip-2/Winchip-2A/Winchip-3( ) GeodeGX1( ) Geode GX/LX( ) CyrixIII/VIA-C3( ) VIA C3-2 (Nehemiah)( ) VIA C7 ( ) Core 2/newer Xeon( ) Intel Atom

4.14 Generic x86 support 這一選項針對x86系列的CPU使用更多的正常優化。如果你在上面一項選的是i386、i586之類的才選這個通用x86支援,如果你的CPU能夠在上 述"Processor family"中找到就别選除了對上面你選擇的X86 CPU進行優化,它還對更多類型X86 CPU的進行優化。這将會使核心在其他的X86 CPU上運作得更好。這個選項提供了對X86系列CPU最大的相容性,用來支援一些少見的x86構架的CPU。如果你的CPU能夠在上面的清單中找到,就 裡就不用選了。

4.15 PentiumPro memory ordering errata workaround

舊的PentiumPro多處理器系統有勘誤能力,可能會導緻在少數的情況下,違反x86的排序标準記憶體操作。啟用此選項将嘗試解決一些(但不是全部)此類問題,但将以spinlock和記憶體為代價。

4.16 HPET Timer Support(HPET時鐘支援)

允許核心使用HPET。HPET是替代8254晶片的新一代定時器,i686及以上級别的主機闆都支援,可以安全的選上。但是,HEPT隻會在支援它的平台和BIOS上運作。如果不支援,8254将會激活。選N,将繼續使用8254時鐘。

4.17 Enable DMI scanning

選擇Y除非你已經證明當進入DMI時不影響你的配置。PNP BIOS代碼需要這一項的支援。

4.18 (8) Maximum number of CPUs

支援的最大CPU數,每增加一個核心将增加8K體積

4.19 SMT (Hyperthreading) scheduler support

支援Intel的超線程(HT)技術超線程排程器在某些情況下将會對 Intel Pentium 4 HT系列有較好的支援。如果你不清楚,選N

4.20 Multi-core scheduler support

針對多核CPU進行排程政策優化多核排程機制支援,雙核的CPU要選。多核心排程在某些情況下将會對多核的CPU系列有較好的支援。如果你不清楚,選N

4.21 Fine granularity task level IRQ time accounting

如果不确定的話,選N,預設為不選。

4.22 Preemption Model (Voluntary Kernel Preemption (Desktop)) 核心搶占模式一些優先級很高的程式可以先讓一些低優先級的程式執行,即使這些程式是在核心态下執行。進而減少核心潛伏期,提高系統的響應。當然在一些特殊 的點的核心是不可搶先的,比如核心中的排程程式自身在執行時就是不可被搶先的。這個特性可以提高桌面系統、實時系統的性能。

No Forced Preemption (Server)

适合伺服器環境的禁止核心搶占 這是傳統的LINUX搶先式模型,針對于高吞吐量設計。它同樣在很多時候會提供很好的響應,但是也可能會有較長的延遲。如果你是建立伺服器或者用于科學運 算,選這項,或者你想要最大化核心的原始運算能力,而不理會排程上的延遲。

(預設選項) Voluntary Kernel Preemption (Desktop)

适合普通桌面環境的自願核心搶占 這個選項通過向核心添加更多的“清晰搶先點”來減少核心延遲。這些新的搶先點以降低吞吐量的代價,來降低核心的最大延遲,提供更快的應用程式響應。這通過 允許低優先級的程序自動搶先來響應事件,即使程序在核心中進行系統調用。這使得應用程式運作得更“流暢”,即使系統已經是高負荷運轉。如果你是為桌面系統 編譯核心,選這項。

Preemptible Kernel (Low-Latency Desktop)

适合運作實時程式的主動核心搶占 這個選項通過使所有核心代碼(非緻命部分)編譯為“可搶先”來降低核心延遲。這通過允許低優先級程序進行強制搶先來響應事件,即使這些程序正在進行系統調 用或者未達到正常的“搶先點”。這使得應用程式運作得更加“流暢”即使系統已 經是高負荷運轉。代價是吞吐量降低,核心運作開銷增大。選這項如果你是為桌面或者嵌入式系統編譯核心,需要非常低的延遲。 如果你要最快的響應,選第三項。我認為萬物是平衡的,低延遲意味着系統運作不穩定,因為過多來響應使用者的要求,是以我選第二個。

4.23 Reroute for broken boot IRQs

防止同時收到多個boot IRQ ( 中斷 ) 時,系統混亂

4.24 Machine Check / overheating reporting

讓CPU 檢測到系統故障時通知核心, 以便核心采取相應的措施( 如過熱關機等)

Intel MCE features

AMD MCE features

Support for old Pentium 5 / WinChip machine checks

4.25 Machine check injector support

讓CPU檢測到系統故障時通知核心,以便核心采取相應的措施(如過熱關機等)(不明白此項與上一項的差別,原來的配置中是做為子產品加入核心的)

?4.26 Enable VM86 support

這一選項用于支援在像DOSEMU一樣的程式在x86的處理器上運作16位的legacy代碼。也可能像XFree86這樣的軟體通過BIOS初始化聲霸卡的時候會用到。

4.27 Toshiba Laptop support

東芝筆記本子產品支援,不選

4.28 Dell laptop support

Dell筆記本子產品支援,不選

4.29 Enable X86 board specific fixups for reboot

修正某些舊x86主機闆的重起bug,這種主機闆基本絕種了,我認為可以不選擇這一項

4.30 dev/cpu/microcode - microcode support

是否支援Intel IA32架構的CPU。這個選項将讓你可以更新Intel IA32系列處理器的微代碼,顯然你需要到網上去下載下傳最新的代碼,LINUX不提供這些代碼。當然你還必須在檔案系統選項中選擇/dev file system support才能正常的使用它。如果你把它譯為子產品 ,它将是 microcode。 IA32主要用于高于4GB的記憶體。詳見下面的“高記憶體選項”。使用不随Linux核心發行的IA32微代碼,你必需有IA32微代碼二進制檔案,僅對 Intel的CPU有效。

Intel microcode patch loading support

AMD microcode patch loading support

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

是否打開CPU特殊功能寄存器的功能。這個選項桌面使用者一般用不到,它主要用在Intel的嵌入式CPU中的,這個寄存器的作用也依賴與不同的CPU類型 而有所不同,一般可以用來改變一些CPU原有實體結構的用途,但不同的CPU用途差别也很大。在多cpu系統中讓特權CPU通路x86的MSR寄存器。

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

是否打開記錄CPU相關資訊功能。這會在/dev/cpu中建立一系列的裝置檔案,用以讓過程去通路指定的CPU。能從/dev/cpu/x/cpuid獲得CPU的唯一辨別符(CPUID)。

4.33 High Memory Support (4GB)

LINUX能夠在X86系統中使用64GB的實體記憶體。但是,32位位址的X86處理器隻能支援到4GB大小的記憶體。這意味着,如果你有大于4GB的實體 記憶體,并非都能被核心“永久映射”。這些非永久映射記憶體就稱為“高階記憶體”。 如果你編譯的核心永遠都不會運作在高于1G記憶體的機器上,選OFF(預設選項,适合大多數人)。這将會産生一個“3GB/1GB”的記憶體空間劃分,3GB 虛拟記憶體被核心映射以便每個處理器能夠“看到”3GB的虛拟記憶體空間,這樣仍然能夠保持4GB的虛拟記憶體空間被核心使用,更多的實體記憶體能夠被永久映 射。 如果你有1GB-4GB之間的實體記憶體,選4GB選項。如果超過4GB,那麼選擇64GB。這将打開 Intel 的實體位址延伸模式(PAE)。PAE将在IA32處理器上執行3個層次的記憶體頁面。PAE是被LINUX完全支援的,現在的Intel處理器 (Pentium Pro 和更進階的)都能運作PAE模式。注意:如果你選64GB,那麼在不支援PAE的CPU上核心将無法啟動。 你機器上的記憶體能夠被自動探測到,或者你可以用類似于“mem=256M”的參數強制給核心指定記憶體大小。 4GB 選這項如果你用的是32位的處理器,記憶體在1-4GB之間。 64GB 選這項如果你用的是32位的處理器,記憶體大于4GB。

( ) off (X) 4GB ( ) 64GB

4.34 Memory model (Flat Memory)

一般選"Flat Memory",其他選項涉及記憶體熱插拔(X) Flat Memory (平坦記憶體模式)

這個選項允許你改變核心在内部管理記憶體的一些方式。大多數使用者在這隻會有一個選項:Flat Memory。這是普遍的和正确的選項。一些使用者的機器有更進階的特性,比如 NUMA 和記憶體熱拔插,那将會有不同的選項。Discontiguous Memory(非接觸式記憶體模式)是一個更成熟、更好的測試系統。但是對于記憶體熱拔插系統不太合适,會被“Sparse Memory”代替。如果你不清楚“Sparse Memory”和“Discontiguous Memory”的差別,選後者。如果不清楚,就選Flat Memory。

Sparse Memory(稀疏記憶體模式)

這對某些系統是唯一選項,包括記憶體熱拔插系統。這正常。對于其他系統,這将會被Discontiguous Memory選項代替。這個選項提供潛在的更好的特性,可以降低代碼複雜度,但是它是新的模式,需要更多的測試。如果不清楚,選擇 “Discontiguous Memory” 或 “Flat Memory”。

4.35 Allow for memory compaction

4.36 Page migration (選擇Y)

Enable KSM for page merging

(4096) Low address space to protect from user allocation

4.37 Enable recovery from hardware memory errors

選擇Y

4.38 Transparent Hugepage Support

Transparent Hugepage Support sysfs defaults

1.always 2.madvise(預設選項)

4.39 Cross Memory Support

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

4.41 Enable frontswap to cache swap pages if tmem is present(這三部分不太了解)

4.42 Allocate 3rd-level pagetables from highmem

在記憶體很多 ( 大于 4G) 的機器上将使用者空間的頁表放到高位記憶體區 , 以節約寶貴的低端記憶體 。

4.43 Check for low memory corruption

低位記憶體髒資料檢查,預設是每60 秒檢查一次。一般這種髒資料 是因某些Bios 處理不當引起的。

4.44 (64) Amount of low memory, in kilobytes, to reserve for the BIOS

4.45 Math emulation

數學協處理器仿真,486DX以上的cpu就不要選它了

4.46 MTRR (Memory Type Range Register) support(記憶體類型區域寄存器)

在 Intel P6 系列處理器(Pentium Pro, Pentium II 和更新的)上,MTRR将會用來規定和控制處理器通路某段記憶體區域的政策。如果你在PCI或者AGP總線上有VGA卡,這将非常有用。可以提升圖像的傳送 速度2.5倍以上。選Y,會生成檔案/proc/mtrr,它可以用來操縱 你的處理器的MTRR。典型地,X server 會用到。這段代碼有着通用的接口,其他CPU的寄存器同樣能夠使用該功能。Cyrix 6×86, 6×86MX和 M II處理器有ARR ,它和 MTRR有着類似的功能。AMD K6-2/ K6-3有兩個MTRR, Centaur C6有8個MCR允許複合寫入。所有這些處理器都支援這段代碼,你可以選Y如果你有以上處理器。選Y同樣可以修正SMP BIOS的問題,它僅為第一個CPU提供MTRR,而不為其他的提供。這會導緻各種各樣的問題,是以選Y是明智的。你可以安全地選Y,即使你的機器沒有 MTRR。這會給核心增加9KB。打開它可以提升PCI/AGP總線上的顯示卡2倍以上的速度,并且可以修正某些BIOS錯誤。

4.47 MTRR cleanup support

MTRR清理(2.6.27核心新增功能,不确定可以不選)

MTRR cleanup enable value (0-1)

MTRR cleanup spare reg num (0-7)

x86 PAT support

x86 architectural random number generator

4.48 EFI runtime service support(EFI啟動支援)

這裡允許核心在EFI平台上使用儲存于EFI固件中的系統設定啟動。這也允許核心在運作時使用EFI的相關服務。這個選項隻在有EFI固件的系統上有用, 它會使核心增加8KB。另外,你必須使用最新的ELILO 登入器才能使核心采用EFI的固件設定來啟動(GRUB和LILO完全不知道EFI是什麼東西)。即使你沒有EFI,卻選了這個選項,核心同樣可以啟動。 大家應該用的是GRUB,是以選上這個也沒什麼用。除非你的系統支援EFI(一種可代替傳統BIOS的技術)否則不選。

4.49 Enable seccomp to safely compute untrusted bytecode

隻有嵌入式系統可以不選

4.50 Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)

4.51 Timer frequency (1000 HZ)

核心時鐘頻率桌面1000伺服器100或250,允許設定時鐘頻率。 這是使用者定義的時鐘中斷頻率 100HZ-1000 HZ ,不過 100 HZ 對伺服器和NUMA系統更合适,它們不需要很快速的響應使用者的要求,因為時鐘中斷會導緻總線争用和緩沖打回。注意在SMP環境中,時鐘中斷由變量 NR_CPUS * Hz定義在每個CPU産生。 其實和前面的搶先式程序差不多,就是多少頻率來響應使用者要求。我選了250HZ的。要快點的可以選1000HZ的。但是還是那句話,一切是平衡的。機器過 快響應你,它自己的活就不知道做得好不好了。( ) 100 HZ100 HZ是傳統的對伺服器、SMP 和 NUMA的系統選項。這些系統有比較多的處理器,可以在中斷較集中的時候分擔中斷( ) 250 HZ250 HZ對伺服器是一個好的折衷的選項,它同樣在SMP 和 NUMA 系統上展現出良好的反應速度。( ) 300 HZ(X) 1000 HZ1000 HZ對于桌面和其他需要快速事件反應的系統是非常棒的。

4.52 kexec system call(kexec 系統調用)

kexec是一個用來關閉你目前核心,然後開啟另一個核心的系統調用。它和重新開機很像,但是它不通路系統固件。由于和重新開機很像,你可以啟動任何核心,不僅僅 是LINUX。 kexec這個名字是從 exec 系統調用來的。它隻是一個程序,可以确定硬體是否正确關閉,Linus本人都沒話說,估計是受害不淺。我們當然不能上當,選N!提供kexec系統調用, 可以不必重新開機而切換到另一個核心,如果需要就選擇,對大多數使用者來說并不需要.

4.53 kernel crash dumps

核心崩潰時,dump 運作時資訊。就算 crash 了,我也不會去調試核心的core dump

4.54 (0x1000000) Physical address where the kernel is loaded

4.55 Build a relocatable kernel

官方說明 (建立一個移動的核心,并增加10% 的核心尺寸,運作時會被丢棄),我認為沒實質性的作用

4.56 (0x100000) Alignment value to which kernel should be aligned

4.57 Support for hot-pluggable CPUs

對SMP休眠和熱插拔CPU提供支援

4.58 Compat VDSO support

如果Glibc版本大于等于2.3.3就不選,否則就選上,目前的版本基本上都大于2.3.3如果你運作的是最新的glibc(GNU C函數庫)版本( 2.3.3 或更新),選N,這樣可以移除高階的VDSO 映射,使用随機的 VDSO。

4.59 Built-in kernel command line (不選)

Power management and ACPI options

5.1、Power Management support

5.2、Power Management Debug Support

不想調試ACPI

這個你現在可以勾掉,不勾也沒事,稍侯會在kernel-hacking這一節勾掉調試,這裡也就沒

5.3、Suspend to RAM and standby

待機

5.4、Hibernation (aka 'suspend to disk')

休眠

5.5、Run-time PM core functionality

5.6、ACPI (Advanced Configuration and Power Interface) Support --->

見附1

5.7、SFI (Simple Firmware Interface) Support --->

5.8、APM (Advanced Power Management) BIOS support --->

選acpi就不用apm,一般你也隻用acpi&

5.9、CPU Frequency scaling --->

[*] CPU Frequency scaling

[ ] Enable CPUfreq debugging <=== 我不需要調試 CPUfreq

< > CPU frequency translation statistics

Default CPUFreq governor (performance) ---> <=== 預設用 performance 高性能的CPU 調頻方式

-*- 'performance' governor

< > 'powersave ' governor

<> 'userspace ' governor for userspace frequency scaling

<> 'ondemand ' cpufreq policy governor <=== " 周期性的考察CPU 負載并自動的動态調整cpu 頻率" ,我隻用 performance

<> 'conservative' cpufreq governor

*** CPUFreq processor drivers ***

< > Processor Clocking P-stat driver

<*> ACPI Processor P-States driver

< > AMD Mobile K6-2/K6-3 PowerNow !

< > AMD Mobile Athlon/Duron PowerNow !

< > AMD Opteron/Athlon64 PowerNow !

< > Cyrix MediaGX /NatSemi Geode Suspend Modulation

< > Intel Enhanced SpeedStep (deprecated)

< > Intel Speedstep on ICH-M chipsets (ioport interface)

< > Intel Pentium 4 clock modulation

< > Transmeta LongRun

< > VIA Cyrix III Longhaul

5.10、CPU idle PM support

5.11、Cpuidle Driver for Intel Processors

Bus options(PCI etc.)

6.1、PCI support(這個必須選)

6.2、PCI access mode (Any)

( ) BIOS

( ) MMConfig

( ) Direct

(X) Any

6.3、Read CNB20LE Host Bridge Windows

沒有公共規範的晶片組,此功能已知是不完整的。如果你不知道需不需要它,請選擇N

6.4、PCI Express support

如果你的主機闆支援PCI Express,請選擇Y

6.5、PCI Express Hotplug driver 選Y

6.6、Root Port Advanced Error Reporting support

硬體驅動會負責發送錯誤資訊

6.7、PCI Express ECRC settings control

如果懷疑,請選擇N

6.8、PCIe AER error injector support 同上,選 N

6.9、PCI Express ASPM control

這使得OS控制的PCI Express ASPM(活動狀态電源管理)和時鐘電源管理。 ASPM支援

狀态L0/L0s/L1,選Y

6.10、Debug PCI Express ASPM 選N

Default ASPM policy

(X)BIOS default

( )powersave

( )performance

6.11、Message Signaled Interrupts (MSI and MSI-X)

這使得裝置驅動能夠使用MIS(消息信号中斷)選Y

6.12、PCI Debugging

我認為這裡沒有必要選

6.13、Enable PCI resource re-allocation detection

當PCI資源重新配置設定時,如果你需要PCI核心來檢測的話,選擇Y,同時你可以用pci=realloc=on和pci=realloc=off來覆寫它,如果你不确定的話,選擇N

6.14、PCI Stub driver

選擇Y或者M,如果你想要:當一個裝置去注冊其他的客戶作業系統時需要保留該PCI裝置

6.15、 Interrupts on hypertransport devices

這将允許高速傳輸裝置使用中斷,如果不明确的話,選擇Y

6.16、 PCI IOV support

I / O虛拟化是由一些裝置支援的PCI功能,這使得他們能夠建立虛拟裝置共享其實體資源。如果不确定的話,選擇N

6.17、PCI PRI support

RIP就是PCI頁面請求接口,如果不确定的話,選擇N

6.18、PCI PASID support 不确定的話選擇N

6.19、PCI IO-APIC hotplug support 選Y

6.20、ISA support(以及之後的EISA)

檢視你的主機闆上是否有ISA插槽。ISA是總線系統的名稱,它是一個老的系統,現已被PCI取代。新的主機闆已經不支援它,如果你還有,選擇Y,否則,選擇N

6.21、NatSemi SCx200 support 選擇編譯為子產品

6.22、One Laptop Per Child support 不選

6.23、PCEngines ALIX System Support (LED setup)

6.24、Soekris Engineering net5501 System Support(LEDS, GPIO, etc)

6.25、Traverse Technologies GEOS System Support (LEDS, GPIO, etc)

6.26、RapidIO support

RapidIO主要應用于嵌入式系統内部互連。如果你選擇Y,核心中将包含支援RapidIO裝置連接配接的驅動和設施

6.27、PCCard (PCMCIA/CardBus) support

一般筆記本電腦會配備PCCard 接口( 無線網卡之類的) ,看你的硬體和使用場景吧。雖然我也是NB ,但我從來不用PCMCIA

16-bit PCMCIA support

Load CIS updates from userspace (EXPERIMENTAL)

32-bit CardBus support

*** PC-card bridges ***

CardBus yenta-compatible bridge support

Cirrus PD6729 compatible bridge support

i82092 compatible bridge support

6.28、 Support for PCI Hotplug

支援熱拔插PCI 裝置

Fake PCI Hotplug driver

Compaq PCI Hotplug driver

Save configuration into NVRAM on Compaq servers

IBM PCI Hotplug driver

ACPI PCI Hotplug driver

ACPI PCI Hotplug driver IBM extensions

CompactPCI Hotplug driver

SHPC PCI Hotplug driver

Executable file formats / Emulations

7.1、Kernel support for ELF binaries 選擇Y

7.2、Write ELF core dumps with partial segments 不選

7.3、Kernel support for a.out and ECOFF binaries 編譯成子產品

7.4、Kernel support for MISC binaries 編譯成子產品

Networking support

8.1、Networking options

<Y> Packet socket

<Y> Unix domain sockets

<M> Transformation user configuration interface

[ ] Transformation sub policy support (EXPERIMENTAL)

[ ] Transformation migrate database (EXPERIMENTAL)

[ ] Transformation statistics (EXPERIMENTAL)

<M> PF_KEY sockets

[ ] PF_KEY MIGRATE (EXPERIMENTAL)

[Y] TCP/IP networking

[Y] IP: multicasting

[Y] IP: advanced router

Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure) (FIB_HASH)│

[Y] IP: policy routing

[Y] IP: equal cost multipath

[Y] IP: verbose route monitoring

[ ] IP: kernel level autoconfiguration

<M> IP: tunneling

< M> IP: GRE demultiplexer

[Y] IP: multicast routing

[ ] IP: multicast policy routing

[Y] IP: PIM-SM version 1 support

[Y] IP: PIM-SM version 2 support

[ ] IP: ARP daemon support

[ Y] IP: TCP syncookie support

<M> IP: AH transformation

<M> IP: ESP transformation

<M> IP: IPComp transformation

<M> IP: IPsec transport mode

<M> IP: IPsec tunnel mode

<*> IP: IPsec BEET mode

{*} Large Receive Offload (ipv4/tcp)

<M> INET: socket monitoring interface

[*] TCP: advanced congestion control --->

進階擁塞控制, 如果沒有特殊需求( 比如無線網絡) 就别選了

[ ] TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)

< > The IPv6 protocol --->

暫時沒有要支援IPV6 的需求

[ ] NetLabel subsystem support

NetLabel 子系統, 為諸如CIPSO 與RIPSO 之類能夠 在分組資訊上添加标簽的協定提供支援,我用不到

-*- Security Marking

對網絡包進行安全标記, 類似于nfmark , 但主要是為安全目的而設計 , 安全特性,我暫時不考慮

[ ] Timestamping in PHY devices

[ ] Network packet filtering framework (Netfilter) --->

不使用防火牆,要用到時再編譯進去

<M> The DCCP Protocol (EXPERIMENTAL) --->

-M- The SCTP Protocol (EXPERIMENTAL) --->

<M> The RDS Protocol (EXPERIMENTAL)

< > RDS over Infiniband and iWARP

< > RDS over TCP

[ ] RDS debugging messages

<M> The TIPC Protocol (EXPERIMENTAL) --->

<M> Asynchronous Transfer Mode (ATM)

<M> Classical IP over ATM

[ ] Do NOT send ICMP if no neighbour

<M> LAN Emulation (LANE) support

< > Multi-Protocol Over ATM (MPOA) support

<M> RFC1483/2684 Bridged protocols

[ ] Per-VC IP filter kludge

< > Layer Two Tunneling Protocol (L2TP) --->

<M> 802.1d Ethernet Bridging

[*] IGMP/MLD snooping

[ ] Distributed Switch Architecture support --->

<M> 802.1Q VLAN Support

[ ] GVRP (GARP VLAN Registration Protocol) support

< > DECnet Support

< > ANSI/IEEE 802.2 LLC type 2 Support

< > The IPX protocol

< > Appletalk protocol support

< > CCITT X.25 Packet Layer (EXPERIMENTAL)

< > LAPB Data Link Driver (EXPERIMENTAL)

< > Acorn Econet/AUN protocols (EXPERIMENTAL)

< > WAN router

< > Phonet protocols family

< > IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support (EXPERI│

[ ] QoS and/or fair queueing --->

通過IPRoute 切換網絡裝置上的Qos 政策,我不打算使用IP 路由

[ ] Data Center Bridging support

-*- DNS Resolver support

< > B.A.T.M.A.N. Advanced Meshing Protocol

Network testing --->

8.2、[ ] Amateur Radio support --->

8.3、< > CAN bus subsystem support --->

8.4、< > IrDA (infrared) subsystem support --->

8.5、<M> Bluetooth subsystem support --->

8.6、< > RxRPC session sockets

8.7、- - Wireless --->

8.8、< > WiMAX Wireless Broadband support --->

8.9、< > RF switch subsystem support --->

8.10、< > Plan 9 Resource Sharing Support (9P2000) (Experimental) --->

8.11、< > CAIF support --->

8.12、< > Ceph core library (EXPERIMENTAL)

Device Drivers

9.1、Generic Driver Options --->

9.1.1、() path to uevent helper

9.1.2、[ ] Maintain a devtmpfs filesystem to mount at /dev

9.1.3、[*] Select only drivers that don't need compile-time external firmware

9.1.4、[*] Prevent firmware from being built

9.1.5、-*- Userspace firmware loading support

9.1.6、[*] Include in-kernel firmware blobs in kernel binary

9.1.7、() External firmware blobs to build into the kernel binary

9.1.8、[ ] Driver Core verbose debug messages

9.1.9、[ ] Managed device resources verbose debug messages

管理裝置資源的冗長調試資訊

9.2、<*> Connector - unified userspace <-> kernelspace linker --->

核心空間與使用者空間的信道

9.2.1、[*] Report process events to userspace

報告處理時間給使用者空間

9.3、< > Memory Technology Device (MTD) support --->

9.4、< > Parallel port support --->

9.5、-*- Plug and Play support --->

[ ] PNP debugging messages

9.6、[ ] Block devices --->

9.7、[ ] Misc devices --->

9.8、< > ATA/ATAPI/MFM/RLL support (DEPRECATED) --->

9.9、SCSI device support --->

< > RAID Transport Class

-*- SCSI device support

[] legacy /proc /scsi / support <=== SCSI 裝置

*** SCSI support type (disk, tape, CD-ROM) ***

<*> SCSI disk support // 用SATA ,此選項也必選

< > SCSI tape support

< > SCSI OnStream SC-x0 tape support

<> SCSI CDROM support <===

<> SCSI generic support <===

< > SCSI media changer support

[ ] Probe all LUNs on each SCSI device

[] Verbose SCSI error reporting (kernel size +=12K) <===

[ ] SCSI logging facility

[ ] Asynchronous SCSI scanning

SCSI Transports --->

<> Parallel SCSI (SPI) Transport Attributes <===

< > FiberChannel Transport Attributes

< > iSCSI Transport Attributes

< > SAS Domain Transport Attributes

< > SRP Transport Attributes

[ ] SCSI low-level drivers --->

< > SCSI Device Handlers --->

< > OSD-Initiator library

9.10、<M> Serial ATA and Parallel ATA drivers --->

[*] Verbose ATA error reporting

[*] ATA ACPI Support

[ ] SATA Port Multiplier support <===

<*> AHCI SATA support

< > Platform AHCI SATA support

< > Inito 162x SATA support

< > Silicon Image 3124/3132 SATA support

[*] ATA SFF support // 選擇自己硬體對應的驅動即可

< > ServerWorks Frodo / Apple K2 SATA support

<*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support // Intel ICH ,G 系列chipset driver

< > Marvell SATA support

< > NVIDIA SATA support

< > Pacific Digital ADMA support

< > Pacific Digital SATA QStor support

< > Promise SATA TX2/TX4 support

< > Silicon Image SATA support

< > SiS 964/965/966/180 SATA support

< > ULi Electronics SATA support

< > VIA SATA support

< > VITESSE VSC-7174 / INTEL 31244 SATA support

< > Initio 162x SATA support

< > ACPI firmware driver for PATA

< > ALi PATA support

< > AMD/NVidia PATA support <=== 我用的是SATA ,取消PATA 支援

< > ARTOP 6210/6260 PATA support

< > ATI PATA support

< > CMD64x PATA support

< > CS5510/5520 PATA support

< > CS5530 PATA support

< > CS5536 PATA support

< > EFAR SLC90E66 support

< > Generic ATA support

< > HPT 366/368 PATA support

< > HPT 343/363 PATA support

< > IT8211/2 PATA support

< > JMicron PATA support

< > Compaq Triflex PATA support

< > Marvell PATA support via legacy mode

<> Intel PATA MPIIX support <===

< > Intel PATA old PIIX support <===

< > NETCELL Revolution RAID support

< > Nat Semi NS87410 PATA support

< > Nat Semi NS87415 PATA support

< > Older Promise PATA controller support

< > PC Tech RZ1000 PATA support

< > SC1200 PATA support

< > SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support

< > Promise PATA 2027x support

< > CMD / Silicon Image 680 PATA support

< > SiS PATA support

< > VIA PATA support

< > Winbond SL82C105 PATA support

< > Intel SCH PATA support <===

9.11、[ ] Multiple devices driver support (RAID and LVM) --->

9.12、[ ] Fusion MPT device support --->

9.13、IEEE 1394 (FireWire) support --->

9.14、< > I2O device support --->

9.15、[ ] Macintosh device drivers ---> Mac 系統硬體裝置驅動

9.16、-*- Network device support --->

< > Dummy net driver support

< > Bonding driver support

< > EQL (serial line load balancing) support

< > Universal TUN/TAP device driver support

< > Virtual ethernet pair device

< > General Instruments Surfboard 1000

< > ARCnet support --->

-*- PHY Device support and infrastructure ---> <=== PHY ( 實體層控制晶片)

[ ] Ethernet (10 or 100Mbit) ---> <=== 如果是百 M 卡,請自行選擇

[*] Ethernet (1000 Mbit) ---> // 選擇自己對應的硬體

[ ] Ethernet (10000 Mbit) ---> <=== 如果你是萬M 卡,請自行選擇

<> Token Ring driver support ---> <=== IBM 的令牌環網,用以太網的忽略

[ ] Wireless LAN ---> <=== 不用無線網絡

*** Enable WiMAX (Networking options) to see the WiMAX drivers ***

USB Network Adapters --->

[ ] Wan interfaces support --->

<> FDDI driver support <=== 光纖卡驅動

< > PPP (point-to-point protocol) support

< > SLIP (serial line) support

[ ] Fibre Channel driver support

[ ] Network console logging support

[ ] VMware VMXNET3 ethernet driver

9.17、[ ] ISDN support --->

9.18、< > Telephony support --->

9.19、Input device support --->

-*- Generic input layer (needed for keyboard, mouse, ...)

-*- Support for memoryless force-feedback devices

<> Polled input device skeleton <=== 一種周期性輪詢硬體狀态的驅動,去掉後沒什麼副作用

*** Userland interfaces ***

-*- Mouse interface

[ ] Provide legacy /dev /psaux device

(1024) Horizontal screen resolution

(768) Vertical screen resolution

< > Joystick interface

<*> Event interface // 将輸入裝置的事件存儲到/dev /input/eventX 供應用程式讀取

< > Event debugging

*** Input Device Drivers ***

-*- Keyboards --->

[*] Mice --->

[] Joysticks/Gamepads ---> <=== 遊戲裝置

[] Tablets ---> <=== 平闆PC

[] Touchscreens ---> <=== 觸摸屏

[] Miscellaneous devices ---> <=== 雜七雜八的驅動,揚聲器,筆記本擴充按鍵等

Hardware I/O ports --->

9.20、Character devices --->

-*- Virtual terminal

[*] Support for binding and unbinding console drivers // 在某些系統上可以使用多個控制台驅動程式( 如framebuffer 控制台驅動程式), 該選項使得你可以選擇其中之一 ,一般隻用預設的虛拟終端

[] /dev /kmem virtual device support <=== 支援/dev /kmem 裝置,很少用

[] Non-standard serial port support

Serial drivers --->

< > 8250/16550 and compatible serial support <=== 相容一些老式的序列槽裝置,我一般不用

*** Non-8250 serial port support ***

< > Digi International NEO PCI Support

-*- Unix98 PTY support

[ ] Support multiple instances of devpts

[ ] Legacy (BSD) PTY support

< > IPMI top-level message handler --->

<*> Hardware Random Number Generator Core support

< > Timer IOMEM HW Random Number Generator support

<*> Intel HW Random Number Generator support

<> AMD HW Random Number Generator support

< > AMD Geode HW Random Number Generator support ,intel 主機闆

<> VIA HW Random Number Generator support

<> /dev /nvram support

< > Siemens R3964 line discipline

< > Applicom intelligent fieldbus card support

< > ACP Modem (Mwave ) support

< > NatSemi PC8736x GPIO Support

< > NatSemi Base GPIO Support

< > AMD CS5535/CS5536 GPIO (Geode Companion Device)

< > RAW driver (/dev /raw/rawN )

[*] HPET - High Precision Event Timer

[ ] Allow mmap of HPET

< > Hangcheck timer

9.21、{M} I2C support ---> 感覺硬體狀态,比如溫度,風扇轉速

9.22、[ ] SPI support --->

9.23、PPS support --->

9.24、[ ] GPIO Support --->

9.25、{*} Power supply class support --->

9.26、{*} Hardware Monitoring support --->

9.27、-*- Generic Thermal sysfs driver --->

9.28、[*] Watchdog Timer Support --->

9.29、Sonics Silicon Backplane --->

9.30、< > Multimedia support --->

9.31、[ ] Voltage and Current Regulator Support --->

9.32、< > Multimedia support --->

< > /dev /agpgart (AGP Support) ---> < --- virtualbox不支援虛拟獨立顯示卡

-*- VGA arbitration

(16) Maximium number of GPU

[ ] Latop Hybird Graphics – GPU switch support

<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->

<> Lowlevel video output switch controls

<> Support for frame buffer devices --->

[ ] Backlight & LCD device support ---> < --- 支援背光設定,比如pda等

Display device support --->

Console display driver support --->

[ ] Enable Scrollback Buffer in System RAM

9.33、< > Sound card support ---> 聲霸卡

9.34、[ ] HID Devices ---> 人力工程學裝置

9.35、[] USB support ---> 跑虛拟機的,關了 。一般要開

9.36、< > MMC/SD/SDIO card support --->

9.37、< > Sony MemoryStick card support (EXPERIMENTAL) --->

9.38、[] LED Support --->

9.39、[ ] Accessibility support --->

9.40、< > InfiniBand support --->

9.41、[*] EDAC (Error Detection And Correction) reporting ---> // 硬體故障repoting

9.42、<*> Real Time Clock --->

9.43、[*] DMA Engine support --->

9.44、[ ] Auxiliary Display support --->

9.45、< > Userspace I/O drivers --->

9.46、TI VLYNQ --->

9.47、[ ] Staging drivers --->

9.48、[] X86 Platform Specific Device Drivers ---> <=== 一些筆記本的驅動

Firmware Drivers

< > BIOS Enhanced Disk Drive calls determine boot disk

< > BIOS update support for DELL systems via sysfs

< > Dell Systems Management Base Driver

[*] Export DMI identification via sysfs to userspace // 将BIOS 裡的DMI 區資訊導出到使用者空間,部分系統管理工具可能會用到

[ ] iSCSI Boot Firmware Table Attributes

File systems

< > Second extended fs support

<> Ext3 journalling file system support

<*> The Extended 4 (ext4) filesystem

[ ] Enable ext4dev compatibility

[*] Ext4 extended attributes

[*] Ext4 POSIX Access Control Lists

[] Ext4 Security Labels <=== 取消 SELinux 支援

[ ] JBD (ext3) debugging support

[ ] JBD2 (ext4) debugging support

< > Reiserfs support

< > JFS filesystem support

< > XFS filesystem support

< > OCFS2 file system support

[*] Dnotify support

[*] Inotify support for userspace

[] Quota support <=== 磁盤配額支援 , 限制某個使用者或者某組使用者的磁盤占用空間,暫時沒這個需求,你可以把它編譯成子產品

< > Kernel automounter support

<*> Kernel automounter version 4 support (also supports v3)

< > FUSE (Filesystem in Userspace ) support

Caches --->

CD-ROM/DVD Filesystems --->

<> ISO 9660 CDROM file system support <=== 在虛拟機内不用CDROM

< > UDF file system support

DOS/FAT/NT Filesystems --->

< > MSDOS fs support <=== 微軟fs裝置

< > VFAT (Windows-95) fs support

< > NTFS file system support

Pseudo filesystems --->

[] Miscellaneous filesystems --->

[*] Network File Systems --->

Partition Types --->

[ ] Advanced partition selection

-*- Native language support ---> // 選上Chinese

Kernel hacking

[] Show timing information on printks <=== 在printk 的輸出中包含時間資訊, 可以用來分析核心啟動過程各步驟所用時間 , 我不需要debug 核心

[ ] Enable __deprecated logic

[*] Enable __must_check logic

(2048) Warn for stack frames larger than (needs gcc 4.4)

[] Magic SysRq key 官方不推薦選擇

[ ] Enable unused/obsolete exported symbols

[ ] Debug Filesystem

[ ] Run 'make headers_check ' when building vmlinux

[ ] Kernel debugging <=== 核心調試,關

[ ] Enable SLUB performance statistics

[] Compile the kernel with frame pointers <=== 還是跟核心開發有關

[ ] Delay each boot printk message by N milliseconds

< > torture tests for RCU

[ ] Check for stalled CPUs delaying RCU grace periods

< > Self test for the backtrace code

[ ] Force extended block device numbers and spread them

[ ] Fault-injection framework

[ ] Latency measuring infrastructure

[*] Sysctl checks

[] Tracers --->

[] Remote debugging over FireWire early on boot <=== 啟動過程中,允許遠端調試核心

[ ] Enable dynamic printk ( ) support

[ ] Enable debugging of DMA-API usage

[ ] Sample kernel code --->

[ ] Filter access to /dev /mem

[] Enable verbose x86 bootup info messages <=== 在核心鏡像解壓縮階段輸出啟動資訊,關閉後相當于無聲啟動(Slient Bootup )

-*- Early printk

[] Early printk via EHCI debug port <=== 允許printk 通過EHCI 調試端口輸出核心日志,調試的一律關

[ ] Use 4Kb for kernel stacks instead of 8Kb

[ ] Enable IOMMU stress-test mode

IO delay type (port 0x80 based port-IO delay [recommended]) --->

[*] Allow gcc to uninline functions marked 'inline'

Security options

安全特性,我選擇全關,當然,這些選項不會影響你的日常開發,辦公

[] Enable access key retention support <=== 關閉

[] Enable different security models <=== 關閉

[ ] Enable the securityfs filesystem

[] File POSIX Capabilities <=== 關閉

[ ] Integrity Measurement Architecture( IMA)

< > Cryptographic API ---> // 加密API ,這部分選項會根據此前的優化自動調整,預設即可

[] Virtualization

我的系統已經運作在虛拟機中,不需要再支援虛拟化

Library routines

庫子程式,這部分選項會根據此前的優化自動調整,預設即可

1、 make clean

這條指令是在正式編譯你的核心之前先把環境給清理幹淨。有時你也可以用 make realclean或 make mrproper 。

2 、make dep

這條指令是編譯相關依賴檔案。

3 、make zImage

這條指令就是最終的編譯指令。有時你可以直接用 make(2.6.X 版本上用)或 make bzImage(給 PC 機編譯大核心時用)

繼續閱讀