USB 设备的自动检测 /proc/bus/usb

来源:互联网 发布:macbook必备软件 2016 编辑:程序博客网 时间:2024/05/01 23:19
USB 设备的自动检测
5.1 USB 设备检测的一般过程
USB 设备检测也是通过/proc 目录下的USB 文件系统进行的。为了使一个USB 设备能够正常工作,必须
要现在系统中插入USB 桥接器模块。在检测开始时,一般要先检测是否存在/proc/bus/usb 目录,若不存
在则尝试插入USB 桥接模块。
现在一般的 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。
您在正确的插入了桥接器模块之后,这时/proc 文件系统下就会出现USB 设备目录,不过这时这个目录是
空的,没有任何文件。这时您就必须挂接usbdevfs 文件系统,然后通过此文件系统检测连接的设备。在成
功挂接usb 文件系统之后,就会生成文件/proc/bus/usb/devices,/proc/bus/usb/drivers 和目录
/proc/bus/usb/busNo。挂接usbdevfs 文件您可以通过如下操作实现:

mount -t usbdevfs none /proc/bus/usb

mount -t usbfs /proc/bus/usb /proc/bus/usb

上面两种方式选其一,看不同的内核版本

或在/etc/fstab 上加入

none /proc/bus/usb usbdevfs defaults 0 0

none /proc/bus/usb usbfs defaults 0 0

上面两种方式选其一,看不同的内核版本

然后通过/proc/bus/usb/devices 文件的内容,您就可以获得连接的设备信息,包括设备标识和制造商标是
等信息。
usb 设备类型描述:
表 5-1 usb 设备类码

5.2 usb 文件系统简介
T = 总线拓扑结构(Lev, Prnt, Port, Cnt,
等),是指USB 设备和主机之间的连接方式
B = 带宽 (仅用于USB 主控制器)
D = 设备描述信息
P = 产品标识信息
S = 串描述符
C = 配置描述信息 (* 表示活动配置)
I = 接口描述信息
E = 终端点描述信息
一般格式:
d = 十进制数
x = 十六进制数
s = 字符串










原创粉丝点击