J'ai un ordinateur portable sous Ubuntu 15.04 (3.19.0-21-generic) et un boîtier de disque dur externe SATA 2.5 "USB3.0 qui affirme prendre en charge le mode UASP ( le modèle S2510BPU33 de StarTech ). Je n'ai aucun problème à monter ou à lire/écrire le lecteur.
J'aimerais pouvoir confirmer ce qui suit:
Où puis-je trouver cette information?
Si vous connaissez le nom de votre périphérique, recherchez les numéros de bus USB et de périphérique suivants:
$ lsusb
...
Bus 002 Device 005: ID xxxx:yyyy MyDeviceManufacturer
...
Ensuite, regardez l’arbre 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 pilote uas
.
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'ID 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 la seule valeur bInterfaceProtocol
indiquée est 80 Bulk-Only
. Ce périphérique ne serait pas un périphérique configuré par UASP. Cependant, si vous voyez un bInterfaceProtocol 98
supplémentaire, ceci serait un périphérique configuré par UASP.
Ces valeurs sont données en décimal, mais la spéc se réfère à elles par leurs valeurs hexadécimales ...
50h (80d): USB Mass Storage Class Bulk-Only (BBB) Transport
62h (98d): Allocated by USB-IF for UAS.
Cette information se trouve 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 à vos première ou deuxième questions, car il n'est pas clair si cette valeur sera indiquée sur les machines/périphériques prenant en charge UASP et ceux qui ne le font pas.
Pour compléter la réponse:
Si votre contrôleur ne prend pas en charge les 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 Oliva,
Le robot humain à l'intérieur.