概述
Kconfig
当在内核目录执行”make menuconfig”的时候读取相应的Kconfig文件,来生成配置界面。Kconfig常用的语法主要是几个重要的条目,每个条目都有自己的依赖关系。使用这些依赖关系以确定条目的可见性。任何子条目是唯一,如果其父条目可见,则可见。
1.1 config条目
example:
config MODVERSIONS
bool "Set version information on all module symbols""
depends
help
Usually,module have to.......
大多数条目都定义了这个config选项,所有其他的条目都是来组织config选项的。每行都以一个关键字开始,后面可以跟着多个参数。 “config”启动一个新的配置项。以下几行定义此配置选项的属性。属性可以是选项类型,输入提示符,依赖项,帮助信息和默认值值。配置选项可以多次定义相同名称,但每个定义只能有一个输入提示符和类型不能冲突。
一个条目有很多属性,如下:
- 定义类型:bool、tristate、string、hex、int。
每个config必须有一个类型,其他的类型都是基于tristate和string,其中bool变量的值有y和n,tristate变量的值有y、n和m,string变量的值为字符串。类型定义可以接受输入提示,所以这两个例子是等效的:
bool "Networking support"
and
bool
prompt "Networking support"
- 输入提示:变量的类型后面跟着输入提示。输入提示也可以单独做一行,使用prompt,格式为:prompt [if ],其中if用来表示该提示的依赖关系。
- 依赖关系:格式为depends on(或者requires) ,表示config这个配置选项是依赖与”expr”,如果定义了多重依赖关系,他们之间用”&&”间隔。
- 选择关系:select [if ],A如果选择了B,则在A被选中的情况下,B自动被选中。
- 帮助信息:help(或—help—)
1.2 menu条目
menu条目用于生成菜单,格式如下
example:
menu "Floating poing emulation"
config FPE_NWFPE
..............
config FPE_NWFPE_XP
.............
endmenu
menu之后的字符串是菜单名,menu和endmenu之间有很多config条目(待会说介绍config条目),在配置界面上会出现如下字样的菜单,移动光标选中它之后按回车进入,就会看到config条目定义的配置选项。
Floating point emulation --->
[] FPE_NWFPE
[] FPE_NWFPE_XP
1.3 choice条目
choice条目将多个类似的配置选项组合在一起,供用户单选或者多选。
example:
choice
prompt "arm system type"
default arch_versatile
config arch_aarc200
...
config arch_integrator
...
endchoice
prompt后面跟的是提示信息,光标选中它后按回车键进入,就可以看到多个config条目定义的配置选项。
条目中定义的变量类型只能有两种:bool和tristate,不能同时有这两种类型的变量。对于bool类型的choice条目,只能在多个选项中选择一个;对于tristate类型的choice条目,要么就把多个选项都设为m;要么就像bool类型的choice条目一样,只能选择一个。
1.4 comment条目
comment条目定义了一些帮助信息,它在配置过程中出现在界面的第一行;并且这些帮助信息会出现在配置文件中,格式如下:
comment <prompt>
<comment options>
example:
menu "floating point emulation"
comment "At least one emultaion must be selected"
...
进入菜单“floating point emulation —>”之后,在第一行就会看到如下内容:
--- At least one emultaion must be selected
1.5 source条目
source条目用于读入另一个Kconfig文件,格式如下:
source <promt>
example:
source "net/Kconfig"
最后
以上就是自由夕阳为你收集整理的Kconfig语法详解的全部内容,希望文章能够帮你解决Kconfig语法详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复