我是靠谱客的博主 激情手链,最近开发中收集的这篇文章主要介绍kconfig常用语法,入门必看,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

kconfig

1. kconfig简单介绍

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

2. kconfig和makefile关系

makefile用来配置编译源文件的方法,kconfig可以说是以界面的方式来配置决定那些makefile文件需要编译。

看kconfig和makefile和源文件如何关联起来

makefile

obj-$(CONFIG_LCD_TRULY_TFT240240_2_E)	+= truly_tft240240_2_e.o

truly_tft240240_2_e:源文件名字
CONFIG_LCD_TRULY_TFT240240_2_E:CONFIG_是前缀,重点是后面的LCD_TRULY_TFT240240_2_E,kconfig通过LCD_TRULY_TFT240240_2_E关联到makefile,从而找到truly_tft240240_2_e,然后进行编译。
kconfig

config LCD_TRULY_TFT240240_2_E 
	tristate "SLCD TRULY TFT240240-2-E with control IC st7789s (240x240)"
	depends on BACKLIGHT_CLASS_DEVICE
	default n

这个我们只用看config config LCD_TRULY_TFT240240_2_E ,其他先不管。LCD_TRULY_TFT240240_2_E和makeflie的CONFIG_LCD_TRULY_TFT240240_2_E中的LCD_TRULY_TFT240240_2_E对应。
然后可以通过make menuconfig 查看结果
在菜单用按 / 可以搜索
在这里插入图片描述
在这里插入图片描述
这样通过空格键选中就可以选中编译的方式,如不编译、编译到内核
编译到模块。
以上就是基本的使用流程

###常见命令
在这里插入图片描述

kconfig的基本用法

  1. config条目(entry)
    config TMPFS_POSIX_ACL

    bool “Tmpfs POSIX Access Control Lists”

    depends on TMPFS

    select GENERIC_ACL

    help

    POSIX Access Control Lists (ACLs) support permissions for users and

    groups beyond the owner/group/world scheme.

    To learn more about Access Control Lists, visit the POSIX ACLs for

    Linux website http://acl.bestbits.at/.

    If you don’t know what Access Control Lists are, say N.

以上对应的配置界面为
在这里插入图片描述
解析:

        config是关键字,表示一个配置选项的开始;紧跟着的TMPFS_POSIX_ACL是配置选项的名称,省略了前缀"CONFIG_"
bool表示变量类型,即"CONFIG_ TMPFS_POSIX_ACL "的类型,有5种类型:bool、tristate、string、hex和int,其中tristate和string是基本的类型
          bool变量的值:    y和n
          tristate变量的值:y、n和m
      string变量的值:  字符串

bool之后的字符串“Tmpfs POSIX Access Control Lists”是提示信息(在上面的配置界面中就是通过它来识别CONFIG_TMPFS_POSIX_ACL),在配置界面中上下移动光标选中它时,就可以通过按空格或回车键来设置CONFIG_ TMPFS_POSIX_ACL的值(即选择了哪个值就会把该值赋值给CONFIG_TMPFS_POSIX_ACL)

depends on:表示依赖于XXX,“depends on TMPFS”表示只有当TMPFS配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项
select:是反向依赖关系的意思,即当前配置选项被选中,则GENERIC_ACL就会被选中。

  1. menu条目

menu条目用于生成菜单,其格式如下:

     menu "Floating point emulation"
 config FPE_NWFPE

 ..............

 config FPE_NWFPE_XP

 .............

 endmenu

menu之后的Floating poing emulation是菜单名。menu和endmenu间有很多config条目,在配置界面中如下所示:
在这里插入图片描述
其中Floating point emulation就是菜单名,然后进入这个菜单有 FPE_NWFPE、FPE_NWFPE_XP…等config条目选择

     Floating point emulation--->
               [] FPE_NWFPE

               [] FPE_NWFPE_XP

3.choice条目
choice条目将多个类似的配置选项组合在一起,供用户单选或多选,这不同于menu条目

choice
	prompt "soc x1000 codec type select"
	depends on SOC_X1000
config SND_ASOC_INGENIC_PHOENIX_ICDC
	tristate "Audio support for phoenix with internal codec"
	select SND_ASOC_DMA_V13
	select SND_ASOC_JZ_AIC_I2S_V13
	select SND_ASOC_JZ_ICDC_D3
	#select SND_ASOC_JZ_PCM_V13
	#select SND_ASOC_FIIO_PCM5242

config SND_ASOC_INGENIC_PHOENIX_SPDIF
tristate “Audio support for phoenix with spdif”
select SND_ASOC_DMA_V13
select SND_ASOC_JZ_AIC_SPDIF_V13
select SND_ASOC_JZ_SPDIF_V13
#select SND_ASOC_JZ_PCM_V13

endchoice

  prompt "soc x1000 codec type select"给出提示信息“soc x1000 codec type select”,光标选中后回车进入就可以看到多个config条目定义的配置选项

 choice条目中定义的变量只有bool和tristate
 如下图

在这里插入图片描述

  1. comment条目
    menu “Floating point emulation”

comment “At least one emulation must be selected”

config FPE_NWFPE

config FPE_NWFPE_XP

在界面中如下所示:
在这里插入图片描述

  1. ** source条目**
    source条目用于读取另一个Kconfig文件,如:

    source "net/Kconifg" 
    

参考了
https://www.jianshu.com/p/aba588d380c2
https://www.cnblogs.com/fah936861121/p/7229522.html

最后

以上就是激情手链为你收集整理的kconfig常用语法,入门必看的全部内容,希望文章能够帮你解决kconfig常用语法,入门必看所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部