GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso verificare se la modalità USB3.0 UASP (USB Attached SCSI Protocol) è abilitata in Linux?

Se conosci il nome del tuo dispositivo, trova i numeri del bus USB e del dispositivo:

$ lsusb
...
Bus 002 Device 005: ID xxxx:yyyy MyDeviceManufacturer
...

Quindi guarda l'albero USB e trova il tuo dispositivo (il mio 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
...

Puoi vedere nel mio caso il uas autista.

Se UAS non è in uso, vedrai usb-storage (come Dev 3 nel mio caso).


Oltre alla risposta data da austinmarton, puoi correre

lsusb -v -d VPID | grep -i interface

dove VPID è l'ID fornitore/prodotto riportato in lsusb . Ad esempio:

$ 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 

Si noti che l'unico bInterfaceProtocol il valore elencato è 80 Bulk-Only . Questo dispositivo non essere un dispositivo configurato con UASP. Tuttavia, se vedi un ulteriore bInterfaceProtocol 98 , questo farebbe essere un dispositivo configurato con UASP.

Questi valori sono dati in decimale, ma le specifiche si riferiscono ad essi con i loro valori esadecimali...

50h (80d): USB Mass Storage Class Bulk-Only (BBB) Transport
62h (98d): Allocated by USB-IF for UAS. 

Queste informazioni possono essere trovate nella Specifica di archiviazione di massa su usb.org, sezione 3 Codici di protocollo, Tabella 2 — Protocollo di trasporto di archiviazione di massa.

Non sono sicuro che questo risponda alla tua prima o seconda domanda, tuttavia, poiché non è chiaro se questo valore verrà riportato su entrambe le macchine/dispositivi che supportano UASP e su quelli che non lo supportano.


Per completare la risposta:

Se il tuo controller non support UAS, il kernel Linux è così gentile da dirtelo:

$ 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.

Inoltre, lsusb mostra una riga per bInterfaceProtocol 98, ma è vuota:

$ 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,
Il robot umano all'interno.


Linux
  1. Come posso installare Windows 7 senza dvd o usb, su Linux?

  2. Come posso essere sicuro di aver collegato un dispositivo a una porta USB 3?

  3. Come posso verificare se KPTI è abilitato su Linux?

  4. Come montare un dispositivo in Linux?

  5. Come verificare se il kernel Linux è abilitato o meno per Retpoline?

Come trovare l'utilizzo della larghezza di banda del dispositivo USB su Linux

Come verificare se SELinux è abilitato o disabilitato

Come puoi identificare il chipset di un dispositivo USB in Linux?

Come posso verificare se PostgreSQL è installato o meno tramite script Linux?

Come si controlla quanta potenza può fornire una porta USB?

Come posso monitorare il carico del disco rigido su Linux?