免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
詳解 lsusb命令

USB設(shè)備檢測的一般過程
USB設(shè)備檢測也是通過/proc目錄下的USB文件系統(tǒng)進(jìn)行的。為了使一個(gè)USB設(shè)備能夠正常工作,必須要現(xiàn)在系統(tǒng)中插入U(xiǎn)SB橋接器模塊。在檢測開始時(shí),一般要先檢測是否存在/proc/bus/usb目錄,若不存在則嘗試插入U(xiǎn)SB橋接模塊。

現(xiàn)在一般的USB橋接器模塊有兩種類型,UHCI和OHCI。在決定插入那一個(gè)橋接器模塊時(shí),可以察看/proc/pci文件來決定。

打開此文件,您若發(fā)現(xiàn) USB節(jié)為 I/O at 0xHHHH格式(例如出現(xiàn) I/O at 0xe000 [0xe01f]),HHHH為16進(jìn)制數(shù),則橋接器類型為UHCI。

若是它為32 bit memory at 0xHH000000形式(例如出現(xiàn)32 bit memory at 0xee000000),HH為16進(jìn)制數(shù),則橋接器類型為OHCI。

但是若您的橋接器類型不滿足上述任何一種情況,唯一的解決辦法就是您嘗試插入這兩種模塊,直到成功為止。一般而言,UHCI類型的橋接器它的插入模塊是uhci或usb-uhci(由內(nèi)核版本決定);而對于OHCI類型的橋接器它的插入模塊是ohci或usb-ohci。

您在正確的插入了橋接器模塊之后,這時(shí)/proc文件系統(tǒng)下就會(huì)出現(xiàn)USB設(shè)備目錄,不過這時(shí)這個(gè)目錄是空的,沒有任何文件。這時(shí)您就必須掛接usbdevfs文件系統(tǒng),然后通過此文件系統(tǒng)檢測連接的設(shè)備。

在成功掛接usb文件系統(tǒng)之后,就會(huì)生成文件 /proc/bus/usb/devices,/proc/bus/usb/drivers和目錄/proc/bus/usb/busNo。

掛接usbdevfs文件

您可以通過如下操作實(shí)現(xiàn):
mount -t usbdevfs none /proc/bus/usb
或在/etc/fstab上加入
none /proc/bus/usb usbdevfs defaults 0 0
然后通過/proc/bus/usb/devices文件的內(nèi)容,您就可以獲得連接的設(shè)備信息,包括設(shè)備標(biāo)識(shí)和制造商標(biāo)是等信息。

usb設(shè)備類型描述:
---------------------
設(shè)備規(guī)范            設(shè)備類碼            接口類碼 
應(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)簡介
T = 總線拓?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ù)湫畔?/strong>

T:   Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd
|    |        |        |          |         |         |          |          |__最大子設(shè)備
|    |        |        |          |         |         |          |__設(shè)備速度(Mbps)
|    |        |        |          |         |         |__設(shè)備編號
|    |        |        |          |         |__這層的設(shè)備數(shù)
|    |        |        |          |__此設(shè)備的父連接器/端口
|    |        |        |__父設(shè)備號
|    |        |__此總線在拓?fù)浣Y(jié)構(gòu)中的層次
|    |__總線編號
|__拓?fù)湫畔?biāo)志

帶寬信息

B:   Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd
|    |                             |            |__同步請求編號
|    |                             |__中斷請求號
|    |__分配給此總線的總帶寬
|__帶寬信息標(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
|    |           |                |         |         |         |__配置編號
|    |           |                |         |         |______缺省終端點(diǎn)的最大包尺寸 
|    |           |                |         |                   
|    |           |                |         |__設(shè)備協(xié)議
|    |           |                |__設(shè)備子類型
|    |           |__設(shè)備類型
|    |__設(shè)備USB版本
|__設(shè)備信息標(biāo)志編號#1

P:   Vendor=xxxx ProdID=xxxx Rev=xx.xx
|    |              |               |__產(chǎn)品修訂號
|    |              |__產(chǎn)品標(biāo)識(shí)編碼
|    |__制造商標(biāo)識(shí)編碼
|__設(shè)備信息標(biāo)志編號#2

串描述信息

S:   Manufacturer=ssss
|    |__設(shè)備上讀出的制造商信息
|__串描述信息

S:   Product=ssss
|    |__設(shè)備上讀出的產(chǎn)品描述信息,對于USB主控制器此字段為"USB *HCI Root Hub"
|__串描述信息

S:   SerialNumber=ssss
|    |__設(shè)備上讀出的序列號,對于USB主控制器它是一個(gè)生成的字符串,表示設(shè)備標(biāo)識(shí)
|__串描述信息

配置描述信息

C:   #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA
|    |          |         |        |__最大電流(mA)
|    |          |         |__屬性
|    |          |__配置編號
|    |__接口數(shù)
|__配置信息標(biāo)志

接口描述信息(可為多個(gè))

I:   If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss
|    |        |         |         |                 |        |         |__驅(qū)動(dòng)名
|    |        |         |         |                 |        |__接口協(xié)議
|    |        |         |         |                 |__接口子類
|    |        |         |         |__接口類
|    |        |         |__中斷點(diǎn)數(shù)
|    |        |__可變設(shè)置編號
|    |__接口編號
|__接口信息標(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)類型)
|    |__終端點(diǎn)地址(I=In,O=Out)
|__終端點(diǎn)信息標(biāo)志

舉個(gè)例子,這是在連接了一個(gè)USB鍵盤時(shí)的配置情況。
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 41/900 us ( 5%), #Int= 3, #Iso= 0

D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI Root Hub
S: SerialNumber=e000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 3
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=07e4 ProdID=a961 Rev= 0.01
S: Manufacturer=ALCOR
S: Product=Movado USB Keyboard
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms

T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=07e4 ProdID=a961 Rev= 0.01
S: Manufacturer=ALCOR
S: Product=Movado USB Keyboard
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=hid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl= 10ms
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=hid
E: Ad=82(I) Atr=03(Int.) MxPS= 4 Ivl=255ms


它的物理拓?fù)淇捎孟聢D來表示:

<img src="http://s9.sinaimg.cn/middle/4ba5b45egc5019b7a79d8&690" alt="Linux-USB-檢測枚舉-1  lsusb輸出內(nèi)容詳細(xì)解讀" title="Linux-USB-檢測枚舉-1  lsusb輸出內(nèi)容詳細(xì)解讀" height="253" width="368" />

對于Linux下的usb設(shè)備而言,T:(總線拓?fù)洌┬杏糜谏蛇B接在hub上的設(shè)備的描述信息,I:(接口信息)行可用于決定每個(gè)設(shè)備所用的驅(qū)動(dòng)程序,C:(配置信息)可用于列出設(shè)備使用最大電流。

USB的枚舉過程

所謂USB設(shè)備與主機(jī)是通過檢測Vcc上拉電阻的變化來確定是否有設(shè)備連接的。在D12內(nèi)部集成了1.5kΩ的上拉電阻,默認(rèn)狀態(tài)下不與Vcc相連,程序運(yùn)行時(shí)可以向D12發(fā)送連接命令使1.5kΩ電阻連接到Vcc,這樣主機(jī)便檢測到有設(shè)備連接。

它的枚舉過程分析如下。

設(shè)備連接到總線后,設(shè)備從總線獲得5V電源,程序首先初始化,端口,然后向D12發(fā)出USB連接命令。

主機(jī)檢測到設(shè)備連接。

主機(jī)向設(shè)備發(fā)出第一個(gè)信號:總線復(fù)位??偩€復(fù)位產(chǎn)生一個(gè)中斷,并且D12器件在默認(rèn)地址0處使能,以便在接下來的枚舉過程中使用地址0傳輸命令和數(shù)據(jù),同 時(shí)中斷寄存器的總線復(fù)位位被置為1。在程序中的表現(xiàn)是,D12向主循環(huán)請求中斷,進(jìn)入中斷處理程序USB_int_handler(),讀取中斷寄存器, 確定中斷的類型,進(jìn)行相應(yīng)的處理。

主機(jī)使用默認(rèn)地址0讀取設(shè)備描述符。

