Kconfig内容(详细)总结附示例快速掌握

目录
一、简介
二、内容解析
2.1 menuconfig
2.2 choice/endchoice
2.3 comment
2.4 menu/endmunu
2.5 if/endif
2.6 source
2.7 mainmenu
2.8 类型 - type
2.9 输入提示 - prompt
2.10 默认值 - default
2.11 依赖 - depends
2.12 反向依赖 - select
2.13 弱反向依赖 - imply
2.14 可见性 - visible
2.15 帮助文本 - help
三、其他相关链接
一、简介
Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config

Kconfig的语法可以参考“Documentation/kbuild/kconfig-language.txt”
主要内容

depends on:表示依赖于XXX,“depends on TMPFS”表示只有当TMPFS配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项
select:是反向依赖关系的意思,即当前配置选项被选中,则GENERIC_ACL就会被选中。
imply:弱反向依赖,此属性和 select 相似,用于选定一个符号,但是被选定的符号仍有可能被直接依赖或用户输入设置为 n
1
2
3
二、内容解析
2.1 menuconfig
此入口和简单 config 入口相似,定义一个符号 symbol,但是也暗示一个菜单块,后接子入口。需保证所有子入口应该在此入口下方,且依赖于此入口符号。语法如下:

menuconfig <symbol>
<config options>
1
2


2.2 choice/endchoice
定义一个选择组。选择组类型仅仅可以设置为 bool 或 tristate,如果未指定类型,则取决于第一个选择项的类型。bool 类型只允许单个 config 入口被选择,tristate 类型允许多个 config 入口被设置为 m。 支持语法如下:

choice [<symbol>]
<choice options>
<choice block>
endchoice
1
2
3
4
2.3 comment
定义注释语句。将多个类似的配置选项组合在一起,供用户单选或多选,并且打印到输出文件中,仅支持依赖属性。语法如下:

comment <prompt>
1
<comment options>
        choice
             prompt "ARM system type"
             default ARCH_VERSATILE
             config ARCH_AAEC2000
                  .........
             config ARCH_REALVIEW
                  .........
        endchoice
1
2
3
4
5
6
7
8
9
prompt "ARM system type"给出提示信息“ARM system type”,光标选中后回车进入就可以看到多个config条目定义的配置选项
choice条目中定义的变量只有bool和tristate

2.4 menu/endmunu
定义一个菜单块。菜单块内的其他子入口继承此项的依赖。仅支持依赖和可视属性。语法如下:
menu

endmenu
2.5 if/endif
定义一个条件块。条件块内的其他菜单入口追加此项的依赖表达式 expr。

if <expr>
<if block>
endif
1
2
3
2.6 source
source条目用于读取另一个Kconfig文件

source <file>
1
如下图,在pci的Kconfig中加入source

2.7 mainmenu
定义配置程序的标题栏。应该被放在配置文件的开头。

mainmunu <prompt>
1
菜单属性
菜单项可以有一些属性。但是并不是所有菜单项都支持任意属性,详看菜单项说明。

2.8 类型 - type
定义类型的语法如下:

<type>
1
有以下几种类型:

类型    说明
bool    布尔类型
tristate    三态类型,可以设置为 y、m 或 n。
string    字符串类型
hex    十六进制整数类型
int    整数类型
2.9 输入提示 - prompt
每个菜单项最多可以含有一个提示属性,此属性接收一个字符串,直接显示给用户提示输出。语法如下:

prompt <prompt> [if <expr>]
1
也可以在类型后面直接跟输入提示。

<type> <prompt>
1
2.10 默认值 - default
一个配置菜单项可以接收多个默认值,但是仅第一个默认值有效。未指定默认值的 config 入口默认未选定。语法如下:

default <value> [if <expr>]
1
也可以在类型后面直接跟默认值。

def_bool/def_tristate <value> [if <expr>]
1
2.11 依赖 - depends
菜单项的依赖属性会应用到所有的其他属性上。同时指定多个依赖属性时,它必须同时满足,即为逻辑与关系。语法如下:

depends on <expr>
1
2.12 反向依赖 - select
此属性可以强制选定一个符号,无论此符号的依赖是否满足。被选定的符号仅支持 bool 或 tristate 类型。语法如下:

select <symbol> [if <expr>]
1
2.13 弱反向依赖 - imply
此属性和 select 相似,用于选定一个符号,但是被选定的符号仍有可能被直接依赖或用户输入设置为 n。语法如下:

imply <symbol> [if <expr>]
1
假设有如下定义:
config FOO
    tristate "foo"
    imply BAZ

config BAZ
    tristate "baz"
    depends on BAR
1
2
3
4
5
6
7
8
2.14 可见性 - visible
此属性仅用于菜单块,根据条件来决定是否向用户显示菜单块(但是包含的符号依然可以被其他符号选定),和应用于单个菜单项的 prompt 属性相似。定义语法如下:

visible if <expr>
1
数字范围 - range
此属性用于限制 int 和 hex 类型符号的输出值的范围。定义语法如下:

range <symbol> <symbol> [if <expr>]
1
2.15 帮助文本 - help
此属性定义一段帮助文本。可以为多行或空行,当行的缩进级别小于帮助文本的第一行时,表示结束。定义语法如下:

help
    <help text>
1
2


三、其他相关链接
1、交叉编译linux内核总结

2、Linux下设备树内容解析
————————————————
版权声明:本文为CSDN博主「快乐的学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Luckiers/article/details/126440197

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值