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

Linux 系统USB设备检测

2013-09-22 10:37 351 查看
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或在/etc/fstab上介入none /proc/bus/usb usbdevfs defaults 0 0
然后通过/proc/bus/usb/devices文件的内容,您就可以得到 毗连 的装备 信息,包孕装备
标识和建造商标是等信息。
usb装备 范例 刻画 :装备
类型 装备 类码 接口类码

操纵措施特定 - 0xFE

声音接口 0x00 0x01

通讯 装备 0x02 -

CDC独霸接口 - 0x02

CDC数据接口 - 0x0A

HID 0x00 0x03

HUB 0x09 0x09

批量存储装备 0x00 0x08

监督 器 same as HID same as HID

电源装备 same as HID same as HID

物理装备 - 0x05

打印机 - 0x07

提供商特定 - 0xFF
5.2 usb文件体系 简介

T = 总线拓扑结构(Lev, Prnt, Port, Cnt, 等),是指USB装备 和主机之间的毗连 行动

B = 带宽 (仅用于USB主独霸器)

D = 装备 刻画 信息

P = 产物 标识信息

S = 串刻画 符

C = 设置 刻画 信息 (* 表示活动设置 )

I = 接口刻画 信息

E = 终端点刻画 信息
一样平常 技俩:

d = 十进制数

x = 十六进制数

s = 字符串
拓扑信息T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd

| | | | | | | | |__最大子装备

| | | | | | | |__装备 速率 (Mbps)

| | | | | | |__装备 编号

| | | | | |__这层的装备 数

| | | | |__此装备 的父毗连 器/端口

| | | |__父装备 号

| | |__此总线在拓扑结构中的条理

| |__总线编号

|__拓扑信息符号
带宽信息B: Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd

| | | |__同步哀求编号

| | |__间断 哀求号

| |__分派 给此总线的总带宽

|__带宽信息符号
装备 刻画 信息和产物 标识信息D: Ver=x.xx Cls=xx(s) Sub=xx Prot=xx MxPS=dd #Cfgs=dd

P: Vendor=xxxx ProdID=xxxx Rev=xx.xx
D: Ver=x.xx Cls=xx(sssss) Sub=xx Prot=xx MxPS=dd #Cfgs=dd

| | | | | | |__设置 编号

| | | | | |______缺省终端点的最大包尺寸

| | | | |

| | | | |__装备 协议

| | | |__装备 子范例

| | |__装备 范例

| |__装备 USB版本

|__装备 信息符号 编号#1
P: Vendor=xxxx ProdID=xxxx Rev=xx.xx

| | | |__产物 修订号

| | |__产物 标识编码

| |__建造商标识编码

|__装备 信息符号 编号#2
串刻画 信息S: Manufacturer=ssss

| |__装备 上读出的建造商信息

|__串刻画 信息
S: Product=ssss

| |__装备 上读出的产物 刻画 信息,对付 USB主独霸器此字段为"USB *HCI Root Hub"

|__串刻画 信息
S: SerialNumber=ssss

| |__装备 上读出的序列号,对付 USB主独霸器它是一个天生 的字符串,表示装备 标识

|__串刻画 信息
设置 刻画 信息C: #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA

| | | | |__最大电流(mA)

| | | |__属性

| | |__设置 编号

| |__接口数

|__设置 信息符号
接口刻画 信息(可为多个)I: If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss

| | | | | | | |__驱动名

| | | | | | |__接口协议

| | | | | |__接口子类

| | | | |__接口类

| | | |__间断 点数

| | |__可变设置编号

| |__接口编号

|__接口信息符号
终端点刻画 信息E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms

E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms

| | | | |__隔断

| | | |__终端点最大包尺寸

| | |__属性(终端点范例 )

| |__终端点所在(I=In,O=Out)

|__终端点信息符号 '
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: