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

Kconfig内容(详细)总结附示例快速掌握本文详细介绍了 Kconfig 在 Linux 内核配置中的作用 包括 menuconfig choice endchoice comment menu endmenu 等语法元素 以及依赖 反向依赖等概

大家好,欢迎来到IT知识分享网。

一、简介

Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config

depends on:表示依赖于XXX,“depends on TMPFS”表示只有当TMPFS配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项 select:是反向依赖关系的意思,即当前配置选项被选中,则GENERIC_ACL就会被选中。 imply:弱反向依赖,此属性和 select 相似,用于选定一个符号,但是被选定的符号仍有可能被直接依赖或用户输入设置为 n 

二、内容解析

2.1 menuconfig

此入口和简单 config 入口相似,定义一个符号 symbol,但是也暗示一个菜单块,后接子入口。需保证所有子入口应该在此入口下方,且依赖于此入口符号。语法如下:

menuconfig <symbol> <config options> 

在这里插入图片描述在这里插入图片描述

2.2 choice/endchoice

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

choice [<symbol>] <choice options> <choice block> endchoice 

2.3 comment

定义注释语句。将多个类似的配置选项组合在一起,供用户单选或多选,并且打印到输出文件中,仅支持依赖属性。语法如下:

comment <prompt> 
<comment options> choice prompt "ARM system type" default ARCH_VERSATILE config ARCH_AAEC2000 ......... config ARCH_REALVIEW ......... endchoice 

2.4 menu/endmunu

endmenu

2.5 if/endif

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

if <expr> <if block> endif 

2.6 source

source条目用于读取另一个Kconfig文件

source <file> 

2.7 mainmenu

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

mainmunu <prompt> 

2.8 类型 – type

定义类型的语法如下:

<type> 

有以下几种类型:

类型 说明
bool 布尔类型
tristate 三态类型,可以设置为 y、m 或 n。
string 字符串类型
hex 十六进制整数类型
int 整数类型

2.9 输入提示 – prompt

每个菜单项最多可以含有一个提示属性,此属性接收一个字符串,直接显示给用户提示输出。语法如下:

prompt <prompt> [if <expr>] 

也可以在类型后面直接跟输入提示。

<type> <prompt> 

2.10 默认值 – default

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

default <value> [if <expr>] 

也可以在类型后面直接跟默认值。

def_bool/def_tristate <value> [if <expr>] 

2.11 依赖 – depends

菜单项的依赖属性会应用到所有的其他属性上。同时指定多个依赖属性时,它必须同时满足,即为逻辑与关系。语法如下:

depends on <expr> 

2.12 反向依赖 – select

此属性可以强制选定一个符号,无论此符号的依赖是否满足。被选定的符号仅支持 bool 或 tristate 类型。语法如下:

select <symbol> [if <expr>] 

2.13 弱反向依赖 – imply

此属性和 select 相似,用于选定一个符号,但是被选定的符号仍有可能被直接依赖或用户输入设置为 n。语法如下:

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

2.14 可见性 – visible

此属性仅用于菜单块,根据条件来决定是否向用户显示菜单块(但是包含的符号依然可以被其他符号选定),和应用于单个菜单项的 prompt 属性相似。定义语法如下:

visible if <expr> 
range <symbol> <symbol> [if <expr>] 

2.15 帮助文本 – help

此属性定义一段帮助文本。可以为多行或空行,当行的缩进级别小于帮助文本的第一行时,表示结束。定义语法如下:

help <help text> 

在这里插入图片描述

三、其他相关链接

1、交叉编译linux内核总结

2、Linux下设备树内容解析

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/111134.html

(0)
上一篇 2026-01-26 21:26
下一篇 2026-01-26 21:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信