具體過程是:主機(jī)向D12發(fā)送第一個(gè)Setup包,每個(gè)Setup包都是8個(gè)字節(jié),第一個(gè)包Get Descriptor的內(nèi)容為:80 06 00 01 00 00 40 00 ,數(shù)據(jù)為16進(jìn)制表示。其中的40表示返回的數(shù)據(jù)最大長度為40H字節(jié)。此Setup包存儲(chǔ)在D12的端點(diǎn)0緩沖區(qū)中,并產(chǎn)生一個(gè)外部中斷。(這時(shí)在 D12的中斷寄存器中保存了中斷的類型:端點(diǎn)0的OUT中斷,即中斷寄存器字節(jié)1的值應(yīng)為0x01)進(jìn)入中斷服務(wù)程序后,由于D12端點(diǎn)0的緩沖區(qū)只有 16個(gè)字節(jié),所以單片機(jī)就先發(fā)送16個(gè)字節(jié)的設(shè)備描述符。

當(dāng)主機(jī)接收到這16個(gè)字節(jié)的字符后,就認(rèn)為真正有設(shè)備連接了。

地址分配。

主機(jī)向D12發(fā)送第二個(gè)Setup包,這是一個(gè)含有指定地址的數(shù)據(jù)包,其內(nèi)容一般為:00 05 02 00 00 00 00 00 ,其中的02就表示主機(jī)為設(shè)備分配的地址為0x02,在以后的通信里設(shè)備就只對0x02地址的信息作出應(yīng)答。D12收到這個(gè)Setup包后同樣產(chǎn)生一個(gè)中斷(端點(diǎn)0的OUT中斷),需要注意的是單片機(jī)處理這個(gè)中斷時(shí)需要向主機(jī)返回一個(gè)長度為0的空數(shù)據(jù)包。

主機(jī)從新的地址獲取設(shè)備描述符。

主機(jī)收到設(shè)備發(fā)來的空的應(yīng)答數(shù)據(jù)包后,確認(rèn)地址分配成功。然后主機(jī)向D12發(fā)送第三個(gè)Setup包,再次要求獲取設(shè)備描述符。這個(gè)Setup包的內(nèi)容一般是:80 06 00 01 00 00 12 00 。與上次不同的是,這次要求實(shí)際的描述符長度,其中的12(十六進(jìn)制數(shù))表示要求得到全部18字節(jié)的設(shè)備描述符。因?yàn)槊看沃荒馨l(fā)送16字節(jié),因此程序中要分兩次完成此要求。第一次16字節(jié),第二次2字節(jié)。

主機(jī)讀取配置描述符。

成功得到18字節(jié)的設(shè)備描述符后,主機(jī)向D12發(fā)送第四個(gè)Setup包,要求得到設(shè)備的配置描述符。這個(gè)Setup包的數(shù)據(jù)為:80 06 00 02 00 00 09 00 。其中的09指定設(shè)備返回9字節(jié)數(shù)據(jù),這正是配置描述符的長度。

讀取描述符集合。

成功得到9字節(jié)的配置描述符后,主機(jī)向D12發(fā)送第五個(gè)Setup包,要求得到設(shè)備的配置描述符、接口描述符、端點(diǎn)描述符的集合。這次Setup包的內(nèi)容是:80 06 00 02 00 00 FF 00 。由于不知道描述符集合的真實(shí)長度,因此它要求得到256字節(jié)。

到這一步,主機(jī)現(xiàn)在應(yīng)該已經(jīng)發(fā)現(xiàn)新硬件并為新設(shè)備安裝好驅(qū)動(dòng)程序。對于以上過程,主機(jī)是在總線驅(qū)動(dòng)層處理,下面的一步,也是典型枚舉過程的最后一步,就需要設(shè)備驅(qū)動(dòng)程序來做了。

數(shù)值配置。

主機(jī)得到各種描述符之后,認(rèn)為設(shè)備的信息已經(jīng)齊全,便對設(shè)備進(jìn)行配置,使設(shè)備從地址狀態(tài)進(jìn)入配置狀態(tài)。

