GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich überprüfen, ob der USB3.0-UASP-Modus (USB Attached SCSI Protocol) unter Linux aktiviert ist?

Wenn Sie den Namen Ihres Geräts kennen, finden Sie die USB-Bus- und Gerätenummern:

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

Sehen Sie sich dann den USB-Baum an und finden Sie Ihr Gerät (meins war 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
...

Sie sehen in meinem Fall den uas Fahrer.

Wenn UAS nicht verwendet wird, sehen Sie usb-storage (wie Dev 3 in meinem Fall).


Zusätzlich zu der Antwort von Austinmarton können Sie ausführen

lsusb -v -d VPID | grep -i interface

wobei VPID die in lsusb gemeldete Anbieter-/Produkt-ID ist . Zum Beispiel:

$ 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 

Beachten Sie, dass die einzige bInterfaceProtocol Der aufgeführte Wert ist 80 Bulk-Only . Dieses Gerät würde nicht ein UASP-konfiguriertes Gerät sein. Wenn Sie jedoch zusätzlich bInterfaceProtocol 98 sehen , das würde ein UASP-konfiguriertes Gerät sein.

Diese Werte sind dezimal angegeben, aber die Spezifikation bezieht sich auf sie durch ihre Hex-Werte...

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

Diese Informationen finden Sie in der Mass Storage Specification auf usb.org, Abschnitt 3 Protocol Codes, Table 2 – Mass Storage Transport Protocol.

Ich bin mir jedoch nicht sicher, ob dies Ihre erste oder zweite Frage beantwortet, da unklar ist, ob dieser Wert sowohl auf Computern/Geräten gemeldet wird, die UASP unterstützen, als auch auf solchen, die dies nicht tun.


Um die Antwort zu vervollständigen:

Wenn Ihr Controller dies nicht tut unterstützt UAS, der Linux-Kernel ist so freundlich, Ihnen dies mitzuteilen:

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

Außerdem zeigt lsusb eine Zeile für bInterfaceProtocol 98, aber sie ist leer:

$ 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,
Der menschliche Roboter im Inneren.


Linux
  1. Wie kann ich Windows 7 ohne DVD oder USB unter Linux installieren?

  2. Wie überprüfe ich, ob KPTI unter Linux aktiviert ist?

  3. Wie mounte ich ein Gerät unter Linux?

  4. Wie überprüfe ich, ob der Linux-Kernel Retpoline-fähig ist oder nicht?

  5. Wie kann ich überprüfen, ob cgroups auf meinem Linux-Host verfügbar sind?

So ermitteln Sie die Bandbreitennutzung von USB-Geräten unter Linux

Wie erhalte ich USB-Anbieter- und Produktinformationen programmgesteuert unter Linux?

Wie überprüfen Sie, wie viel Strom ein USB-Anschluss liefern kann?

Wie kann ich sicher sein, dass ich ein Gerät an einen USB 3-Anschluss angeschlossen habe?

Wie kann ich die Festplattenauslastung unter Linux überwachen?

Wie kann ich überprüfen, ob ein Volume dort gemountet ist, wo es Python verwenden soll?