您的位置:首页 > 运维架构 > Linux

Linux的USB器件驱动多接口设备初探

2007-01-08 22:30 363 查看
今天看intel平台的资料,发现之前思考的USB的多接口gadget驱动已经在其linux内核中实现了。在Linux小机端实现较为简单,只要打开选项“Multipile gadget drivers support“,重新编译内核。使用新的内核,按通常的方式加载多个USB器件驱动模块,将小机连接到PC的USB端口,即可在PC端看到多个USB设备。
这种多接口的器件驱动使得一个从USB设备可以作为多个同时工作的设备,如可以让linux小机同时作为一个U盘和一个USB的GSM modem,PC机(或者笔记本)用户可以在操作U盘文件的同时进行无线上网。这和motorola的手机可以作为多个USB从设备不同,motorola的手机需要用户手动的一次选择一个设备连接到PC上,不能同时有多个设备连接到PC上,以此相比,多接口的器件驱动使得用户的使用方便多了。
多接口的USB从设备的各个设备要让PC能够认识,并加载其对应的驱动程序,需要修改PC端驱动的设备匹配规则。对windows,需要增加usb.inf中PID/VID的匹配信息,使得windows可以识别一个多接口的USB从设备。另外还需要修改各个对应的设备驱动程序的INF文件,使其按class/protocol来匹配新的USB设备。对linux,需要修改相应的设备驱动程序模块,使其按class/protocol来匹配新的USB设备。
现在intel平台对多接口的器件驱动的实现还较为有限,只有三种设备。另外,当多接口设备中有USB modem时,需要首先加载该驱动模块,否则不能识别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: