(1)菜单项。
config 关键字可以定义一个新的菜单项,比如:
config MODVERSIONS
bool "Set version information on all module symbols"
depends on MODULES
help
Usually, modules have to be recompiled whenever you switch to a new
kernel. ...
从第二行代码开始定义了该菜单项的属性,包括类型、依赖关系、选择提示、帮助信息和缺省值等。
类型包括 bool、tristate、string、hex 和 int。bool 类型的只能选中或不选中,tristate 类型的菜单项多了
编译成内核模块的选项。
依赖关系通过“depends on”或“requires”定义,指出此菜单项是否依赖于另外一个菜单项。
帮助信息需要使用“help”或“---help---”指出。
(2)菜单组织结构。
菜单选项通过两种方式组成树状结构。
menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
config PCI
......
endmenu
通过依赖关系(depands on)确定菜单结构,比如:
config MODULES
bool "Enable loadable module support"
config MODVERSIONS
bool "Set version information on all module symbols"
depends on MODULES
comment "module support disabled"
depends on !MODULES
MODVERSIONS 菜单项依赖于 MODULES,所以它就是一个子菜单项。这要求菜单项和它的子菜单
项同步显示或不显示。
(3)Kconfig 关键字。
除帮助信息外,文件中的每一行都以一个关键字开始,主要
有 config、menuconfig、choice/endchoice、comments、menu/endmenu、if/endif、source 等,它们都可以用
于结束一个菜单项,只有前 5 个可以用在菜单项定义的开始。