在Linux驱动之中通过修改kconfig文件添加menuconfig选项

这个工作之前做过一次,不过忘记了,今天因为要用到,又重新温习一遍。

关键的动作是在/drivers/char/Makefile的后面增加对应的source,这样就会使依赖关系发生作用

obj-$(CONFIG_SM1623DRV)   += sm1623drv/

第二步就是同样在/drivers/char/Kconfig的后面增加对应的子文件夹的Kconfig文件,这样在执行 make menuconfig时就会寻找到对应的编译选项

source "drivers/char/sm1623drv/Kconfig"

之前有修改/arch/arm/Kconfig的说法,不知道是否必须,如果修改了这个,会在make menuconfig的顶层界面看到对应的module选项

需要注意的是,我开始犯了一个错误,导致一直编译不到目标目录,原因是一开始我在Makefile里写成这样

obj-$(SM1623DRV)   += sm1623drv/
实际上要写成

obj-$(CONFIG_SM1623DRV)   += sm1623drv/
否则系统因为找不到CONFIG_SM1632DRV这个宏导致不会编译sm1623drv目录里面的文件

Kconfig的样子:

#
# sm1623 driver.
#

config SM1623DRV
	tristate "sm1623 driver"
	default m
	help
	this is a sm1623 driver for DVD player...

SM1623DRV这个是要生成的宏,Makefile文件里就是判断这个宏,不过它前面要加上CONFIG_

其中tristate表示有3种可选项,分别是(M)编译为模块,(*)编译为内置方式,( )不编译

后面是默认的编译的方式,这里是以模块的方式

模块里的Makefile文件例子:

obj-$(CONFIG_SM1623DRV) += sm1623drv.o




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值