织梦CMS - 轻松建站从此开始!

罗索

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

jackyhwei 发布于 2010-05-19 18:39 点击:次 
把一个字符设备驱动文件,添加到内核中,希望编译成模块,而非build-in。
TAG:

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

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

【参考资料】
内核的源码树目录下一般都会有两个文件:Kconfig和Makefile
http://blog.sina.com.cn/s/blog_4a377e150100c896.html

【具体步骤】
1.首先保证已经有驱动源文件了:as352x_afe_charger.c
放在和其他你所要添加的模块放在一个目录下,此处是drivers\i2c\chips下。

2.在drivers\i2c\chips\makefile中,添加:
obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o

3.在drivers\i2c\chips\Kconfig
中,添加如下内容:
---------------------无敌分割线-------------------------
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
只能编译内核,而不编译模块。

(serial_story)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201005/9444.html]
本文出处:百度博客 作者:serial_story
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容