Linux内核驱动菜单(Kconfig)编写方法

本文详细介绍了Linux内核驱动配置菜单Kconfig的使用,包括Kconfig的结构、层次结构、菜单选项属性、文件名、菜单属性、输入提示、默认值、帮助说明、数据范围、依赖关系和反向依赖关系。通过实例展示了如何自定义添加菜单、建立子目录以及编写Kconfig文件。
摘要由CSDN通过智能技术生成

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值