欢迎来到天天文库
浏览记录
ID:43515593
大小:29.50 KB
页数:3页
时间:2019-10-09
《linux增加驱动模块》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、linux增加驱动模块1.在drives目录下添加hello目录,内含hello.cKconfigMakefile hello.c内容: #include #include MODULE_LICENSE("DualBSD/GPL"); staticinthello_init(void) { printk(KERN_ALERT"Hello,world"); return0; } staticvoidhello_exit(void) { printk(KERN_ALERT"Goodbye,cruelworld"); } module_init
2、(hello_init); module_exit(hello_exit); Kconfig内容: configHELLO tristate"HelloDriveraddedbyDong" defaultn help testforaddingdrivertomenuconfig. MakeFile内容: obj-$(CONFIG_HELLO)+=hello.o 2.上面的Kconfig文件再加上下面的两个配置,可使hello项出现在配置菜单中。 在arch/arm/Kconfigmenu"DeviceDrivers"endmenu之间添加
3、source"drivers/hello/Kconfig" 在drivers/Kconfigmenu"DeviceDrivers"endmenu之间添加 source"drivers/hello/Kconfig" (不知为什么arch/arm/Kconfig中竟然含有Drivers里Kconfig内容的一个复本, 实验证明只对drivers/Kconfig中修改内容无效。) 3.修改Drivers目录下的Makefile文件,添加如下行, obj-$(CONFIG_HELLO)+=hello/ 当CONFIG_HELLO为y或m时,使系统能找到hell
4、o驱动的makefile。 linux-2.6.25目录下makemenuconfig,在DeviceDrivers菜单下选中HelloDriveraddedbyDong项比如M,作为module。然后保存配置,执行make命令,就可以看到CC[M]drivers/hello/hello.o的 log了,hello目录里生成了hello.ohello.ko的等文件。 流程: 假如在makemenuconfig时配置HelloDriveraddedbyDong为M(即编为模块,而不是编进linux内核) 则.config中就会多一行CONFIG_HELLO=m
5、 如此一来,drivers/Makefile中obj-$(CONFIG_HELLO)+=hello/就变成了obj-m+=hello/ 于是执行make命令时,便会进入hello目录里找makefile,MakeFile内容obj-$(CONFIG_HELLO)+=hello.o变成了obj-m+=hello.o,所以hello.c就被编译成模块了。
此文档下载收益归作者所有