内核源代码的每个文件夹下都有一个文件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
作用是选择当前的选项时会显示的内容。