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_DEVICEdefault 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和ntristate变量的值:y、n和mstring变量的值:  字符串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条目

choiceprompt "soc x1000 codec type select"depends on SOC_X1000
config SND_ASOC_INGENIC_PHOENIX_ICDCtristate "Audio support for phoenix with internal codec"select SND_ASOC_DMA_V13select SND_ASOC_JZ_AIC_I2S_V13select SND_ASOC_JZ_ICDC_D3#select SND_ASOC_JZ_PCM_V13#select SND_ASOC_FIIO_PCM5242config SND_ASOC_INGENIC_PHOENIX_SPDIFtristate "Audio support for phoenix with spdif"select SND_ASOC_DMA_V13select SND_ASOC_JZ_AIC_SPDIF_V13select SND_ASOC_JZ_SPDIF_V13#select SND_ASOC_JZ_PCM_V13endchoice
  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常用语法,入门必看相关推荐

  1. IntelliJ IDEA 最常用配置详细图解,新手入门必看

    转载自   IntelliJ IDEA 最常用配置详细图解,新手入门必看 刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工. 比如:设置文件字体大小,代 ...

  2. 生信小白入门必看网站!常用数据库分享

    新手上路,如何快速了解自己课题,含有DNA.RNA序列等信息的核酸数据库肯定是需要了解滴.今天分享一部分大家会比较常用到的,可结合自己的研究背景挑选使用,主要是应用在组学研究or基因功能研究中. 生信 ...

  3. python新手怎么入门_新手怎么学Python?Python入门必看!

    原标题:新手怎么学Python?Python入门必看! 作为新手,学习一门编程语言无疑是一头雾水,上海尚观科技为了让大家在学习Python编程的时候,有一个学习方向,在这里给大家分享了的方法,希望能帮 ...

  4. JavaScript基础教程——入门必看篇

    JavaScript他是一种描述性语言,其实他并不难学,只要用心学,一定会学好,我相信大家在看这篇文章的时候,一定也学过HTML吧,使用JavaScript就是为了能和网页有更好的交互,下面切入主题. ...

  5. 怎么安装python_零基础入门必看篇:浅析python,PyCharm,Anaconda三者之间关系

    今天为大家带来的内容是:零基础入门必看篇:浅析python ,PyCharm,Anaconda三者之间关系 众所周知,Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C, ...

  6. 五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看)

    五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看) 一.搭建vue环境 安装Nodejs 官网下载Nodejs,如果希望稳定的开发环境则下LTS(Long Time Support) ...

  7. 语音识别从菜鸟到入门必看的参考书目

    原标题:语音识别从菜鸟到入门必看的参考书目 此前研究这一方面的容,搜罗了些资料,在这里整理如下,做毕业设计,写毕业论文的朋友购书时可以参考一下: 一.<MATLAB数字信号处理> 编者:王 ...

  8. c++ stack用法 入门必看 超详细

    1.stack的作用 stack是一个比较简单易用的数据结构,其最大的特性就是先进后出.就好比一个桶,先放进出的数据就在底部,如果想要取出就先要把上面的数据取出,现在不懂没关系,看完本文就可以理解了. ...

  9. 视频教程-【平面设计】设计入门必看-海报设计视频教程-UI

    [平面设计]设计入门必看-海报设计视频教程 教学产品线与企业合作项目负责人,移动互联学院教学总监,从事培训与UI/UED课程研发工作多年,拥有数万学员且平均薪资位居行业前列.曾就职于世界500强互联网 ...

  10. 【平面设计】设计入门必看-海报设计视频教程-孙伟-专题视频课程

    [平面设计]设计入门必看-海报设计视频教程-273人已学习 课程介绍         本课程主要为初级学员录制,掌握纸媒印刷相关内容,是设计入门的基础:课程内容包含从平面的入门开始,从认识平面设计-- ...

最新文章

  1. pandas对象保存到mysql出错提示“BLOB/TEXT column used in key specification without a key length”解决办法
  2. Linux 编译安装内核
  3. Golang 协程goroutine的调度模型-MPG模式
  4. C语言——数组、函数、指针
  5. html编译圣诞情缘,H5+JS+CSS3 实现圣诞情缘
  6. Jupyter Notebook代码提示及补齐功能
  7. HDU 4825 (01字典树)
  8. 最常用的四种大数据分析方法
  9. Pickit 3D视觉定位抓取系统 -硅步机器人
  10. 80386异常和中断
  11. 云计算网络基础架构的实践和演进
  12. ecshop多国货币汇率换算,多国货币切换,多国货币价格转换
  13. 读书笔记:我们为什么上班
  14. Ubuntu 使用上的一些小tip
  15. JAVA毕业设计共享充电宝管理系统演示录像2021计算机源码+lw文档+系统+调试部署+数据库
  16. 弘辽科技:新手开淘宝店的步骤有哪些?如何起步?
  17. 苹果手机浏览器safari不显示手机号问题
  18. 基于C++的泡泡堂游戏设计与实现
  19. 编程小白的人工智能路之Gabor滤波提取掌纹特征并对比掌纹相似度(一)
  20. 常见电商数据库表结构

热门文章

  1. 关与今日头条app的爬虫介绍
  2. eos节点服务器_Pi要开始申请节点了,Pi到底有没有前途? 竞选Pi的节点如何配置电脑(附送服务器策略干货)...
  3. Unity——制作简易红绿灯
  4. Failed to get local InetAddress for VMID. This is unlikely to matter.
  5. 《金融科技(FinTech)发展规划(2019-2021年)》全文公布
  6. bootstrap 内容简略显示
  7. Windows添加feature修复(0x800f0805)
  8. LINX命令压缩和归档
  9. 面试谈薪资不要怂,3个技巧,助你轻松拿高薪
  10. Vivado将程序固化到Xilinx的FPGA开发板的flash芯片中