Linux内核编译的选项 m,如何把设备驱动文件添加到Linux内核编译选项配置的menuconfig中...

如何把设备驱动文件添加到Linux内核编译选项配置的menuconfig中

【目的】

把一个字符设备驱动文件,添加到内核中,希望编译成模块,而非build-in。

【具体步骤】

1.首先保证已经有驱动源文件了:as352x_afe_charger.c

放在和其他你所要添加的模块放在一个目录下,此处是driversi2cchips下。

2.在driversi2cchipsmakefile中,添加:

obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o

3.在driversi2cchipsKconfig

中,添加如下内容:

———————无敌分割线————————-

config AS352X_AFE_CHG

tristate "AS352X AFE Charger Driver"

depends on I2C_AS352X && AS352X_AFE

help

If you say yes here you get support for AS352X AFE Charger.

This driver can also be built as a module. If so, the module

will be called AS352X AFE Charger.

———————无敌分割线————————-

解释如下:

(1)AS352X_AFE_CHG是自己定义的名字,当然要尽量保证有意义。

同时,你会注意到,在上面的makefile中添加的

obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o

中的CONFIG_AS352X_AFE_CHG,是CONFIG_加上我们在kconfig下写的config变量。

这两个要匹配,才能实现你在menconfig定义的结果,传递到makefile中,

以便决定编译的时候是如何编译:不编译/编译进内核/编译成模块

(2)tristate 表示我此处添加的模块,可以

在make ARCH=arm menuconfig中看到的,选择之后:

* 编译到内核中

M 编译成模块,即生成XXX.ko

不选中,就不编译该文件

(3)depends on I2C_AS352X && AS352X_AFE

是前面自己找到的,表示此编译选项只有当I2C_AS352X 和AS352X_AFE都选中,才会出现。

当然,如果此模块不依赖于其他模块,则不需要加上这个depends on了。

【附录】

1.如果设置成M,module模式,则要用

make ARCH=arm

编译出as352x_afe_charger.ko

make ARCH=arm uImage

只能编译内核,而不编译模块。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值