主機(jī)向D12發(fā)送第六個(gè)Setup包,其數(shù)據(jù)為:00 09 01 00 00 00 00 00 。程序中需要調(diào)用Set Configuration()函數(shù)處理此事件,允許所有端點(diǎn)進(jìn)入工作狀態(tài)。

至此,USB枚舉過程結(jié)束,設(shè)備可以正常使用了。在這個(gè)過程中D12指示燈根據(jù)通信的狀況間歇閃爍。

USB 最主要的的是要理解   USB主機(jī)發(fā)送命令給設(shè)備,設(shè)備要對主機(jī)的命令進(jìn)行響應(yīng), USB通訊的基本單位為 “包”   理解好“包”這個(gè)概念是學(xué)習(xí)USB的關(guān)鍵所在。

包有如下分類: 
分別是令牌包、數(shù)據(jù)包、握手包和特殊包(其實(shí)是由PID決定的)

令牌包:可分為輸入包、輸出包、設(shè)置包和幀起始包(注意這里的輸入包是用于設(shè)置輸入命令的,輸出包是用來設(shè)置輸出命令的,而不是放據(jù)數(shù)的)其中輸入包、輸出包和設(shè)置包的格式都是一樣的: SYNC+PID+ADDR+ENDP+CRC5(五位的校驗(yàn)碼) 
幀起始包: SYNC+PID+11位FRAM+CRC5(五位的校驗(yàn)碼) 
數(shù)據(jù)包:分為DATA0包和DATA1包,當(dāng)USB發(fā)送數(shù)據(jù)的時(shí)候,當(dāng)一次發(fā)送的數(shù)據(jù)長度大于相應(yīng)端點(diǎn)的容量時(shí),就需要把數(shù)據(jù)包分為好幾個(gè)包,分批發(fā) 送,DATA0包和DATA1包交替發(fā)送,即如果第一個(gè)數(shù)據(jù)包是DATA0,那第二個(gè)數(shù)據(jù)包就是DATA1。但也有例外情況,在同步傳輸中(四類傳輸類型 中之一),所有的數(shù)據(jù)包都是為DATA0,格式如下: 
SYNC+PID+0~1023字節(jié)+CRC16 
握手包:結(jié)構(gòu)最為簡單的包,格式如下 
SYNC+PID

下面舉幾個(gè)例子來說明USB的通訊過程: 
1:主機(jī)想要向設(shè)備傳送一串?dāng)?shù)據(jù)。 過程如下: 
(1)   主機(jī)向從機(jī)發(fā)送 “令牌包”,令牌包的類型為輸出包,表示主機(jī)要向從機(jī)發(fā)送數(shù)據(jù)了。 
(2)   主機(jī)向從機(jī)發(fā)送完令牌以后,USB處理器件根據(jù)發(fā)送的令牌,會(huì)將中斷狀態(tài)寄存器標(biāo)志置位,從機(jī)CPU通過查詢USB處理器件的中斷狀態(tài)寄存器,對主機(jī)的令牌包進(jìn)行響應(yīng) 
(3)   從機(jī)判別出中斷類型,于是,準(zhǔn)備從主機(jī)接收數(shù)據(jù)。 
(4)   從機(jī)準(zhǔn)備好了,于是主機(jī)開始發(fā)送“數(shù)據(jù)包” 這時(shí),USB處理器件會(huì)自動(dòng)將從主發(fā)送過來的數(shù)據(jù)放如它的內(nèi)部緩沖區(qū)內(nèi),接收完這個(gè)數(shù)據(jù)包后,從機(jī)向主機(jī)發(fā)送“應(yīng)答包” 
這就是一個(gè)完整的通訊過程。 
由以上可以看出,USB若是想要傳送數(shù)據(jù),那么主機(jī)必須先發(fā)一個(gè) IN 或OUT的令牌包,然后發(fā)送DATA0,或DATA1數(shù)據(jù)包。 
簡單的用現(xiàn)實(shí)生活中的事件進(jìn)行描述: 老板想讓員工去做一件事情,老板 先會(huì)發(fā)出命令,告訴要做什么事情,員工準(zhǔn)備好以后呢,老板再把做這件事情的經(jīng)費(fèi)發(fā)放給員工,當(dāng)員工把發(fā)放的經(jīng)費(fèi)清點(diǎn)以后,發(fā)現(xiàn)數(shù)目正確,他會(huì)給老板一個(gè)回應(yīng)信息,告訴老板,錢已經(jīng)收到了,而且數(shù)目正確。 
老板想讓員工做的事: 對應(yīng)USB通訊里的令牌包。 
老板想要發(fā)放的經(jīng)費(fèi): 對應(yīng)USB通訊里的數(shù)據(jù)包。 
員工給老板的回應(yīng):    對應(yīng)USB通訊里的握手包。 
這里尤其需要注意一個(gè)問題就是: 
USB主機(jī)向設(shè)備發(fā)送令牌包的時(shí)候,接收令牌是有USB器件來完成的,而不是有從機(jī)CPU來完成的,如主機(jī)發(fā)送一個(gè)如下的令牌: 
SYNC+PID+ADDR+ENDP+CRC5 
USB器件回根據(jù)PID的類型來判斷是哪種類型的令牌 根據(jù)ADDR的值來判斷是否是和自己通訊,根據(jù)ENDP的值來判斷是和哪個(gè)端點(diǎn)進(jìn)行通訊,根據(jù)校驗(yàn)來判斷,數(shù)據(jù)傳送是否無誤。根據(jù)以上的令牌包信息,USB器件會(huì)將其內(nèi)部的中斷狀態(tài)寄存器相應(yīng)的位置位,從機(jī)CPU可以查詢這個(gè)中斷狀態(tài)寄存器來進(jìn)行相應(yīng)的操作。



