小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

詳解 lsusb命令

 張宏韜 2018-08-16

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

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

打開此文件,您若發(fā)現 USB節(jié)為 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文件系統(tǒng)下就會出現USB設備目錄,不過這時這個目錄是空的,沒有任何文件。這時您就必須掛接usbdevfs文件系統(tǒng),然后通過此文件系統(tǒng)檢測連接的設備。

在成功掛接usb文件系統(tǒng)之后,就會生成文件 /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設備類型描述:
---------------------
設備規(guī)范            設備類碼            接口類碼 
應用程序特定        -                      0xFE 
聲音接口             0x00                0x01 
通信設備             0x02                - 
CDC控制接口         -                   0x02 
CDC數據接口         -                   0x0A 
HID                     0x00                0x03 
HUB                    0x09                0x09 
批量存儲設備        0x00                0x08 
監(jiān)視器              same as HID         same as HID 
電源設備            same as HID         same as HID 
物理設備            -                   0x05 
打印機              -                   0x07 
供應商特定          -                   0xFF 

5.2 usb文件系統(tǒng)簡介
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
|    |           |                |         |         |         |__配置編號
|    |           |                |         |         |______缺省終端點的最大包尺寸 
|    |           |                |         |                   
|    |           |                |         |__設備協(xié)議
|    |           |                |__設備子類型
|    |           |__設備類型
|    |__設備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
|    |        |         |         |                 |        |         |__驅動名
|    |        |         |         |                 |        |__接口協(xié)議
|    |        |         |         |                 |__接口子類
|    |        |         |         |__接口類
|    |        |         |__中斷點數
|    |        |__可變設置編號
|    |__接口編號
|__接口信息標志

終端點描述信息

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)
|__終端點信息標志

舉個例子,這是在連接了一個USB鍵盤時的配置情況。
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


它的物理拓撲可用下圖來表示:

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

對于Linux下的usb設備而言,T:(總線拓撲)行用于生成連接在hub上的設備的描述信息,I:(接口信息)行可用于決定每個設備所用的驅動程序,C:(配置信息)可用于列出設備使用最大電流。

USB的枚舉過程

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

它的枚舉過程分析如下。

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

主機檢測到設備連接。

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

主機使用默認地址0讀取設備描述符。

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

當主機接收到這16個字節(jié)的字符后,就認為真正有設備連接了。

地址分配。

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

主機從新的地址獲取設備描述符。

主機收到設備發(fā)來的空的應答數據包后,確認地址分配成功。然后主機向D12發(fā)送第三個Setup包,再次要求獲取設備描述符。這個Setup包的內容一般是:80 06 00 01 00 00 12 00 。與上次不同的是,這次要求實際的描述符長度,其中的12(十六進制數)表示要求得到全部18字節(jié)的設備描述符。因為每次只能發(fā)送16字節(jié),因此程序中要分兩次完成此要求。第一次16字節(jié),第二次2字節(jié)。

主機讀取配置描述符。

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

讀取描述符集合。

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

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

數值配置。

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

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

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

USB 最主要的的是要理解   USB主機發(fā)送命令給設備,設備要對主機的命令進行響應, USB通訊的基本單位為 “包”   理解好“包”這個概念是學習USB的關鍵所在。

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

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

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



lsusb輸出內容詳細解讀

lsusb(選項)
-v:顯示USB設備的詳細信息; 
-s<總線:設備號>僅顯示指定的總線和(或)設備號的設備; 
-d<廠商:產品>:僅顯示指定廠商和產品編號的設備; 
-t:以樹狀結構顯示無理USB設備的層次; 
-V:顯示命令的版本信息。

插入usb鼠標后執(zhí)行l(wèi)susb的輸出內容如下:
-----------------------------------------
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

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

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

ID 15d9:0a37
    表示usb設備的ID(這個ID由芯片制造商設置,可以唯一表示該設備)
    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主控制器上接入了兩個設備:
    一個是usb根Hub -- 001
    一個是usb鼠標   -- 006

轉自: http://www.ahfyzs.com/content/14/0722/15/14129940_396294047.shtml



通用串行總線USB)被設計成為連接計算機外設的標準,如鍵盤、鼠標、打印機、數碼相機、便攜式媒體播放器、磁盤和網絡適配器等等 - 來源:Wikipedia

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

什么是lsusb

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

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

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

$ lsusb

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

lsusb會顯示驅動和內部連接到你系統(tǒng)的設備。

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

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

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

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

$ 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詳細信息

使用-v選項來開啟。下面是一個例子。

$ lsusb -v

Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1

找出連接了多少USB設備

使用下面的命令

$ find /dev/bus

接著你會看到像下面的輸出:

/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 選項,你可以打印特定設備的詳細信息。下面是一個博通藍牙設備的示例。

$ lsusb -D /dev/bus/usb/008/002

Device: ID 0a5c:217f Broadcom Corp. Bluetooth Controller
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x217f Bluetooth Controller
bcdDevice 3.60
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 216
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0×0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1 

找出大容量存儲設備

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

大容量存儲設備會有一個供應商名和ID。我們可以用它作為一個起點。

$ lsusb -v |grep -Ei ‘(idVendor|Mass\ Storage)’

idVendor 0×1005 Apacer Technology, Inc.
bInterfaceClass 8 Mass Storage

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

以樹層級結構輸出USB設備

使用 -t選項滿足這個要求

$ 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

數字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識別USB設備的詳細信息?;蛘吣憧梢栽L問Linux-USB.org獲取最新的USB ID列表。

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


轉自: http://www./Linux/2014-01/94874.htm



    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多