文章目录
Kconfig编译菜单说明文档
gedit Documentation/kbuild/Kconfig-language.txt
内核配置的目的是裁剪C代码,C代码编译一般由Makefile管理
一个菜单有三个相关内容:
1、 菜单;-----------Kconfig文件
2、 Makefile;------根据 .config抽取文件
3、 C代码。--------通过Makefile文件进行关联
源码目录下一般都有两个文件Kconfig和Makefile
Kconfig
Kconfig结构
一般一个Kconfig文件表示的就是一个菜单,一个菜单由多个菜单项组成,其格式如下
memu “菜单名”
菜单顶或菜单链接1
菜单顶或菜单链接2
菜单顶或菜单链接3
…………………………………
菜单顶或菜单链接n
endmenu
具体代码
menu "Device Drivers"
source "drivers/aamenutest/Kconfig"
source "drivers/base/Kconfig"
……..
source "drivers/memory/Kconfig"
source "drivers/iio/Kconfig"
source "drivers/vme/Kconfig"
endmenu
以drivers为例:
改变菜单名
配置菜单改变
层次结构
源(放在drivers目录下,关联到具体的Kconfig中)
在base文件夹下的Kconfig中
子项菜单命名
在配置菜单中的选项
菜单选项属性
菜单的结构为
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. ...
大多数的选项都定义了一个配置选项,语法如下
config <symbol>
<config options>
为一符号,就好像代码中的局部变量x一样,可用于后边的表达式中. 每行都是以关键字开始。“config” 为定义了一新的配置选项。下面的几行定义了该配置选项的属性。属性可以是该配置选项的类型,输入提示(input prompt),依赖关系,帮助信息和默认值。
文件名
config UEVENT_HELPER_PATH
config开头配置后的宏名,会在配置后加前缀“CONFIG_”
如果同名会导致冲突,会有警告单不报错,执行内容以第一项定义为准,后面的项无效。
每个config菜单项都会产生一个配置选项CONFIG_XXX, XXX即为. 如上,则会产生一个配置项:CONFIG_ MODVERSIONS,此配置项的值记录在内核根目录下的隐藏文件.config内。
菜单属性
1、string:字符串,选择后会出现一个选项框,要求输入字符串
2、bool:两态选项,只能选中和不选中,选中为有,不选中为n。
3、tristate