lsusb輸出內(nèi)容詳細(xì)解讀

lsusb(選項(xiàng))
-v:顯示USB設(shè)備的詳細(xì)信息; 
-s<總線:設(shè)備號>僅顯示指定的總線和(或)設(shè)備號的設(shè)備; 
-d<廠商:產(chǎn)品>:僅顯示指定廠商和產(chǎn)品編號的設(shè)備; 
-t:以樹狀結(jié)構(gòu)顯示無理USB設(shè)備的層次; 
-V:顯示命令的版本信息。

插入usb鼠標(biāo)后執(zhí)行l(wèi)susb的輸出內(nèi)容如下:
-----------------------------------------
Bus 005 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 006: ID 15d9:0a37
Bus 002 Device 001: ID 0000:0000

內(nèi)容解讀:
-----------------------------------------
Bus 005
 
   表示第五個(gè)usb主控制器(機(jī)器上總共有5個(gè)usb主控制器 -- 可以通過命令lspci | grep USB查看)

Device 006
    表示系統(tǒng)給usb鼠標(biāo)分配的設(shè)備號(devnum),同時(shí)也可以看到該鼠標(biāo)是插入到了第二個(gè)usb主控制器
    006        usb_device.devnum
    /sys/devices/pci0000:00/0000:00:1d.1/usb2/2-2/devnum

ID 15d9:0a37
    表示usb設(shè)備的ID(這個(gè)ID由芯片制造商設(shè)置,可以唯一表示該設(shè)備)
    15d9    usb_device_descriptor.idVendor
    0a37    usb_device_descriptor.idProduct
    /sys/devices/pci0000:00/0000:00:1d.1/usb2/2-2/idVendor

Bus 002 Device 006: ID 15d9:0a37
Bus 002 Device 001: ID 0000:0000
    表示002號usb主控制器上接入了兩個(gè)設(shè)備:
    一個(gè)是usb根Hub -- 001
    一個(gè)是usb鼠標(biāo)   -- 006

轉(zhuǎn)自: http://www.360doc.com/content/14/0722/15/14129940_396294047.shtml



通用串行總線USB)被設(shè)計(jì)成為連接計(jì)算機(jī)外設(shè)的標(biāo)準(zhǔn),如鍵盤、鼠標(biāo)、打印機(jī)、數(shù)碼相機(jī)、便攜式媒體播放器、磁盤和網(wǎng)絡(luò)適配器等等 - 來源:Wikipedia

