Saltar al contenido

¿Cómo puedo verificar si el modo USB3.0 UASP (Protocolo SCSI conectado a USB) está habilitado en Linux?

Si encuentras algo que no comprendes puedes dejarnos un comentario y te responderemos rápidamente.

Solución:

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 de 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 

Note que el único bInterfaceProtocol el valor indicado es 80 Bulk-Only. Este dispositivo sería no ser un dispositivo configurado con UASP. Sin embargo, si ve un mensaje adicional bInterfaceProtocol 98, esta harí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 lo hace 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

HH,

R. Daneel olivaw,
El robot humano por dentro.

Nos encantaría que puedieras compartir este artículo si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *