dump urb data- 編kernel時,在driver/usb/下選擇usb monitor
 - mount -t debugfs debugfs /sys/kernel/debug
 - 之後在此目錄下就會看到usbmon目錄
 - 可以在此dump出urb的資料(ascii)
   
 - 可以使用/dev/usbmon[XX]來dump出raw data,之後自己寫程式去parse
 - 詳細文件參考Documentation/usb/usbmon.txt
   
 查看linux上所有USB裝置的詳細資訊
 
 - mount -t usbfs usbfs /proc/bus/usb/
 - cat /proc/bus/usb/devices
 - 各攔位介紹
 - http://www.linux-usb.org/USB-guide/c607.html
 
 - 詳細文件: Documentation/usb/proc_usb_info.txt
  
 /proc/bus/usb/devices各欄位資料- T開頭(topology)
 - Bus: which bus the device is on
 - Lev: the level of the device
 - level 00 for the root hub
 - level 01 for any device attached to the root hub
 - level 02 for devices attached to hubs at level 01, and so on.
 
 - Prnt: the parent device for this device
  - always 00 for the root hub
 - 01 for the devices attached to the root hub
 
 - Port: the port on the parent device
 - starting at 00 for the first port on each device. 
 - Prnt/Port is unique per bus.
 
 - Cnt: what number device this is, based on the enumeration order within that level of the topology, starting at 01 for the first device.
 - Dev#: what number device this is, irrespective of level, based on the bus enumeration order. This is unique per bus
 - Spd: what speed this device is running at, in Mbps (either 1.5 or 12 with the current version of USB). 
 - MxCh: how many devices can be connected to this device
 - 00 for anything except a hub.
  
 - Driver: which device driver is being used for this device
  - an entry of (none) indicates that no driver is being used.
 
 
 - D開頭(device descriptor)
 - Ver: which USB specification version the device claims to meet.
  - Cls: which device class the device is claiming to meet, in both hexadecimal and as a string.
  - A Cls entry of 00(>ifc) indicates that the device class specification compliance is interface dependent, and the interface descriptor should be read for device class information. 
 
 - Sub: which sub-class (within the Cls entry), the device meets. 
 - Prot: which protocol within a class or sub-class the device claims to meet. 
 - MxPS: how big the packets from Endpoint 0 are. 
 - #Cfgs: how many configurations this device has.
 
  
 
  
  
 
 
 =================================================
  exampleroot@ocgod-ubuntu9:/proc/bus/usb# cat devices 
 
 T:  Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
 B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
 D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
 P:  Vendor=1d6b ProdID=0001 Rev= 2.06
 S:  Manufacturer=Linux 2.6.28-18-generic uhci_hcd
 S:  Product=UHCI Host Controller
 S:  SerialNumber=0000:00:10.3
 C:* #Ifs= 1 Cfg#= 1 Atr=e0 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=   2 Ivl=255ms
 
 T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
 B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
 D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
 P:  Vendor=1d6b ProdID=0001 Rev= 2.06
 S:  Manufacturer=Linux 2.6.28-18-generic uhci_hcd
 S:  Product=UHCI Host Controller
 S:  SerialNumber=0000:00:10.2
 C:* #Ifs= 1 Cfg#= 1 Atr=e0 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=   2 Ivl=255ms
 
 T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
 B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
 D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
 P:  Vendor=1d6b ProdID=0001 Rev= 2.06
 S:  Manufacturer=Linux 2.6.28-18-generic uhci_hcd
 S:  Product=UHCI Host Controller
 S:  SerialNumber=0000:00:10.1
 C:* #Ifs= 1 Cfg#= 1 Atr=e0 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=   2 Ivl=255ms
 
 T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
 B:  Alloc= 34/900 us ( 4%), #Int=  3, #Iso=  0
 D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
 P:  Vendor=1d6b ProdID=0001 Rev= 2.06
 S:  Manufacturer=Linux 2.6.28-18-generic uhci_hcd
 S:  Product=UHCI Host Controller
 S:  SerialNumber=0000:00:10.0
 C:* #Ifs= 1 Cfg#= 1 Atr=e0 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=   2 Ivl=255ms
 
 T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
 D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
 P:  Vendor=13ba ProdID=0017 Rev= 0.01
 S:  Product=Generic USB K/B
 C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
 I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
 E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=24ms
 I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
 E:  Ad=82(I) Atr=03(Int.) MxPS=   5 Ivl=10ms
 
 T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=1.5 MxCh= 0
 D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
 P:  Vendor=04d9 ProdID=0499 Rev= 2.90
 C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
 I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
 E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
 
 T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 8
 B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
 D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
 P:  Vendor=1d6b ProdID=0002 Rev= 2.06
 S:  Manufacturer=Linux 2.6.28-18-generic ehci_hcd
 S:  Product=EHCI Host Controller
 S:  SerialNumber=0000:00:10.4
 C:* #Ifs= 1 Cfg#= 1 Atr=e0 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=   4 Ivl=256ms 
 | 
沒有留言:
張貼留言