I'd like to be able to identify the chipset a particular USB device is using. I know about lsusb (and now /proc/bus/usb/devices), but they don't provide as much information as lspci.
Here is an example of how I use lsusb:
(laptop:/proc/bus/usb) # lsusb -v -d 050d:805c Bus 001 Device 008: ID 050d:805c Belkin Components Device Descriptor: : idVendor 0x050d Belkin Components idProduct 0x805c bcdDevice 0.01 iManufacturer 1 Ralink iProduct 2 802.11 n WLAN :
... and /proc/bus/usb/devices (thanks to a comment on this thread):
T: Bus=01 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#= 8 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=050d ProdID=805c Rev= 0.01 S: Manufacturer=Ralink S: Product=802.11 n WLAN C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 4mA
Although I can see that I'm looking at the right USB device (Belkin USB 801.11n with Ralink chipset), I still can't determine the exact chipset version. The "0x805c" doesn't match a chipset number I'd expect ( 2500 - 2900 ).
I'm thinking that perhaps it isn't even possible to query this information across the usb bus?
Thanks in advance for any help.
Devices are identified by descriptors. Once the USB host has established a USB device is connected, and at what speed it should communicate, then the host will reset the USB device and attempt to read the descriptors to identify the USB device using a default address.
There is no general way to determine the chipset unless the manufacturer changes the ProductID for each different chipset, or updates the revision number. And even then you would need to know how the ProductID maps to the chipset.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With