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

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

An meinem Computer befinden sich mehrere USB-Anschlüsse, einige sind USB 2 und einige USB 3. Ich möchte ein Gerät an einen USB 3-Anschluss anschließen. Leider sind sie alle schwarz, sodass ich nicht die übliche Faustregel „USB 3.0-Anschlüsse sind blau“ anwenden kann.

Dies ist eine Linux-Box. Gibt es also eine Möglichkeit herauszufinden, ob ich das Gerät an einen USB-3-Anschluss angeschlossen habe, vielleicht mithilfe eines Befehlszeilenprogramms oder durch Überprüfen einiger Kernel-Meldungen?

Antwort1

Sie können die USB-Version ermitteln, indem Sielsusb

  • 12M = 12MBit/s = USB1
  • 480M = 480MBit/s = USB2
  • 5000M = 5000MBit/s = USB3.0 alias USB3.1 Gen. 1
  • 10000M = 10000MBit/s = USB3.1 Gen. 2

Versuchen Sie es mit etwas wie:

lsusb -D /dev/bus/usb/002/005

Der USB 2.00/3.00 entspricht USB 2.0 / 3.0

Versuchen Sie es vielleicht sogar mitlsusb -t

Die erste Umrechnungstabelle hilft Ihnen bei der Bestimmung der USB-Version.

Schauen Sie sich anDASLink für weitere Beispiele.

Antwort2

Wie @MarkHu und @Matthew bemerkt haben, kann die derzeit akzeptierte Antwort (lsusb -D) irreführend sein, da sie die vom Gerät unterstützten Geschwindigkeiten auflistet, nicht die tatsächliche Geschwindigkeit. Oder zumindest konnte ich die Ausgabe nicht verwenden, um die aktuelle Gerätegeschwindigkeit zu ermitteln.

Ist es wichtig, ob es sich um einen USB 3-Anschluss handelt, wenn er keine USB 3-Geschwindigkeiten unterstützt?

Die tatsächliche Geschwindigkeit auf einer Linux-Box zu ermitteln, ist etwas mühsam; lsusb scheint derzeit keine sofort einsatzbereite Lösung anzubieten. Bei mir hat sich herausgestellt, dass es funktioniert. Listen Sie zunächst alle angeschlossenen Geräte und Hubs auf, um Ihr Gerät zu identifizieren:

> lsusb
Bus 002 Device 003: ID 0424:2660 Microchip Technology, Inc. (formerly SMSC) Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 1058:25ee Western Digital Technologies, Inc.
Bus 001 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

In meinem Fall schaue ich mir die Geschwindigkeit meiner externen WD MyBook-Festplatte an. Daher lautet die interessante Zeile:

Bus 001 Device 004: ID 1058:25ee Western Digital Technologies, Inc.

Aber es scheint, dass der Teil „Bus 001 Gerät 004“ für uns nicht nützlich ist, um die aktuelle Gerätegeschwindigkeit zu ermitteln. Stattdessen benötigen wir die beiden durch Doppelpunkte getrennten Zahlen 1058:25ee, die Hersteller-ID und die Produkt-ID für dieses Gerät.

Sie sollten nun das /sys/devicesVerzeichnis auf den Inhalt der idVendorDatei überprüfen und nach der oben angegebenen Lieferanten-ID suchen (ersetzen Sie 1058 durch Ihre eigene Lieferanten-ID).

> find /sys/devices/ -name idVendor -print -exec cat {} \; | grep -B 1 1058
./pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/idVendor
1058

Nehmen Sie nun den obigen Ausgabepfad, ersetzen Sie idVendorihn durch speedund sehen Sie sich den Inhalt an:

> cat ./pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/speed
480

Auf diese Weise entdecken Sie eine 480 Mbit/s USB 2.0-Verbindung.

Wenn Sie mehrere Geräte angeschlossen haben, können Sie idProductauch den Inhalt überprüfen. Wenn Sie mehrereidentischserialGeräte, suchen Sie auch nach dem Inhalt von .

Antwort3

Meiner Erfahrung nach lsusb -Dkann der Befehl irreführend sein, wenn er „Funktionen“ meldet, die derzeit durch den Buchsentyp, an den Ihr Gerät angeschlossen ist, nicht aktiviert sind. Siehe unten ein Beispiel für eine gefilterte Ausgabe (die gesamte Ausgabe umfasste über sudo lsusb -D ${USB_DEVICE_PATH}80 Zeilen). In diesem Beispiel schließe ich daraus, bcdUSB 3.00dass dies bedeuten sollte Device can operate at SuperSpeed (5Gbps)– obwohl diese Zeile noch vorhanden war, als ich mein Laufwerk zum Vergleich an eine USB-2-Buchse anschloss.

$ lsusb -D /dev/bus/usb/007/003 | egrep -i 'usb|speed|version|Mbps|gbps|id|speed'

Device: ID 174c:1153 ASMedia Technology Inc. ASM2115 SATA 6Gb/s bridge
  bcdUSB               3.00
  idVendor           0x174c ASMedia Technology Inc.
  idProduct          0x1153 ASM2115 SATA 6Gb/s bridge

  SuperSpeed USB Device Capability:
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
      Lowest fully-functional device speed is Full Speed (12Mbps)

Beachten Sie auch, dass die idProductZeile einen Hinweis-/Werbetext enthielt, 6Gb/sder nicht als erreichbare Geschwindigkeit interpretiert werden sollte.

Alternativer Kurzbefehl, der möglicherweise nützlicher ist:

$ sudo lsusb -t | egrep -i "storage" -B1

/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

Antwort4

