[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RFC] Listing USB devices in hardware-summary



Because /proc/bus/usb/devices is going away in 2.6.31 (patch got merged in 
kernel upstream mainline today), we are going to need an alternative way 
to list USB devices in the hardware summary.

The file is being moved to debugfs, but I don't think mounting debugfs 
just to get this info is the correct solution for us.

Instead I propose to add the attached script in installation-report.
It is based on a script I found on the linux-usb mailing list [0] which 
reads sysfs to provide info similar to the /p/b/u/devices file.
I've simplified the script and rearranged its output because IMO a lot of 
the info in /p/b/u/devices is not all that relevant for us [1].

Below some examples for comparison of current and proposed info. The full 
output of the script for my notebook is attached.

Cheers,
FJP

[0] http://article.gmane.org/gmane.linux.usb.general/16828
[1] I've kept the serial number field for now; should we drop that too?


Example content from /p/b/u/devices
===================================
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 4
B:  Alloc=  0/800 us ( 0%), #Int=  4, #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.30 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:1a.7
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

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 44 Spd=480 MxCh= 4
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=02 MxPS=64 #Cfgs=  1
P:  Vendor=0424 ProdID=2504 Rev= 0.01
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=01 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=02 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

T:  Bus=01 Lev=02 Prnt=44 Port=01 Cnt=01 Dev#= 45 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=03f0 ProdID=3102 Rev= 1.00
S:  Manufacturer=Hewlett-Packard
S:  Product=PhotoSmart P1100
S:  SerialNumber=MX01B1B1HRID
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=01 Driver=usblp
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

Output from script for the same devices
=======================================
Bus 001 Device 001: EHCI Host Controller [1d6b:0002]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 ehci_hcd
   SerialNumber: 0000:00:1a.7
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Bus 001 Device 044: EHCI Host Controller [0424:2504]
   Class 09(hub) Subclass 00 Protocol 02
   Interface 00: Class 09(hub) Subclass 00 Protocol 02 Driver hub

Bus 001 Device 045: PhotoSmart P1100 [03f0:3102]
   Class 00(>ifc) Subclass 00 Protocol 00
   Manufacturer: Hewlett-Packard
   SerialNumber: MX01B1B1HRID
   Interface 00: Class 07(print) Subclass 01 Protocol 02 Driver usblp

Attachment: usb-list.sh
Description: application/shellscript

Bus 001 Device 001: EHCI Host Controller [1d6b:0002]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 ehci_hcd
   SerialNumber: 0000:00:1a.7
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Bus 001 Device 044: EHCI Host Controller [0424:2504]
   Class 09(hub) Subclass 00 Protocol 02
   Interface 00: Class 09(hub) Subclass 00 Protocol 02 Driver hub

Bus 001 Device 045: PhotoSmart P1100 [03f0:3102]
   Class 00(>ifc) Subclass 00 Protocol 00
   Manufacturer: Hewlett-Packard
   SerialNumber: MX01B1B1HRID
   Interface 00: Class 07(print) Subclass 01 Protocol 02 Driver usblp

Bus 001 Device 046: USB Receiver [046d:c50d]
   Class 00(>ifc) Subclass 00 Protocol 00
   Manufacturer: Logitech
   Interface 00: Class 03(HID) Subclass 01 Protocol 02 Driver usbhid

Bus 001 Device 047: USB Compliant Keyboard [05a4:9841]
   Class 00(>ifc) Subclass 00 Protocol 00
   Interface 00: Class 03(HID) Subclass 01 Protocol 01 Driver usbhid
   Interface 01: Class 03(HID) Subclass 01 Protocol 02 Driver usbhid

Bus 002 Device 001: EHCI Host Controller [1d6b:0002]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 ehci_hcd
   SerialNumber: 0000:00:1d.7
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Bus 003 Device 001: UHCI Host Controller [1d6b:0001]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 uhci_hcd
   SerialNumber: 0000:00:1a.0
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Bus 003 Device 002: HP Integrated Module [03f0:171d]
   Class e0(wlcon) Subclass 01 Protocol 01
   Manufacturer: Broadcom Corp
   Interface 00: Class e0(wlcon) Subclass 01 Protocol 01 Driver <none>
   Interface 01: Class e0(wlcon) Subclass 01 Protocol 01 Driver <none>
   Interface 02: Class ff(vendr) Subclass ff Protocol ff Driver <none>
   Interface 03: Class fe(apspe) Subclass 01 Protocol 00 Driver <none>

Bus 004 Device 001: UHCI Host Controller [1d6b:0001]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 uhci_hcd
   SerialNumber: 0000:00:1a.1
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Bus 005 Device 001: UHCI Host Controller [1d6b:0001]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 uhci_hcd
   SerialNumber: 0000:00:1d.0
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Bus 005 Device 002: Fingerprint Sensor [08ff:2580]
   Class ff(vendr) Subclass ff Protocol ff
   Interface 00: Class ff(vendr) Subclass ff Protocol ff Driver <none>

Bus 006 Device 001: UHCI Host Controller [1d6b:0001]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 uhci_hcd
   SerialNumber: 0000:00:1d.1
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Bus 007 Device 001: UHCI Host Controller [1d6b:0001]
   Class 09(hub) Subclass 00 Protocol 00
   Manufacturer: Linux 2.6.30 uhci_hcd
   SerialNumber: 0000:00:1d.2
   Interface 00: Class 09(hub) Subclass 00 Protocol 00 Driver hub

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: