- 論壇徽章:
- 0
|
USB設(shè)備檢測(cè)也是通過(guò)/proc目錄下的USB文件系統(tǒng)進(jìn)行的。為了使一個(gè)USB設(shè)備能夠正常工作,必須要現(xiàn)在系統(tǒng)中插入U(xiǎn)SB橋接器模塊。在檢測(cè)開(kāi)始時(shí),一般要先檢測(cè)是否存在/proc/bus/usb目錄,若不存在則嘗試插入U(xiǎn)SB橋接模塊。
現(xiàn)在一般的USB橋接器模塊有兩種類(lèi)型,UHCI和OHCI。在決定插入那一個(gè)橋接器模塊時(shí),可以察看/proc/pci文件來(lái)決定。打開(kāi)此文件,您若發(fā)現(xiàn)USB節(jié)為 I/O at 0xHHHH格式(例如出現(xiàn) I/O at 0xe000 [0xe01f]),HHHH為16進(jìn)制數(shù),則橋接器類(lèi)型為UHCI。若是它為32 bit memory at 0xHH000000形式(例如出現(xiàn)32 bit memory at 0xee000000),HH為16進(jìn)制數(shù),則橋接器類(lèi)型為OHCI。但是若您的橋接器類(lèi)型不滿(mǎn)足上述任何一種情況,唯一的解決辦法就是您嘗試插入這兩種模塊,直到成功為止。一般而言,UHCI類(lèi)型的橋接器它的插入模塊是uhci或usb-uhci(由內(nèi)核版本決定);而對(duì)于OHCI類(lèi)型的橋接器它的插入模塊是ohci或usb-ohci。
您在正確的插入了橋接器模塊之后,這時(shí)/proc文件系統(tǒng)下就會(huì)出現(xiàn)USB設(shè)備目錄,不過(guò)這時(shí)這個(gè)目錄是空的,沒(méi)有任何文件。這時(shí)您就必須掛接usbdevfs文件系統(tǒng),然后通過(guò)此文件系統(tǒng)檢測(cè)連接的設(shè)備。在成功掛接usb文件系統(tǒng)之后,就會(huì)生成文件/proc/bus/usb/devices,/proc/bus/usb/drivers和目錄/proc/bus/usb/busNo。掛接usbdevfs文件您可以通過(guò)如下操作實(shí)現(xiàn):
mount -t usbdevfs none /proc/bus/usb或在/etc/fstab上加入none /proc/bus/usb usbdevfs defaults 0 0
然后通過(guò)/proc/bus/usb/devices文件的內(nèi)容,您就可以獲得連接的設(shè)備信息,包括設(shè)備標(biāo)識(shí)和制造商標(biāo)是等信息。
usb設(shè)備類(lèi)型描述:
設(shè)備規(guī)范 設(shè)備類(lèi)碼 接口類(lèi)碼
應(yīng)用程序特定 - 0xFE
聲音接口 0x00 0x01
通信設(shè)備 0x02 -
CDC控制接口 - 0x02
CDC數(shù)據(jù)接口 - 0x0A
HID 0x00 0x03
HUB 0x09 0x09
批量存儲(chǔ)設(shè)備 0x00 0x08
監(jiān)視器 same as HID same as HID
電源設(shè)備 same as HID same as HID
物理設(shè)備 - 0x05
打印機(jī) - 0x07
供應(yīng)商特定 - 0xFF
5.2 usb文件系統(tǒng)簡(jiǎn)介
T = 總線(xiàn)拓?fù)浣Y(jié)構(gòu)(Lev, Prnt, Port, Cnt, 等),是指USB設(shè)備和主機(jī)之間的連接方式
B = 帶寬 (僅用于USB主控制器)
D = 設(shè)備描述信息
P = 產(chǎn)品標(biāo)識(shí)信息
S = 串描述符
C = 配置描述信息 (* 表示活動(dòng)配置)
I = 接口描述信息
E = 終端點(diǎn)描述信息
一般格式:
d = 十進(jìn)制數(shù)
x = 十六進(jìn)制數(shù)
s = 字符串
拓?fù)湫畔?br />
T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd
| | | | | | | | |__最大子設(shè)備
| | | | | | | |__設(shè)備速度(Mbps)
| | | | | | |__設(shè)備編號(hào)
| | | | | |__這層的設(shè)備數(shù)
| | | | |__此設(shè)備的父連接器/端口
| | | |__父設(shè)備號(hào)
| | |__此總線(xiàn)在拓?fù)浣Y(jié)構(gòu)中的層次
| |__總線(xiàn)編號(hào)
|__拓?fù)湫畔?biāo)志
帶寬信息
B: Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd
| | | |__同步請(qǐng)求編號(hào)
| | |__中斷請(qǐng)求號(hào)
| |__分配給此總線(xiàn)的總帶寬
|__帶寬信息標(biāo)志
設(shè)備描述信息和產(chǎn)品標(biāo)識(shí)信息
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
| | | | | | |__配置編號(hào)
| | | | | |______缺省終端點(diǎn)的最大包尺寸
| | | | |
| | | | |__設(shè)備協(xié)議
| | | |__設(shè)備子類(lèi)型
| | |__設(shè)備類(lèi)型
| |__設(shè)備USB版本
|__設(shè)備信息標(biāo)志編號(hào)#1
P: Vendor=xxxx ProdID=xxxx Rev=xx.xx
| | | |__產(chǎn)品修訂號(hào)
| | |__產(chǎn)品標(biāo)識(shí)編碼
| |__制造商標(biāo)識(shí)編碼
|__設(shè)備信息標(biāo)志編號(hào)#2
串描述信息
S: Manufacturer=ssss
| |__設(shè)備上讀出的制造商信息
|__串描述信息
S: Product=ssss
| |__設(shè)備上讀出的產(chǎn)品描述信息,對(duì)于USB主控制器此字段為"USB *HCI Root Hub"
|__串描述信息
S: SerialNumber=ssss
| |__設(shè)備上讀出的序列號(hào),對(duì)于USB主控制器它是一個(gè)生成的字符串,表示設(shè)備標(biāo)識(shí)
|__串描述信息
配置描述信息
C: #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA
| | | | |__最大電流(mA)
| | | |__屬性
| | |__配置編號(hào)
| |__接口數(shù)
|__配置信息標(biāo)志
接口描述信息(可為多個(gè))
I: If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss
| | | | | | | |__驅(qū)動(dòng)名
| | | | | | |__接口協(xié)議
| | | | | |__接口子類(lèi)
| | | | |__接口類(lèi)
| | | |__中斷點(diǎn)數(shù)
| | |__可變?cè)O(shè)置編號(hào)
| |__接口編號(hào)
|__接口信息標(biāo)志
終端點(diǎn)描述信息
E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms
E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms
| | | | |__間隔
| | | |__終端點(diǎn)最大包尺寸
| | |__屬性(終端點(diǎn)類(lèi)型)
| |__終端點(diǎn)地址(I=In,O=Out)
|__終端點(diǎn)信息標(biāo)志 '
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/17019/showart_98719.html |
|