In addition to the answer austinmarton gave, you can run
lsusb -v -d VPID | grep -i interface
where VPID is the vendor/product ID reported in lsusb
. For example:
$ lsusb -v -d 1234:5678 | grep -i interface
Couldn't open device, some information will be missing
bDeviceClass 0 (Defined at Interface level)
bNumInterfaces 1
Interface Descriptor:
bInterfaceNumber 0
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 6
Notice that the only bInterfaceProtocol
value listed is 80 Bulk-Only
. This device would not be a UASP-configured device. However, if you see an additional bInterfaceProtocol 98
, this would be a UASP-configured device.
These values are given in decimal, but the spec refers to them by their hex values...
50h (80d): USB Mass Storage Class Bulk-Only (BBB) Transport
62h (98d): Allocated by USB-IF for UAS.
This information can be found in the Mass Storage Specification on usb.org, section 3 Protocol Codes, Table 2 — Mass Storage Transport Protocol.
I'm not sure if this answers your first or second questions, though, since it's unclear if this value would be reported on both machines/devices that do support UASP and those that do not.