Si conoce el nombre de su dispositivo, busque los números de dispositivo y bus USB:
$ lsusb
...
Bus 002 Device 005: ID xxxx:yyyy MyDeviceManufacturer
...
Luego mire el árbol USB y encuentre su dispositivo (el mío era Bus 2, Dev 5):
$ lsusb -t
...
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
|__ Port 2: Dev 5, If 0, Class=Mass Storage, Driver=uas, 5000M
|__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
...
Puedes ver en mi caso el uas
conductor.
Si UAS no está en uso, verá usb-storage
(como Dev 3 en mi caso).
Además de la respuesta que dio austinmarton, puede ejecutar
lsusb -v -d VPID | grep -i interface
donde VPID es el ID del proveedor/producto informado en lsusb
. Por ejemplo:
$ 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
Observe que el único bInterfaceProtocol
el valor listado es 80 Bulk-Only
. Este dispositivo no ser un dispositivo configurado con UASP. Sin embargo, si ve un bInterfaceProtocol 98
adicional , esto sería ser un dispositivo configurado con UASP.
Estos valores se dan en decimal, pero la especificación se refiere a ellos por sus valores hexadecimales...
50h (80d): USB Mass Storage Class Bulk-Only (BBB) Transport
62h (98d): Allocated by USB-IF for UAS.
Esta información se puede encontrar en la Especificación de almacenamiento masivo en usb.org, sección 3 Códigos de protocolo, Tabla 2:Protocolo de transporte de almacenamiento masivo.
Sin embargo, no estoy seguro de si esto responde a su primera o segunda pregunta, ya que no está claro si este valor se informará tanto en las máquinas/dispositivos que admiten UASP como en los que no.
Para completar la respuesta:
Si su controlador no admite UAS, el kernel de Linux tiene la amabilidad de decírselo:
$ dmesg | grep "UAS"
[58669.959610] usb 4-2: USB controller 0000:03:00.0 does not support streams, which are required by the UAS driver.
[58669.959613] usb 4-2: Please try an other USB controller if you wish to use UAS.
Además, lsusb muestra una línea para bInterfaceProtocol 98, pero está vacía:
$ lsusb -v -d 0080:a001 | grep -i interface
bDeviceClass 0 (Defined at Interface level)
bNumInterfaces 1
Interface Descriptor:
bInterfaceNumber 0
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Interface Descriptor:
bInterfaceNumber 0
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 98
iInterface 0
HTH,
R. Daneel olivaw,
El robot humano por dentro.