免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1036 | 回复: 0
打印 上一主题 下一主题

如何动态的添加驱动模块 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-29 11:50 |只看该作者 |倒序浏览
说明:原先的test键盘驱动做为实验材料,要求是通过insmod动态加载到系统中
思考:要动态加载,必须先在文件系统里放入test.ko文件,.ko文件是专门的模块加载文件,那么如何生成.ko文件呢?方法就是在编译的时候生成。当然,不能把test文件单独拿到随意的地方用arm-linux-gcc -o test.ko test.c这样的语法编译,那么该怎么做呢?分析如下:

1. 把test.c文件放到YLP2440的根目录下,(和板子里用的内核相同的内核版本),YLP2440是这个内核再PC中的文件目录
2. 然后修改YLP2440根目录的Makefile文件,在头部添加如下代码:
obj-m := test.o
KERNELDIR := /root/test/YLP2440
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
3. make
4. make结束后生成test.ko文件,然后把它放到文件系统中,新做一个cramfs文件系统,下载到板子里
5. 启动板子,然后在test.ko文件目录下输入:insmod test.ko
6. 完成

上述代码中,modules和modules_install为什么要取这个名字我也不知道,另一种代码写法是这样的:
obj-m := test.o
KERNELDIR := /root/test/YLP2440
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
此写法不会出现modules被覆盖这样的提示

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/105117/showart_2081824.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP