首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>操作系统>Unix/Linux>图解Linux环境下USB的原理、驱动和配置
图解Linux环境下USB的原理、驱动和配置
来源: 发布时间:2007-10-15 发布人: 浏览: 人次   字体: [ ]  
 

驱动模块的编译、配置和使用

现在我们的驱动程序已经大体写好了,然后在linux下把它编译成模块就可以把驱动模块插入到内核中运行了,编译的Makefile文件可以这样来写:

 

ifneq ($(KERNELRELEASE),)

       obj-m := xxx.o

else

       KERNELDIR ?= /lib/modules/$(shell uname -r)/build

       PWD := $(shell pwd)

default:

       $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

endif

clean:

       rm -rf *.mod.* *.o *.ko .*.ko.* .tmp* .*.mod.o.* .*.o.*

其中xxx是源文件的文件名,在linux下直接执行make就可以生成驱动模块(xxx.ko)了。生成驱动模块后使用insmod xxx.ko就可以插入到内核中运行了,用lsmod可以看到你插入到内核中的模块,也可以从系统中用命令rmmod xxx把模块卸载掉;如果把编译出来的驱动模块拷贝到/lib/modules/~/kernel/drivers/usb/下,然后depmod一下,那么你在插入USB设备的时候,系统就会自动为你加载驱动模块的;当然这个得有hotplug的支持;加载驱动模块成功后就会在/dev/下生成设备文件了,如果用命令cat /proc/bus/usb/devices,我们可以看到驱动程序已经绑定到接口上了:

 

T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0

D:  Ver= 1.10 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1

P:  Vendor=1234 ProdID=2345 Rev= 1.10

C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA

I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=test_usb_driver /*我们的驱动*/

E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

 

此框架程序生成的是skel0(可以自由修改)的设备文件,现在就可以对这个设备文件进行打开、读写、关闭等的操作了。

 

面对层出不穷的新的USB设备,必须有人不断编写新的驱动程序以便让这些设备能够在linux下正常的工作,从这个意义上讲,驱动程序的编写本身就是一件非常有意义的工作,本文只是起到一个抛砖引玉的作用,帮助那些有志于写驱动程序的开发人员进一步了解USB驱动程序的设计思路,从而吸引更多的人加入到这个队伍中来。linux不仅为我们提供了一个顶级质量的操作系统,而且也为我们提供了参与到其未来开发过程的机会,我们完全可以从中得到无尽的快乐!


共4页: 上一页 [1] [2] [3] 4 下一页
相 关 文 章   发布商链接
·通过mount方式访问两台Linux操作系统...
·Linux下常见音频格式之间的转换方法
·Linux操作系统中使用nmap命令小解
·redhat9中默认的vsftpd服务器配置实...
·如何在Linux系统中增加一个新的系统...
·linux统计文件目录及其相应的文件个...
·详解Linux系统下挂载U盘和硬盘光驱的...
·如何改变linux默认目录在命令行下显...
·如何修改Linux ssh端口22和禁止ROOT...
·Linux系统打开带flash的网页后自动关...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·如何在Linux系统下对proftpd...
·当Linux系统启动不了时采取哪
·实例讲解linux下无线网卡上网
·实例详解Linux和Windows系统...
·虚拟机中装个Linux系统不能正
·如何在在Ubuntu下建立FTP服务
·实例讲解在Linux操作系统下安
·linux系统下巧法删除U盘病毒
·图解linux操作系统光盘镜像文
·Linux系统打开带flash的网页...
·如何修改Linux ssh端口22和禁
·如何改变linux默认目录在命令
·详解Linux系统下挂载U盘和硬...
·linux统计文件目录及其相应的
·如何在Linux系统中增加一个新
热 门 文 章
·如何修改Linux ssh端口22和禁...
·图解linux操作系统光盘镜像文...
·Linux下常见音频格式之间的转...
·Linux操作系统下如何制作Imag...
·如何管理Linux 操作系统日志...
·如何改变linux默认目录在命令...
·redhat9中默认的vsftpd服务器...
·让Linux也能运行C#的方案
·如何在在Ubuntu下建立FTP服务...
·Linux操作系统上WebLogic的安...
·详解Linux系统下挂载U盘和硬...
·linux统计文件目录及其相应的...
·如何在Linux系统中增加一个新...
·通过mount方式访问两台Linux...
·实例讲解linux下无线网卡上网...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .