GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je vérifier si le mode USB3.0 UASP (USB Attached SCSI Protocol) est activé sous Linux ?

Si vous connaissez le nom de votre appareil, recherchez les numéros de bus USB et d'appareil :

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

Ensuite, regardez l'arborescence USB et trouvez votre appareil (le mien était 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
...

Vous pouvez voir dans mon cas le uas chauffeur.

Si UAS n'est pas utilisé, vous verrez usb-storage (comme Dev 3 dans mon cas).


En plus de la réponse donnée par austinmarton, vous pouvez exécuter

lsusb -v -d VPID | grep -i interface

où VPID est l'identifiant du fournisseur/produit indiqué dans lsusb . Par exemple :

$ 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 

Notez que le seul bInterfaceProtocol la valeur indiquée est 80 Bulk-Only . Cet appareil ne serait pas être un appareil configuré en UASP. Cependant, si vous voyez un bInterfaceProtocol 98 supplémentaire , cela serait être un appareil configuré en UASP.

Ces valeurs sont données en décimal, mais la spécification y fait référence par leurs valeurs hexadécimales...

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

Ces informations peuvent être trouvées dans la spécification de stockage de masse sur usb.org, section 3 Codes de protocole, tableau 2 — Protocole de transport de stockage de masse.

Je ne sais pas si cela répond à votre première ou deuxième question, car il n'est pas clair si cette valeur serait signalée à la fois sur les machines/appareils qui prennent en charge UASP et ceux qui ne le font pas.


Pour compléter la réponse :

Si votre manette ne le fait pas prend en charge UAS, le noyau Linux a la gentillesse de vous le dire :

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

De plus, lsusb affiche une ligne pour bInterfaceProtocol 98, mais elle est vide :

$ 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,
Le robot humain à l'intérieur.


Linux
  1. Comment identifier le chipset d'un périphérique USB sous Linux ?

  2. Comment puis-je être sûr d'avoir branché un appareil sur un port USB 3 ?

  3. Comment vérifier si KPTI est activé sous Linux ?

  4. Comment monter un appareil sous Linux ?

  5. Comment puis-je savoir quels disques durs sont connectés à une machine Linux ?

Comment vérifier quels modules Apache sont activés/chargés sous Linux

Comment vérifier la santé du SSD/HDD sous Linux

Comment trouver l'utilisation de la bande passante d'un périphérique USB sous Linux

Comment vérifier la puissance qu'un port USB peut fournir ?

Comment puis-je surveiller la charge du disque dur sous Linux ?

Comment puis-je déterminer si un périphérique iscsi est un système de fichiers Linux monté ?