Comment connaître la vitesse USB à partir d'un terminal?

15

J'utilise Ubuntu 12.04. Je suis ici pour savoir s'il existe un moyen d'observer la vitesse d'écriture et de lecture de l'USB via le terminal.

rɑːdʒɑ
la source

Réponses:

6

Vous pouvez utiliser rsyncpour donner une approximation de votre vitesse de transfert, bien qu'elle varie selon que des fichiers petits ou grands sont transférés et selon que la destination est un lecteur flash lent ou un disque dur externe rapide. Par exemple:

rsync -avviu ~/Videos /media/Mik2

sent 874419803 bytes  received 149 bytes  4427442.79 bytes/sec
total size is 874312527  speedup is 1.00

(De plus, si vous ouvrez tail -f /var/log/kern.logpuis connectez votre appareil, vous pouvez voir s'il est configuré pour ehci (interface de contrôleur hôte améliorée), qui prend en charge les vitesses USB 2. Par exemple, le journal du noyau doit indiquer «nouveau périphérique USB haute vitesse ... en utilisant ehci_hcd '.)


la source
Je suppose que cela a anticipé la raison de la question, mais cela n'a pas répondu à la question telle qu'elle était posée.
mc0e
13

L' pvoutil vous permet de visualiser le débit des données qui le traversent. Après avoir installé le package, vous pouvez exécuter une commande comme la suivante pour voir le taux d'écriture:

$ cat /dev/zero | pv > /media/some_usb/tmp123

203.1MiB 0:00:02 [100.2MiB/s] [ <=>                   ]

Pour la lecture, effectuez l'opération inverse en utilisant le tmp123fichier nouvellement créé :

$ cat /media/some_usb/tmp123 | pv > dev/null
noffle
la source
Cette approche semble donner des résultats d'exécution mesurables et réels.
AjayKumarBasuthkar
9

J'étais curieux à ce sujet car j'avais un SSD SATA 3 que je voulais utiliser pour traiter certains fichiers vidéo (pour garder les attentes d'E / S au minimum) mais je n'avais que des ports SATA 2 (3Gbps) disponibles sur le système, mais aussi un Port USB3 disponible.

Vous pouvez déterminer la vitesse maximale théorique du port pour chaque port USB avec la commande sudo lsusb -vvv |grep -i -B5 -A5 bcdUSB

La ligne bcdUSB renvoie la version USB du port.

Un exemple d'un de mes systèmes:

Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x8087 Intel Corp.
--
   Port 7: 0000.0100 power
   Port 8: 0000.0100 power
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
--

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
--

Bus 001 Device 003: ID 10d5:5a08 Uni Class Technology Co., Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x10d5 Uni Class Technology Co., Ltd
--

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x8087 Intel Corp.
--
   Port 5: 0000.0100 power
   Port 6: 0000.0303 lowspeed power enable connect
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
--

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
--

Bus 004 Device 002: ID 174c:5106 ASMedia Technology Inc. Transcend StoreJet 25M3
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x174c ASMedia Technology Inc.
--

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
--

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation

Ou l'alternative rapide et facile lsusb -tqui fournit une sortie comme celle-ci:

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 6: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 6: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M

Étant donné que les 5 Gbit / s disponibles via USB3 étaient beaucoup plus proches des 6 Gbit / s auxquels SATA 3 est évalué, j'ai décidé d'y connecter le lecteur Bus 004 Device 002(via l'adaptateur Asmedia USB3toSATA). Les résultats ont été assez satisfaisants.

Sources: cette page

Expérimentation

https://en.wikipedia.org/wiki/USB

https://en.wikipedia.org/wiki/Serial_ATA Comment trouver la vitesse du concentrateur USB

Elder Geek
la source
Existe-t-il de toute façon une corrélation entre ces informations et un nœud de périphérique?
Melab
@Melab Semble évident dans la plupart des cas étant donné la sortie de commandes comme lsblket le contenu de fichiers comme [etc / mtab] Si vous avez une nouvelle question, n'hésitez pas à demander en utilisant le [bouton Poser une question] ( askubuntu.com/questions/ demander ) dans le coin supérieur droit de la page.
Elder Geek
1
@Flatron Je suis toujours
Elder Geek
2

Essayez avec ceci:

$ sudo lsusb -vvv

Ensuite, jetez un œil aux entrées nommées bDeviceProtocol et bInterfaceProtocol

jap1968
la source
1
"bInterfaceProtocol 80 Bulk-Only" "bDeviceProtocol 0" signifie quoi? Mais cette réponse ne convient pas à ma question. Merci, :)
rɑːdʒɑ
Avez-vous utilisé l'option -vvv? Dans mon ordinateur, il y a une description associée à la valeur 0: "0 Hub pleine vitesse (ou racine)"
jap1968
Tu as raison. Ces informations ne semblent apparaître que sur certains appareils.
jap1968
1
@Raja, Run sudo lsusb -vvv |grep -i -B5 -A5 bDeviceProtocol. Regardez ensuite les entrées répertoriées comme bDeviceClass Hub.
Cerin