| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux入门与提高 > 安装与配置

Linux下USB设备检测

时间:2007-11-27 11:38:14  来源:Linux联盟收集整理  作者:

USB设备检测也是通过/proc目录下的USB文件系统进行的。为了使一个USB设备能够正常工作,必须要现在系统中插入USB桥接器模块。在检测开始时,一般要先检测是否存在/proc/bus/usb目录,若不存在则尝试插入USB桥接模块。 mTBLinux联盟

现在一般的USB桥接器模块有两种类型,UHCI和OHCI。在决定插入那一个桥接器模块时,可以察看/proc/pci文 件来决定。打开此文件,您若发现 USB节为 I/O at 0xHHHH格式(例如出现 I/O at 0xe000 [0xe01f]),HHHH为16进制数,则桥接器类型为UHCI。若是它为32 bit memory at 0xHH000000形式 (例如出现32 bit memory at 0xee000000),HH为16进制数,则桥接器类型为OHCI。但是若您的桥接器类型不满足上述任何一种情况,唯一的解决办法就是您尝试插入这两种 模块,直到成功为止。一般而言,UHCI类型的桥接器它的插入模块是uhci或usb-uhci(由内核版本决定);而对于OHCI类型的桥接器它的插入 模块是ohci 或usb-ohci。 mTBLinux联盟

您在正确的插入了桥接器模块之后,这时/proc文件系统下就会出现USB设备目录,不过这时这个目录是空的,没 有任何文件。这时您就必须挂接usbdevfs文件系统,然后通过此文件系统检测连接的设备。在成功挂接usb文件 系统之后,就会生成文件 /proc/bus/usb/devices,/proc/bus/usb/drivers和目录--/proc/bus/usb/busNo。挂接 usbdevfs文件您可以通过如下操作实现: mTBLinux联盟

mount -t usbdevfs none /proc/bus/usbmTBLinux联盟

--------------------------------------------------------------------------------mTBLinux联盟

或在 mTBLinux联盟

mTBLinux联盟
--------------------------------------------------------------------------------mTBLinux联盟

 /etc/fstab上加入none /proc/bus/usb usbdevfs defaults 0 0mTBLinux联盟
然后通过/proc/bus/usb/devices文件的内容,您就可以获得连接的设备信息,包括设备标识和制造商标是等信息。 mTBLinux联盟

[编辑]usb设备类型描述mTBLinux联盟
设备规范 设备类码 接口类码应用程序特定 - 0xFE声音接口 0x00 0x01通信设备 0x02 -CDC控制接口 - 0x02CDC数据接口 - 0x0AHID 0x00 0x03HUB 0x09 0x09批量存储设备 0x00 0x08监视器 same as HID same as HID电源设备 same as HID same as HID物理设备 - 0x05打印机 - 0x07供应商特定 - 0xFFmTBLinux联盟
[编辑]usb文件系统简介mTBLinux联盟
T = 总线拓扑结构(Lev, Prnt, Port, Cnt, 等),是指USB设备和主机之间的连接方式B = 带宽 (仅用于USB主控制器)D = 设备描述信息P = 产品标识信息S = 串描述符C = 配置描述信息 (* 表示活动配置)I = 接口描述信息E = 终端点描述信息mTBLinux联盟
提示:一般格式: mTBLinux联盟

d = 十进制数x = 十六进制数s = 字符串mTBLinux联盟
[编辑]拓扑信息mTBLinux联盟
T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd|   |      |      |       |       |      |        |       |__最大子设备|   |      |      |       |       |      |        |__设备速度(Mbps)|   |      |      |       |       |      |__设备编号|   |      |      |       |       |__这层的设备数|   |      |      |       |__此设备的父连接器/端口|   |      |      |__父设备号|   |      |__此总线在拓扑结构中的层次|   |__总线编号|__拓扑信息标志mTBLinux联盟
[编辑]带宽信息mTBLinux联盟
B: Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd|         |                    |       |__同步请求编号|         |                    |__中断请求号|         |__分配给此总线的总带宽|__带宽信息标志mTBLinux联盟
[编辑]设备描述信息和产品标识信息mTBLinux联盟
D: Ver=x.xx Cls=xx(s) Sub=xx Prot=xx MxPS=dd #Cfgs=ddP: Vendor=xxxx ProdID=xxxx Rev=xx.xxmTBLinux联盟

--------------------------------------------------------------------------------mTBLinux联盟

D: Ver=x.xx Cls=xx(sssss) Sub=xx Prot=xx MxPS=dd #Cfgs=dd|     |         |            |       |       |        |__配置编号|     |         |            |       |       |______缺省终端点的最大包尺寸|     |         |            |       ||     |         |            |       |__设备协议|     |         |            |__设备子类型|     |         |__设备类型|     |__设备USB版本|__设备信息标志编号#1mTBLinux联盟
P: Vendor=xxxx ProdID=xxxx Rev=xx.xx|       |            |        |__产品修订号|       |            |__产品标识编码|       |__制造商标识编码|__设备信息标志编号#2mTBLinux联盟
[编辑]串描述信息mTBLinux联盟
S: Manufacturer=ssss|         |__设备上读出的制造商信息|__串描述信息mTBLinux联盟

--------------------------------------------------------------------------------mTBLinux联盟

S: Product=ssss|      |__设备上读出的产品描述信息,对于USB主控制器此字段为"USB *HCI Root Hub"|__串描述信息mTBLinux联盟

--------------------------------------------------------------------------------mTBLinux联盟

S: SerialNumber=ssss|       |__设备上读出的序列号,对于USB主控制器它是一个生成的字符串,表示设备标识|__串描述信息mTBLinux联盟

--------------------------------------------------------------------------------mTBLinux联盟
[编辑]配置描述信息mTBLinux联盟
C: #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA|    |        |      |        |__最大电流(mA)|    |        |      |__属性|    |        |__配置编号|    |__接口数|__配置信息标志mTBLinux联盟
[编辑]接口描述信息(可为多个)mTBLinux联盟
I: If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss|     |      |       |      |            |        |          |__驱动名|     |      |       |      |            |        |__接口协议|     |      |       |      |            |__接口子类|     |      |       |      |__接口类|     |      |       |__中断点数|     |      |__可变设置编号|     |__接口编号|__接口信息标志mTBLinux联盟
[编辑]终端点描述信息mTBLinux联盟
E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddmsE: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms|    |         |             |        |__间隔|    |         |             |__终端点最大包尺寸|    |         |__属性(终端点类型)|    |__终端点地址(I=In,O=Out)|__终端点信息标志 'mTBLinux联盟
mTBLinux联盟

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目更新
栏目热门