linux-Kconfig

迷霧綠洲發表於2016-11-04

核心原始碼的每個資料夾下都有一個檔案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
作用是選擇當前的選項時會顯示的內容。