Linux核心配置選項簡介
阿新 • • 發佈:2018-12-31
-
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 - 僅供核心開發者使用
-
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",除非你想除錯核心.
-
Early printk via EHCI debug port
-
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延遲機制.只要你的機器不是老古董,建議選擇此項.
-
port 0x80 based port-IO delay
-
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)進行自檢,僅供核心開發者使用