Wenn Sie die tatsächliche Geschwindigkeit der Verbindung herausfinden möchten (im Gegensatz zu den von lsusb gemeldeten Kapazitäten), können Sie die „Speed“-Dateien aus /sys/devices lesen. Vorausgesetzt, Sie können das Gerät problemlos verbinden und trennen, können Sie das folgende Skript verwenden, um den Vorgang halbautomatisch zu gestalten. Ein weiteres Skript zum Abrufen einer vollständigen Liste wird unten beschrieben.

  1. Trennen Sie das Gerät ab
  2. Starten Sie das Skript. Sie werden aufgefordert, das Gerät anzuschließen und die Eingabetaste zu drücken.
  3. Gerät anschließen
  4. Drücken Sie Enter
  5. Das Skript meldet die entsprechende Verbindungsgeschwindigkeit:
/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/speed    480

Oder:

/sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.3/2-3.3.1/speed    5000

Hier sind die möglichen Geschwindigkeiten in Mbit/s:

  • 1,5 = USB 1.0/Low-Speed
  • 12 = USB 1.1/Vollgeschwindigkeit
  • 480 = USB 2.0/Hi-Speed
  • 5000 = USB 3.0/SuperSpeed
  • 10000 = USB 3.1/SuperSpeed

Und hier ist das Skript. Ich nenne es usbspeed-get:

#!/bin/bash
# https://superuser.com/a/1780101/
set -e

LIST1=`mktemp`
LIST2=`mktemp`
echo "Getting list of current devices..."
find /sys/devices -name speed | sort > "$LIST1"
echo -n "Now plug the relevant USB device and press ENTER..."
read dummy
find /sys/devices -name speed | sort > "$LIST2"

comm -3 "$LIST1" "$LIST2" | while read f ; do
echo -n "$f" " "
cat "$f"
done | column -t -s' '

rm  "$LIST1" "$LIST2"

Wenn Sie lieber einen Überblick über alle Geräte und die entsprechenden Geschwindigkeiten haben möchten, können Sie das folgende Skript verwenden. Ich nenne es usbspeed-list.

#!/bin/bash
# https://superuser.com/a/1780101/

sep="|"
find /sys/devices -name speed | grep usb  | while read f ; do
  dir=`dirname "$f"`
  for name in speed manufacturer product ; do
     cat "$dir/$name" 2>/dev/null | tr '\n' ' ' 
     echo -n "$sep"
  done
  echo -n "$dir$sep"
  echo
done | column -t --separator "$sep"

Standardmäßig werden die Geräte in der Reihenfolge ausgegeben, in der sie in /sys/devices gefunden werden. Wenn Sie sie nach Geschwindigkeit sortieren möchten, können Sie dies mit folgendem kombinieren sort -n:

usbspeed-list | sort -n
1.5                                        Keyboard                    /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.4/1-3.4.4.2              
1.5     Texas Instruments                  TPS65983B                   /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3.2                        
12      Silicon Laboratories               EFM8 HID ISP                /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3.3                        
12                                                                     /sys/devices/pci0000:00/0000:00:14.0/usb1/1-14                                     
480     GenesysLogic                       USB2.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.4                        
480     GenesysLogic                       USB2.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.4/1-3.4.4.4              
480     Linux 5.19.0-38-generic xhci-hcd   xHCI Host Controller        /sys/devices/pci0000:00/0000:00:14.0/usb1                                          
480     Sonix Technology Co., Ltd.         USB2.0 Camera               /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8                                      
480                                        USB2.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.4/1-3.4.4.1              
480     VIA Labs, Inc.                     USB2.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3                                      
480     VIA Labs, Inc.                     USB2.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3                                
480     VIA Labs, Inc.                     USB2.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4                                
1000                                                                   /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.5/net/enx806d9711f2b1  
5000    DisplayLink                        USB-C Triple-4K Dock        /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1                                
5000    Generic                            USB Storage                 /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.4/2-3.4.4/2-3.4.4.4/2-3.4.4.4.4  
5000    GenesysLogic                       USB3.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.4/2-3.4.4                        
5000    GenesysLogic                       USB3.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.4/2-3.4.4/2-3.4.4.4              
5000    Prolific Technology Inc.           ATAPI-6 Bridge Controller   /sys/devices/pci0000:00/0000:00:14.0/usb2/2-2                                      
5000    Seagate                            BUP Portable                /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.2                                
5000    Space keys                         USB3.1 Storage Device       /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.3/2-3.3.1                        
5000    VIA Labs, Inc.                     USB3.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3                                      
5000    VIA Labs, Inc.                     USB3.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.3                                
5000    VIA Labs, Inc.                     USB3.0 Hub                  /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.4                                
10000   Linux 5.19.0-38-generic xhci-hcd   xHCI Host Controller        /sys/devices/pci0000:00/0000:00:14.0/usb2 

Hier wird die Tastatur mit einer sehr niedrigen Geschwindigkeit (1,5) angeschlossen, was normal ist, und das USB-Festplatten-Dock (ATAPI-6 Bridge Controller) mit 5000MBit/s.

Eine weitere Möglichkeit, die Geräte und ihre Geschwindigkeit aufzulisten, ist das Skript "usb-devices" vonAbonnierenund wird von einigen Distributionen standardmäßig installiert. Es ist allgemeiner, aber auch sehr ausführlich. Es gibt die Geschwindigkeit in der ersten Zeile der Gerätebeschreibung an:

T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 44 Spd=5000 MxCh= 0
D:  Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=067b ProdID=2773 Rev=01.00
S:  Manufacturer=Prolific Technology Inc.
S:  Product=ATAPI-6 Bridge Controller
S:  SerialNumber=0123456789000000005
C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=96mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms

Stellen Sie sicher, dass Sie eine aktuelle Version verwenden. Die mit Ubuntu 22.04 bereitgestellte Version listet nicht alle Geräte auf.

verwandte Informationen