它已經(jīng)成為了一個(gè)工業(yè)標(biāo)準(zhǔn),現(xiàn)在很難看到一個(gè)沒有USB口的計(jì)算機(jī)了。USB閃存的使用使得它更加流行。在Linux上,我們可以使用lsusb來列出USB設(shè)備和它的屬性。

什么是lsusb

在它的手冊上,lsusb定義成:

顯示系統(tǒng)中以及連接到系統(tǒng)的USB總線信息的工具。

如何運(yùn)行l(wèi)susb? 要運(yùn)行l(wèi)susb,你可以直接在控制臺(tái)輸入lsusb。

$ lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 002 Device 003: ID 17ef:4811 Lenovo Integrated Webcam [R5U877]Bus 008 Device 002: ID 0a5c:217f Broadcom Corp. Bluetooth Controller

lsusb會(huì)顯示驅(qū)動(dòng)和內(nèi)部連接到你系統(tǒng)的設(shè)備。

下面介紹如何理解輸出。我抓取了上面輸出的最后一行:

Bus 008 Device 002 : ID 0a5c:217f Broadcom Corp. Bluetooth Controller
  • Bus 008 : 指明設(shè)備連接到哪(哪條總線)
  • Device 002 : 表明這是連接到總線上的第二臺(tái)設(shè)備
  • ID : 設(shè)備的ID
  • Broadcom Corp. Bluetooth Controller :生產(chǎn)商名字和設(shè)備名

我們同樣可以看到在我們的系統(tǒng)中同時(shí)使用了USB2.0 root hub驅(qū)動(dòng)和USB 1.1 root hub驅(qū)動(dòng)。

dmesg命令同樣可以看到。下面是一個(gè)例子。

$ dmesg |grep -i usb[ 0.353138] usbcore: registered new interface driver usbfs[ 0.353150] usbcore: registered new interface driver hub[ 0.353182] usbcore: registered new device driver usb[ 0.730026] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver[ 0.730116] ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1[ 0.748019] ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00[ 0.748169] hub 1-0:1.0: USB hub found[ 0.748336] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2[ 0.768019] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00[ 0.768147] hub 2-0:1.0: USB hub found[ 0.768236] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver[ 0.768251] uhci_hcd: USB Universal Host Controller Interface driver 

如何列出USB詳細(xì)信息

使用-v選項(xiàng)來開啟。下面是一個(gè)例子。

$ lsusb -vInterface Descriptor:bLength 9bDescriptorType 4bInterfaceNumber 1bAlternateSetting 5bNumEndpoints 2bInterfaceClass 224 WirelessbInterfaceSubClass 1 Radio FrequencybInterfaceProtocol 1 BluetoothiInterface 0Endpoint Descriptor:bLength 7bDescriptorType 5bEndpointAddress 0×83 EP 3 INbmAttributes 1Transfer Type IsochronousSynch Type NoneUsage Type DatawMaxPacketSize 0×0040 1x 64 bytesbInterval 1Endpoint Descriptor:bLength 7bDescriptorType 5bEndpointAddress 0×03 EP 3 OUTbmAttributes 1Transfer Type IsochronousSynch Type NoneUsage Type DatawMaxPacketSize 0×0040 1x 64 bytesbInterval 1

找出連接了多少USB設(shè)備

使用下面的命令

$ find /dev/bus

接著你會(huì)看到像下面的輸出:

/dev/bus/dev/bus/usb/dev/bus/usb/008/dev/bus/usb/008/002/dev/bus/usb/008/001/dev/bus/usb/007/dev/bus/usb/007/001/dev/bus/usb/006/dev/bus/usb/006/001/dev/bus/usb/005/dev/bus/usb/005/001/dev/bus/usb/004/dev/bus/usb/004/001/dev/bus/usb/003/dev/bus/usb/003/001/dev/bus/usb/002/dev/bus/usb/002/004/dev/bus/usb/002/003/dev/bus/usb/002/001/dev/bus/usb/001/dev/bus/usb/001/001

使用lsusb 命令 的-D 選項(xiàng),你可以打印特定設(shè)備的詳細(xì)信息。下面是一個(gè)博通藍(lán)牙設(shè)備的示例。

$ lsusb -D /dev/bus/usb/008/002Device: ID 0a5c:217f Broadcom Corp. Bluetooth ControllerCouldn’t open device, some information will be missingDevice Descriptor:bLength 18bDescriptorType 1bcdUSB 2.00bDeviceClass 224 WirelessbDeviceSubClass 1 Radio FrequencybDeviceProtocol 1 BluetoothbMaxPacketSize0 64idVendor 0x0a5c Broadcom Corp.idProduct 0x217f Bluetooth ControllerbcdDevice 3.60iManufacturer 1iProduct 2iSerial 3bNumConfigurations 1Configuration Descriptor:bLength 9bDescriptorType 2wTotalLength 216bNumInterfaces 4bConfigurationValue 1iConfiguration 0bmAttributes 0xe0Self PoweredRemote WakeupMaxPower 0mAInterface Descriptor:bLength 9bDescriptorType 4bInterfaceNumber 0bAlternateSetting 0bNumEndpoints 3bInterfaceClass 224 WirelessbInterfaceSubClass 1 Radio FrequencybInterfaceProtocol 1 BluetoothiInterface 0Endpoint Descriptor:bLength 7bDescriptorType 5bEndpointAddress 0×81 EP 1 INbmAttributes 3Transfer Type InterruptSynch Type NoneUsage Type DatawMaxPacketSize 0×0010 1x 16 bytesbInterval 1Endpoint Descriptor:bLength 7bDescriptorType 5bEndpointAddress 0×82 EP 2 INbmAttributes 2Transfer Type BulkSynch Type NoneUsage Type DatawMaxPacketSize 0×0040 1x 64 bytesbInterval 1Endpoint Descriptor:bLength 7bDescriptorType 5bEndpointAddress 0×02 EP 2 OUTbmAttributes 2Transfer Type BulkSynch Type NoneUsage Type DatawMaxPacketSize 0×0040 1x 64 bytesbInterval 1 

找出大容量存儲(chǔ)設(shè)備

既然 lsusb -v給我們很詳細(xì)的信息,那么你或許會(huì)錯(cuò)過一些信息。我們可以使用grep命令指定特定的信息。

大容量存儲(chǔ)設(shè)備會(huì)有一個(gè)供應(yīng)商名和ID。我們可以用它作為一個(gè)起點(diǎn)。

$ lsusb -v |grep -Ei ‘(idVendor|Mass\ Storage)’idVendor 0×1005 Apacer Technology, Inc.bInterfaceClass 8 Mass Storage

你可以看到,我們系統(tǒng)上有一個(gè)來自Apacer Technology, Inc的USB大容量存儲(chǔ)設(shè)備。

以樹層級結(jié)構(gòu)輸出USB設(shè)備

使用 -t選項(xiàng)滿足這個(gè)要求

$ lsusb -t/: Bus 08.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M/: Bus 07.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M/: Bus 06.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M/: Bus 05.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M/: Bus 04.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M/: Bus 03.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M/: Bus 02.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M|__ Port 1: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M|__ Port 6: Dev 3, If 0, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M|__ Port 6: Dev 3, If 1, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M/: Bus 01.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M

數(shù)字12M和480M 是指USB類型的傳輸速率。

  • 12M 意味著 USB 1.0 / 1.1的速率是 12Mbit/s
  • 480M 意味著 USB 2.0的速率是 480Mbit/s

如果你找到5.0G,那意味這你有USB 3.0類型接口。它有5.0Gbit/s的傳輸速率。Linux從/var/lib/usbutils/usb.ids識(shí)別USB設(shè)備的詳細(xì)信息?;蛘吣憧梢栽L問Linux-USB.org獲取最新的USB ID列表。

這些就是lsusb命令的基礎(chǔ)。你可以用lsusb命令對你的系統(tǒng)上的USB設(shè)備做一個(gè)診斷。一般來說,你可以通過lsusb的手冊探索命令的更多詳細(xì)細(xì)節(jié)。只要輸入man lsab來打開它的手冊。


轉(zhuǎn)自: http://www.linuxidc.com/Linux/2014-01/94874.htm



本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服