linux-Kconfig
核心原始碼的每個資料夾下都有一個檔案Kconfig,這個檔案是在2.6開始正式出現的(2.4版本核心裡面是config.in)。Kconfig是為了結果龐大核心中如何實現模組選擇編譯而出現,比如同一型別的裝置驅動dma中就有很多廠商的原始碼放在裡面,通過kconfig就可以選擇只編譯連結自己需要的驅動進入到可執行檔案中去。
Kconfig 結構
depends on ARCH_LINBAO
tristate "fh i2s support"
help
To compile this drivers as a module
Kconfig語法
comment
作用是在menuconfig 的介面裡面顯示一段內容
conmment “”next net config“ 就會在menuconfig 裡面顯示 next net config
* bool *
bool fh_i2s
作用是配置menuconfig 裡面fh_i2s 有兩種選擇,選擇編輯進入kernel和不編譯連結進入kernel。
* config *
config fh_i2s
對比於bool 的兩種選擇他有三種選擇,選擇編譯連結進入kernel、不編譯連結進入kernel、編譯成module。
depends on
depends on ARCH_LINBAO
作用是定義當前的選項依賴於ARCH_LINBAO這個選項,也就是說必須先選擇了ARCH_LINBAO這個選項才能選擇當前的選項。
select
作用對應depends on 的依賴的反向依賴,也就是選擇了當前的選項的話會間接直接選擇select後面的選項。
* help*
作用是當在menuconfig裡面選擇help的時候顯示的幫助內容。
tristate
作用是選擇當前的選項時會顯示的內容。