17 Oct 2023, 00:00

Notes en vrac sur l'USB

Share

Récap

USB 2.0 : 480Mbps théorique, soit ~ 60Mo/s théorique (souvent 30-45 en réalité)
4 broches

USB 3.0 : 5Gbps théorique, mais 4Gpbs “théoriques réels” car codage 8b/10b, donc 500Mo/s théoriques (en pratique ~450 Mo/s)
9 broches
3.0 = 3.1 Gen 1 = 3.2 Gen 1x1 = SS = SS-5

3.1 = 3.1 Gen 2 = 3.2 Gen 2x1 = SS-10 ; 10Gbps théoriques

3.2 = 3.2 Gen 2x2 = SS-20 ; 20 Gbps théoriques

USB 4.0 = SS-40 ; 40Gbps théoriques ; n’existe qu’en USB-C.

Identifier vitesse théorique d’un périph de stockage sous Linux

On peut bien sûr mesurer les débits via un transfert de fichier, ou fio, mais on peut aussi constater directement le débit via lsusb. Pour ceci, il faut déjà identifier l’USB-ID d’un matériel ; par exemple avec un boitier SATA-USB3 Orico, un lsusb nous donne :
Bus 003 Device 032: ID 152d:0576 JMicron Technology Corp. / JMicron USA Technology Corp. Gen1 SATA 6Gb/s Bridge

C’est donc l’identifiant 152d:0576 pour ce matériel. On le stocke :
usbid=152d:0576

On peut alors lancer lsusb -tv pour avoir l’arbre USB détaillé. La vitesse théorique d’un périphérique est indiquée en fin de ligne. L’USB-ID du matériel étant indiqué à la ligne suivante, on peut filter avec grep en récupérant la ligne précédente ainsi :
lsusb -tv | grep ${usbid} -B 1

Si on veut tester différents branchements sans toucher au clavier, on peut lancer un monitoring automatique avec :
watch -n 0.5 "lsusb -tv | grep ${usbid} -B 1"

On peut monitorer plusieurs appareils avec une commande du genre
watch -n 0.5 "lsusb -tv | grep -e ${usb1} -e ${usb2} -e ${usb3} -B 1"

Connecteurs et USB-C

Il y’a plusieurs connecteurs, USB-A, USB-B, mini-B, micro-B, etc. Les câbles peuvent être équipés de différents nombres de broches en fonction de leur utilisation prévue (courant uniquement, wattage possible, courant + données, USB-2, USB-3 etc)

L’USB-C, au même titre que les autres, est simplement un format physique. Ses possibilités théoriques sont + étendues, mais non garanties. Il est possible d’avoir un câble C <-> C qui ne fasse que le transfert de courant sans données, ou bien qui ne fonctionne qu’en USB-2. Un connecteur USB-C peut également faire transiter des signaux non-USB (DisplayPort, HDMI, jack, électricité jusqu’à 240W).
Un cable USB-C possède (jusqu’à ?) 24 broches. Contrairement à l’USB-A, il ne me semble pas possible d’identifier visuellement le capacités d’un câble USB-C.

On peut également avoir des adaptateurs USB-C vers un autre format. Les capacités de ceux-ci dépendent également de leur conception. Il est possible d’avoir un adaptateur C <-> A qui soit limité à la vitesse USB2, voire qui ne fasse que le courant.

Dans le cas d’adaptateurs C <-> A en USB3, il est possible que les performances dépendent du sens d’insertion de l’USB-C. Dans mon expérience, pour bénéficier de l’USB-3, il faut que l’ensemble de la chaîne respecte le sens “classique”, à savoir la partie pleine du connecteur mâle vers le bas. Si on renverse un connecteur USB-C, alors le débit pourrait n’être que 480Mbps (USB2).
Je suppose que ceci dépendra de la conception des adaptateurs.

SATA <-> USB

Selon la conception de la puce, il est possible que l’adaptateur soit vu même sans disque, ou bien qu’il nécessite le branchement d’un disque SATA pour être détecté. Penser à tester les 2.