Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can you identify the chipset of a usb device in Linux?

Tags:

linux

usb

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.

like image 396
kwutchak Avatar asked Apr 16 '09 17:04

kwutchak


People also ask

How is a USB device identified?

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.


1 Answers

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.

like image 95
PiedPiper Avatar answered Sep 17 '22 23:09

PiedPiper