linux下USB器件驱动程序相关

http://blog.csdn.net/flyfish30/article/details/1444829

今天上网,查找USB驱动相关的问题时找到一个好网站(www.linux-usb.org),若要做linux下的USB 驱动,到这个网站可以找到很多好东西。今天匆匆看了一下,了解了linux的USB从设备(器件)驱动的一些知识,记录如下。

一.  USB盘的实现

linux下U盘的实现其实很简单,基于一个g_file_storage的模块,使用文件或其他块设备(如MTD设备)作为U盘的存储器即可,不用自己编写驱动程序。以文件为例的具体步骤如下所示:

·  创建文件存储器

    [root@localhost data]# dd bs=1M count=64 if=/dev/zero of=/root/data/backing_file

·  用fdisk对该文件存储器分区,可以不做,但有的版本的windows会不认这个U盘

    [root@localhost data]# fdisk file=/root/data/backing_file

·  格式化该文件存储器上的分区,若未使用fdisk,则如下操作

    [root@localhost data]# mkdosfs /root/data/backing_file

·  加载文件存储器,实现U盘

    [root@localhost data]# modprobe g_file_storage file=/root/data/backing_file

简单的几步操作完成后,将你的目标板通过USB线作为从设备连接到PC上,在PC端即可见到这个U盘。使用fdisk对文件存储器分区后的格式化步骤参考文章www.linux-usb.org/gadget/file_storage.html

二. USB网卡的实现

linux下的从设备网卡的实现是基于g_ether的模块,加载该模块即可作为一个ethernet网络设备连接到PC主机。

三. USB串口的实现

linux下的从设备USB串口模块实现了从设备端的USB转串口,g_serial使得运行嵌入式linux的小机作为一个串口设备通过USB连接到PC主机,PC主机可以使用MINICOM等登录到linux小机上。

 

由上面这些可以看到,linux对USB从设备(器件)的支持还是比较完善的,使用也比较方便。另外,linux还支持用户空间的对USB器件的直接驱动,如设置USB器件的配置,接口,端点,直接读写USB器件的端点来接收和发送数据,即用户空间的驱动,性能和内核的驱动几乎没什么差别。和当年在windows下编写USB驱动比起来,要好用多了。

有空再看看linux下USB多接口是如何实现的。

 

参考文档

Linux的USB从设备(器件)驱动API www.linux-usb.org/gadget


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值