1. 程式人生 > >LINUX核心編譯步驟詳細介紹

LINUX核心編譯步驟詳細介紹

linux 2.6.15.6核心配置(unfinished)

注意: 不同的核心版本配置選項(或組織)可能不同, 但原理都是一樣的!
另外, 關於compile in, compile as module的選擇: 根檔案系統, 根檔案系統所處的裝置, PS/2滑鼠驅動不能編譯為模組!

Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers  (y)
; 選擇尚未完全測試的程式碼(alpha-test態),事實上它是安全的,建議選擇.
[*] Select only drivers expected to compile cleanly  (y)
; 隱藏可能存在問題的驅動,建議選擇,如果沒找到對應裝置的驅動,將它取消試試.

General setup
--->
()  Local version - append to kernel release (enter,輸入字元竄)
; 從2.6.8的版本起,可以在核心版本號後面添加個性化字元竄.
[ ] Automatically append version information to the version string (NEW)  (n)
; 這個沒看懂,先不選上.
[*] Support for paging of anonymous memory (swap)  (y)
; 如果使用了swap分割槽提供虛擬記憶體,一定要選上它.
[*] System V IPC (y)
; System V 的程序間通訊, 選上.
[*] POSIX Message Queues (y)
; POSIX訊息佇列, 選上.
[*] BSD Process Accounting (y)
; 如果選上,user process可以通過系統呼叫使核心在它退出時將相關資訊寫入某個檔案(如程序建立時間,擁有者,命令,記憶體使用量...)
   選上它,可以在應用程式中利用這些資訊.
[*] BSD Process Accounting version 3 file format (y)
; 將前面所述的程序資訊記錄到v3格式的檔案中, 選上它
[*] Sysctl support (y)
; 提供動態更改核心引數與變數的介面, 而不需要重新啟動系統. 開啟這個選項將會增加核心的體積至少8KB。
     如果你的核心僅用製作安裝與恢復系統系統盤那麼可以不選, 以減少對記憶體的佔用.
[ ] Auditing support  (n)
; 允許其他核心子系統的核心審查,不知道什麼鳥意思,不選上.
[*] Kernel Userspace Events  (y)
; 開啟核心-使用者空間事件層,它是比socket簡單的kernel-user通訊機制. 這樣應用程式就可以通過監聽不用輪詢系統裝置或檔案
[ ] Kernel .config support  (n)
; 將.config檔案編譯到核心中, 以顯示執行中的核心使用哪個選項.不要選擇.
()  Initramfs source file(s)  (n)
; 好像是RAM FS初始化的吧,不知道什麼鳥東西,不選!
[ ] Optimize for size (Look out for broken compilers!)  (n)
; 用gcc編譯核心時,優化選項是 -O2,選擇它將改為-Os, 生成比較小的核心.(老版本的gcc可能因此產生錯誤程式碼)
[ ] Configure standard kernel features (for small systems)  ---> (n)
; 針對小系統 (embedded)裁減核心, 桌面系統不用選擇.

Loadable module support 
--->     
[*] Enable loadable module support   (y)
; 使核心支援模組,當然要選擇! (使用modprobe, lsmod, modinfo, insmod, rmmod工具...)
[*] Module unloading (y)
; 解除安裝模組,選擇!(有些模組一旦載入就不能解除安裝, 不管是否選擇了這個選項)
[*] Forced module unloading  (y)
; 強制解除安裝核心, 即便核心認為該行為不安全的時候.( rmmod -f 強制解除安裝,不等停止使用模組)
[ ]  Module versioning support (EXPERIMENTAL)  (n)
; 一般地,我們編譯的模組是用於當前執行的核心, 選擇該選項可以針對其他的核心編譯模組. 先不選擇.
[ ] Source checksum for all modules (n)  
; 檢視模組中是哪些程式碼的,不選
[*]  Automatic kernel module loading   (y)
; 核心在任務中要使用一些被編譯為模組的驅動或特性時, 先使用modprobe命令來載入它
  該選項自動呼叫modprobe載入需要的模組.當然選擇!

Block layer
  --->     
[ ] Support for Large Block Devices (n)
; 如果有超過2T的塊裝置,則選擇它以支援大容量塊裝置
[ ] IO Schedulers  --->
<*> Anticipatory I/O scheduler   (y)
<*> Deadline I/O scheduler        (y)
<*> CFQ I/O scheduler                (y)
 Default I/O scheduler (Anticipatory)  --->   
 (X) Anticipatory
上述3中排程方式都選擇,預設的排程方式選為anticipatory (按空格選擇)

Processor type and features  --->  
Subarchitecture Type (PC-compatible)  --->  
; 用的PC,選PC-compatible
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon)  --->   
; 選擇CPU型別, 可通過 cat /proc/cpuinfo檢視
[ ] Generic x86 support   (n)
; 如果沒有列出你所使用的CPU型別,而你的CPU又是X86的,選上它,否則不選.它增加了通用性卻降低了特定CPU的效能.
[*] HPET Timer Support   (y)
; 這也是一個新的特性,HPET是intel制定的新的用以代替傳統的8254(PIT)中斷定時器與RTC的定時器,全稱叫作高精度事件定時器。如果你有一臺較新的機器就選它吧,一般它是一個安全的選項, 即使你的硬體不支援HPET也不會造成問題,因為它會自動用8254替換。
[ ] Symmetric multi-processing support  (n)
; 只有一個CPU,SMP不用選擇
Preemption Model (Preemptible Kernel (Low-Latency Desktop))  --->  
(X) Preemptible Kernel (Low-Latency Desktop)  
; 2.6核心的特點:搶佔式核心.選擇可搶佔式核心以提升桌面系統的互動效能或實時性.
[*] Preempt The Big Kernel Lock (NEW)  (y)
; 搶佔大核心鎖?不清楚,不過選擇了可加強桌面系統效能.
[*] Local APIC support on uniprocessors  (y)
; 單CPU的本地APIC (advanced programmable interrupt controller)支援,它內嵌在cpu中支援cpu自身產生的中斷.建議選擇,就算cpu不支援APIC,也沒有影響.
[*] IO-APIC support on uniprocessors  (y)
; 同上,支援I/O高階可程式設計中斷控制器.
[*] Machine Check Exception  (y)
; 如果系統出現問題, 核心採取一定的措施,比如列印警告資訊或掛起系統.
 cat /proc/cpuinfo | grep mce 若CPU flags中有mce,
 這個功能是需要硬體支援的。你可以檢視/proc/cpuinfo看看是否有mce標誌,則說明CPU支援該選項.
 啟動時加nomce引數可關閉它.
< > Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4  (n)
; 啟動一個5秒的定時器,跟蹤非致命錯誤並更正,記錄它.如果不是特定的CPU,不要選擇.(我的本本是Pentium M,不選擇)
[ ] check for P4 thermal throttling interrupt.
; P4的CPU溫度過高時會在螢幕上顯示出相關的資訊,只適用於Pentium 4
< > Toshiba Laptop support  (n)
< > Dell laptop support     (n)
; 上述兩項都針對東芝和戴爾IInspire 8000筆記本,不選.
< > Enable X86 board specific fixups for reboot (n)
; 修正主機板/晶片組以正確重啟或工作,目前只針對 GX1, CS5530A, TROM2.1
  lspci -v | grep CX1 ...若系統不支援,則不用選擇. (?我說錯了好像)
< > /dev/cpu/microcode - Intel IA32 CPU microcode support  (n)
; 更新intell IA32 cpu的微碼(核心是不自帶的,需要另外下載)
< > /dev/cpu/*/msr - Model-specific register support   (n)
; 讓privileged程序訪問X86的MSRs(model-specific registers),一般用於intel的Embedded cpu.
< > /dev/cpu/*/cpuid - CPU information support  (n)
; 在/dev/cpu中建立一系列的裝置檔案, 以使過程訪問指定的CPU.

Firmware Drivers  --->    
< > BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)  (n)
; 可以開啟真實模式下BIOS中的增強磁碟裝置服務,以決定從哪個磁碟上啟動.一般的BIOS不支援.
< > BIOS update support for DELL systems via sysfs  (n)
; 戴爾的BIOS更新系統,需要一些應用軟體的支援.
< > Dell Systems Management Base Driver   (n)
; 為上述的DELL BIOS更新系統提供sysfs藉口,先不設,以後再研究.我的本本是Dell D600.

High Memory Support (off)  --->
; 如果有大於4G的記憶體,可選擇.我記憶體只有512M.  
Memory model (Flat Memory) --->  
; 選擇記憶體模式, flat memory記憶被盜,查查資料了再說,先選上.
[ ] Math emulation   (n)
; 在你的CPU上如果沒有數學協處理器的話,開啟這個選項可以讓核心模擬一個.以提升浮點計算能力,不過慢的可以.如果你使用的不是古董CPU的話(486SX以前的), 這一項你永遠都不需要。
[*] MTRR (Memory Type Range Register) support   (y)
; 在Intel p6家族的處理器中(Ppro、 PII和更新的)有一個記憶體類型範圍暫存器,可用來控制處理器訪問的記憶體範圍. 開啟它一般可以提升顯示卡的顯示效能(2.5倍).
[ ] Boot from EFI support (EXPERIMENTAL)   (n)
;  EFI規範基本上是一個讓PC可以在開機前(preboot)進行掃毒及診斷的執行環境.英特爾已經利用EFI建立一個可以取代BIOS的開機前軟體框架. 這個框架名為“EFI平臺創新開發框架”,其工程程式碼為Tiano,這個框架讓電腦廠商可以撰寫開機前軟體的模組,這種模組很像Windows的驅動程式。它需要ELILO bootloader, grub或lilo不支援EFI.
[ ] Use register arguments (EXPERIMENTAL)   (n)
; 使用暫存器引數,(編寫系統呼叫的時候可能有用,參考<Linux Kernel Development>,v2 5.3 它使用不同的ABI,將函式的前三個引數通過暫存器傳遞.(gcc-3.0或更新的才支援).先不設定,學習編寫系統呼叫的時候再看.
[*] Enable seccomp to safely compute untrusted bytecode  (y)  
; 使用seccomp將計算程式孤立到它們各自的地址空間.如果不是用於嵌入式系統, 還是在這裡選yes
Timer frequency (250 HZ)  --->  
; 時鐘頻率,選為250赫茲.
(0x100000) Physical address where the kernel is loaded
; 設定核心載入的實體地址.預設為0x100000.不要更改!
[ ] kexec system call (EXPERIMENTAL)  (n)
; kexec能夠關閉當前核心,執行另外一個核心.

Power management options (ACPI, APM) --->    
[*] Legacy Power Management API  (y)
; 為pm_regiter()提供支援.
[ ] Power Management Debug Support  (n)
; 支援電源管理的除錯
[*] Software Suspend (EXPERIMENTAL)  (y)
; 支援系統suspend(休眠),開啟這項功能後, 可用swsusp或者shutdown -z <time>來掛起系統. 這樣系統會將你當前正在進行的工作(也就是當前記憶體中的內容)作成一個鏡象儲存到你的交換分割槽中, 在你下一次啟動時使用啟動引數"resume=/dev/交換分割槽".核心就會將上一次的工作核心從鏡象檔案中恢復到記憶體,這可以大大提高系統的啟動速度. 當你不想恢復上次的工作時向核心傳遞引數“noresume".不過系統啟動後你的交換分割槽將不可以使用, 你可以使用mkswap命令來重新格式化你的交換分割槽. 這個功能不需要高階電源管理的支援.
( ) Default resume partition
與上述suspend選項配合,來指定儲存鏡象的分割槽.如果上面那個有開啟就要選擇用來做suspend to disk用的partition

ACPI (Advanced Configuration and Power Interface) Support  --->
[*] ACPI Support  (y)
; 使用ACPI來管理電源.想讓它起作用,還要在系統中安裝acpid守護程式。
[*] Sleep States  (y)
; 選擇這個選項可以使你的系統具有掛起的功能,也就是說你可以暫時中斷你的工作,讓你的系統處與一種低電能消耗的狀態(sleep state),你此時的系統狀態會儲存在記憶體或者磁碟上(取決於掛起的深度),當你需要時再恢復到正常的工作狀態。但由於各種系統之間的差別,目前這項功能並不完善。只有很少的裝置可以完美的支援這個特性,所以不建議一般使用者使用.
<M> AC Adapter  (m)
; 顯示本本是使用AC交流電還是DC直流電.編譯成模組!
<M>   Battery  (m)
; 同上,讀取/proc/acpi/battery目錄中的電池資訊,反饋給使用者.
<M>   Button   (m)
; 按下電源鍵時,守護程序讀取/proc/acpi/event,並執行使用者在這些事件上定義的動作,比如關機.
< >   Video    (n)
; 對主機板整合顯示卡執行一些操作,比如定義video POST device, 獲得EDID資訊, 設定視訊輸出.獨立顯示卡就不用設了.
< >   Generic Hotkey (EXPERIMENTAL)   (n)
; 通用熱鍵驅動,不需要裝.
<M>   Fan   (m)
; 對ACPI風扇裝置的控制支援,通過使用者程式控制風扇(開啟,關閉,讀取執行狀態等).
<M>   Processor  (m)  
; 處理器在空閒時節省電能.
<M>   Thermal Zone   (m)
; CPU溫度過高時,ACPI調整工作狀態以保護CPU,強烈推薦!(大部分的本本都支援)
< >   ASUS/Medion Laptop Extras    (n)
< >   IBM ThinkPad Laptop Extras   (n)
< >   Toshiba Laptop Extras        (n)
上述是對華碩,IBM,東芝筆記本的擴充套件支援.為什麼木有DELL的呢!
(0)   Disable ACPI for systems before Jan 1st this year   (預設為0)
; 什麼鳥東西,ACPI也存在千年蟲問題?按預設的
[ ]   Debug Statements  (n)
; ACPI驅動的除錯語句,會增加50K的核心大小,不要.
[ ]   Power Management Timer Support (n)
; 支援電源管理定時器.如果在核心log中看到"Losing too many ticks!",或使用筆記本卻不支援HPET時選擇.
< >   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)  (n)
; 我靠,這強!支援CPU,記憶體的熱插拔.不過我怕觸電,不選.

APM (Advanced Power Management) BIOS Support  --->
<M> APM (Advanced Power Management) BIOS support  (m)
; 高階電源管理BIOS支援,一般是筆記本用(或使用電池的系統,不知道用UPS的算不算,應該不算).桌上型電腦不用選擇.
[ ]  Ignore USER SUSPEND   (n)
; 不選擇,否則會忽略使用者的掛機請求.如果你不幸用了NEC的筆記本,必須選Y,因為有BUG.(抵制日貨!)
[ ]  Enable PM at boot time  (n)
; 開機時允許PM,一般不用選擇(可能在啟動時宕機)
[ ]  Make CPU Idle calls when idle (n)
; CPU空閒時呼叫CPU idle程序.還是不選吧...可能在啟動或空閒時宕機.
[ ]  Enable console blanking using APM  (n)
; 當Linux虛擬控制檯關閉顯示(黑屏)時,關閉LCD背光.都黑屏了,還關背光搞莫事撒.
[ ]  RTC stores time in GMT   (n)
; RTC: Real Time Clock. GMT: Greenwich Mean Time
  推薦將GMT時間儲存到RTC中以,但如果裝了別的不能夠識別GMT的系統,不要選擇.(比如windows)
[ ] Allow interrupts during APM BIOS calls    (n)
; 一般是不選擇的,但如果掛起系統時出現了宕機,可將它選擇試試. 呼叫BIOS是開中斷是不良少年的行為!
[ ]   Use real mode APM BIOS call to power off  (n)
; 針對某些帶bug的BIOS的補救措施:如果系統不能自己斷電,選上它.

CPU Frequency scaling  --->
[*] CPU Frequency scaling
; 動態調節CPU頻率以節電.有人提到頻率降低,影響了處理速度,導致deadline問題.留意一下.
[ ] Enable CPUfreq debugging  
; 我是個懶人,所有除錯的都不開啟
<M>   CPU frequency translation statistics
; 通過sysfs檔案系統輸出CPU頻率資訊.
[*]     CPU frequency translation statistics details
; 顯示上述的詳細的CPU頻率資訊.
Default CPUFreq governor (userspace)  --->
; 預設選擇動態調整CPU頻率.
<M>   'performance' governor
; performance將CPU頻率設定在支援的最高頻率,而不動態調節.
<M>   'powersave' governor
; 將CPU頻率設定為最低
<M>   'ondemand' cpufreq policy governor  
; 快速動態調整CPU頻率, Pentuim M的CPU可以使用
<M>   'conservative' cpufreq governor
; 與ondemand不同,平滑地調整CPU頻率,適合於用電池工作時.

 ---   CPUFreq processor drivers
< >   ACPI Processor P-States driver   
什麼鳥玩意,不選

< >   AMD Mobile K6-2/K6-3 PowerNow!
< >   AMD Mobile Athlon/Duron PowerNow!
< >   AMD Opteron/Athlon64 PowerNow!
AMD的移動處理器省電技術
< >   Cyrix MediaGX/NatSemi Geode Suspend Modulation

<M>   Intel Enhanced SpeedStep  
; intel的SpeedStep技術.可以讓處理器在2種工作模式之間隨意地切換,即通電狀態時的最高效能模式(Maximum Performance Mode)和電池狀態時的電池優化模式Battery Optimized Mode
[*]     Use ACPI tables to decode valid frequency/voltage pairs  
[ ]     Built-in tables for Banias CPUs
; Banias CPU是什麼鳥東西?如果選擇了Speedstep,就選上Use ACPI tables.

< >   Intel Speedstep on ICH-M chipsets (ioport interface)
< >   Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
< >   Intel Pentium 4 clock modulation
< >   nVidia nForce2 FSB changing
; 上述選項根據具體CPU,顯示卡型別選擇.

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
; I/O匯流排選項,由Interl在1992年初制訂. 現在一般的匯流排型別都是PCI. 使用PCI匯流排的系統於1993年中期出現,從此成為主流.
--- PCI support
PCI access mode (Any)  --->
; PCI訪問模式,選Any
[*] PCI Express support
; 自動開啟PCI快速匯流排支援,選上.
< > PCI Express Hotplug driver
PCI快速熱拔插驅動,不選擇.
[ ] Use polling mechanism for hot-plug events (for testing purpose)
; 對熱拔插時間使用輪詢,用於早期的實驗系統,不選
[ ] Message Signaled Interrupts (MSI and MSI-X)
; 使用MSI(Message Signaled Interrupts),當中斷產生時,使用inbound memory寫PCI匯流排,而不斷言裝置的IRQ引腳.不選.
[ ] Legacy /proc/pci interface
; 使用/proc/pci提供系統中的PCI裝置資訊.實際上,使用lspci(8)能提供相同甚至更多的資訊.發行版都裝有lspci包.可不選.
[ ] PCI Debugging
; PCI除錯,不選.

[*] ISA support
; ISA匯流排支援, 執行lspci | grep ISA, 若有, 則選上.
[ ] MCA support
; MCA(microChannel Archtecture)匯流排是IBM為解決快速微處理器和相對慢的ISA匯流排之間的差異而開發的一種匯流排結構,並被用於IBM的PS/2系統, 目前MCA匯流排主要用於IBM PS/2 計算機和一些筆記本中. 不選.
< > NatSemi SCx200 support
; 支援National Semiconductor的SCx200處理器的,不選.

PCCARD (PCMCIA/CardBus) support  --->
; 這些選項都是本本用的,桌上型電腦不選
<M> PCCard (PCMCIA/CardBus) support
; 筆記本選為module
[ ]  Enable PCCARD debugging
; PCMCIA的除錯,不選.
<M>   16-bit PCMCIA support
; 16位PCMCIA支援,還是編譯為模組吧, lspci -v | grep 16發現還是有16位的裝置,不知道什麼意思,還是謹慎為好.
[*]  Load CIS updates from userspace (EXPERIMENTAL)
; 有的PCMCIA卡需要這個功能,選上.
[*]  PCMCIA control ioctl (obsolete)
; 提供PCMCIA的ioctl介面.不懂什麼意思,幫助文件建議選上.
[*] 32-bit CardBus support
; 早先的PCMCIA卡是16位的,這裡允許使用32位的CardBus, 新的PC-card實際上是CarBus卡,選上.

---   PC-card bridges
<M>  CardBus yenta-compatible bridge support
<M>   Cirrus PD6729 compatible bridge support
<M>   i82092 compatible bridge support
; 對於什麼鳥橋的支援?不懂,選為模組.

PCI Hotplug Support  --->
; 支援PCI的熱拔插,怕觸電,都不選


Executable file formats  --->
[*] Kernel support for ELF binaries
; 支援ELF可執行檔案格式,一定要選上!
<M> Kernel support for a.out and ECOFF binaries
; .out的執行檔案是比較古老的可執行碼,用在比較早期的UNIX系統上. Linux最初也是使用這種碼來執行程式,一直到ELF格式的可執行碼出來後,有愈來俞多的程式碼隨著ELF格式的優點而變成了ELF的可執碼.將來勢必完全取代a.out格式的可執行碼.目前還有一些.out格式的程式碼.選為模組.
<M> Kernel support for MISC binaries
; 支援別的種類的binary執行檔(如:Java、Python ... etc).編譯為模組.


Networking  --->
--- Networking support
 Networking options  --->
<M> Packet socket
; 類似於tcpdump的應用程式會繞過IP層直接訪問網路裝置(原始socket),選為模組.
[*] Packet socket: mmapped IO
; mmapped IO讓傳輸加速,要開啟MapleBBS內的MMIO也需要它,選上.
<M> Unix domain sockets
; syslogd、x-windows等都是用socket來傳輸,即便電腦沒網路,選為模組.
<M> IPsec user configuration interface
; 支援IPsec使用者設定介面,選為模組.
<M> PF_KEY sockets
; 於IPsec有關,編譯為模組.
[*] TCP/IP networking
; 支援TCP/IP,當然要選上.
[ ] IP: multicasting
; 支援IP多播, 一般用於MBONE(因特網上的音訊、視訊多播).
[ ] IP: advanced router
; 用於路由器的選項,不選.
[ ] IP: kernel level autoconfiguration
; 核心啟動時自動配置IP地址,之用於無盤系統,不選.
< > IP: tunneling
; IP隧道,在多個網路中移動不需改變IP地址,不用選.
< >  IP: GRE tunnels over IP
; GRE(Generic Routing Encapulation)隧道技術,允許在現有的IPv4架構上封包IPv6.不選吧.
[ ] IP: multicast routing
; 不做伺服器,不用選擇.
[ ] IP: ARP daemon support (EXPERIMENTAL)
; 將ARP快取在核心中,不選.
[*] IP: TCP syncookie support (disabled per default)
; 防止SYN flooding攻擊.如果選擇,SYN cookies預設不會開啟.
<M>  IP: AH transformation
<M>  IP: ESP transformation
<M>  IP: IPComp transformation
; 以上3個都是IPsec需要的,編為模組.
<M>  IP: tunnel transformation
; 支援通用IP隧道傳輸.編為模組.
<*>  INET: socket monitoring interface
; 支援socket監聽介面,選上.
[ ]  TCP: advanced congestion control
; TCP高階擁塞控制,可不選擇.

IP: Virtual Server Configuration  --->
Virtual Server Configuration中的選項設定都用M,按預設負載均衡叢集是在應用伺服器高負載的情況下,由多臺節點提供可伸縮的,高負載的伺服器組以保證對外提供良好的服務響應;而LVS就是實現這一功能的技術,它通過使核心支援ipvs來實現LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能.

< > IP virtual server support (EXPERIMENTAL)
; 叢集或多臺伺服器用的,不選擇,以後好好研究...虛擬伺服器...

<M> The IPv6 protocol
; 支援IPv6,編譯為模組. IPv6有空再看,現按照幫助說明的來,該選的選,該編為模組的編為模組.

...
後面的再慢慢看吧...按menuconfig中的幫助文件來,該不選的絕不選.

[ ]  Amateur Radio support  --->
; 無線電裝置支援,不選.
< >   IrDA (infrared) subsystem support  --->
; 紅外裝置支援,不選.
< >   Bluetooth subsystem support  --->
; 藍芽裝置支援,不選.
<M>   Generic IEEE 802.11 Networking Stack
; 802.11網路棧支援,編譯為模組.


Device Drivers  --->
Generic Driver Options  --->
[*] Select only drivers that don't need compile-time external firmware
; 只選擇不需要compile-time 外部firmware,沒搞懂,選上.
[*] Prevent firmware from being built
; 禁止編譯firmware, firmware一般與硬體一起繫結,只在更新時才需要重新編譯,選上.
<M> Hotplug firmware loading support
; 熱插拔韌體載入,沒懂,編為模組.
[ ] Driver Core verbose debug messages
; 不選.

Connector - unified userspace <-> kernelspace linker  --->
 < > Connector - unified userspace <-> kernelspace linker
; 支援基於netlink socket協議的使用者空間與核心空間的連線.

Memory Technology Devices (MTD)  --->
< > Memory Technology Device (MTD) support
; 支援MTD裝置(flash, ram等晶片).一般用於嵌入式系統,不選

Parallel port support  --->
< > Parallel port support
; 並口支援.沒有印表機,先不選.(選前兩項,以防用到並口,比如LDD3中的例子)

Plug and Play support  --->
[*] Plug and Play support
; 支援既插既用裝置, 選上.並選上該選項下面的一些協議支援, /proc介面不選.

Block devices  --->
< > Normal floppy disk support
; 軟盤,沒人用了, 不選.
< > XT hard disk support
; 石器時代的8位硬碟,不選.
< > Compaq SMART2 support
< > Compaq Smart Array 5xxx support
; compaq用的,不選.
<M> Loopback device support
; 大部分的人這一個選項都選N,因為沒有必要。但是如果你要mount iso檔案的話,你得選上Y。這個選項的意思是說,可以將一個檔案掛成一個檔案系統。如果要燒光碟片的,那麼您很有可能在把一個檔案燒進去之前,看看這個檔案是否符合IS09660的檔案系統的內容,是否符合您的需求。而且,可以對這個檔案系統加以保護。不過,如果您想做到這點的話,您必須有最新的 mount程式,版本是在2.5X版以上的。而且如果您希望對這個檔案系統加上保護,則您必須有des.1.tar.gz 這個程式。注意:此處與網路無關。建議編譯成模組
< >   Cryptoloop Support
; 不用選
<M> Network block device support
; 使本機成為網路塊裝置的客戶機.將主機的分割槽掛載到本地?...先編譯成模組看.
< > Promise SATA SX8 support
; SATA介面的16位I/O CPU支援,不用選.
< > Low Performance USB Block driver
;  不選,否則可能與USB儲存驅動衝突.
< > RAM disk support
; 把記憶體當作塊裝置使用,一般用於在最初安裝Linux時從軟盤向RAM中複製最小根檔案系統.不選.

<M> Packet writing on CD/DVD media
; 支援燒錄機的packet writing. ? 編為模組.
(8)   Free buffers for data gathering
; 設定燒錄時同步的packet數.多的packet能增加燒錄速度,但耗費更多記憶體.(一個約64K),預設為8.
[ ]   Enable write caching
; 寫緩衝.不要選.如果燒錄盤是壞的,系統不會處理延遲的寫錯誤.

<M> ATA over Ethernet support  
; ATA什麼意思?編為模組吧

ATA/ATAPI/MFM/RLL support  --->
<M> ATA/ATAPI/MFM/RLL support
; 支援ATA/ IDE/ATAPI裝置,除非你的系統是純SCSI的,否則一定要選上!
<M>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
; 如果有多個IDE裝置,一定選上
[ ]     Support for SATA (deprecated; conflicts with libata SATA driver)
[ ]     Use old disk-only dri