デバイスを USB 3 ポートに接続したかどうかを確認するにはどうすればよいですか?

デバイスを USB 3 ポートに接続したかどうかを確認するにはどうすればよいですか?

私のコンピュータには USB ポートがいくつかあり、USB 2 と USB 3 があります。デバイスを USB 3 ポートに接続したいのですが、残念ながらすべて黒なので、通常の「USB 3.0 ポートは青」という経験則を適用できません。

これは Linux ボックスなので、コマンド ライン ユーティリティを使用したり、カーネル メッセージを調べたりして、デバイスを USB 3 ポートに接続したかどうかを確認する方法はありますか?

答え1

USBバージョンを確認するには、lsusb

  • 12M = 12MBit/s = USB1
  • 480M = 480MBit/s = USB2
  • 5000M = 5000MBit/s = USB3.0 または USB3.1 gen. 1
  • 10000M = 10000MBit/s = USB3.1 gen. 2

次のようなものを使用してみてください:

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

USB 2.00/3.00はUSB 2.0 / 3.0に対応しています

使ってみてもいいかもしれないlsusb -t

最初の変換表は、USB バージョンを判断するのに役立ちます。

を見てみましょうこれさらなる例についてはリンクをご覧ください。

答え2

@MarkHu と @Matthew が指摘したように、現在受け入れられている回答 (lsusb -D) は、実際の速度ではなく、デバイスでサポートされている速度をリストするため、誤解を招く可能性があります。または、少なくともその出力を使用して現在のデバイス速度を見つけることはできません。

USB 3 速度をネゴシエートしない場合、USB 3 ポートであるかどうかは問題になりますか?

Linux ボックスの実際の速度を確認するのは少し面倒です。現在のところ、lsusb はすぐに使えるソリューションを提供していないようです。それが私が機能している方法だとわかりました。まず、接続されているすべてのデバイスとハブを一覧表示して、デバイスを識別します。

> 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

私の場合、外付け WD MyBook ディスクの速度を確認しています。興味深い行は次のようになります。

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

しかし、「Bus 001 Device 004」の部分は、現在のデバイス速度を見つけるのに役立たないようです。代わりに、そのようなデバイスのベンダー ID と製品 ID である、コロンで区切られた 2 つの数字 1058:25ee が必要です。

次に、/sys/devicesディレクトリでファイルの内容を確認しidVendor、上記のベンダー ID を探します (1058 を自分のベンダー 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

ここで、上記の出力パスをidVendor次のように置き換えてspeed、その内容を確認します。

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

この方法では、480Mbps の USB 2.0 接続を検出します。

idProduct複数のデバイスが接続されている場合、コンテンツも確認できます。複数のデバイスが接続されている場合、同一デバイスの場合は、コンテンツも検索してくださいserial

答え3

私の経験では、lsusb -Dデバイスが接続されているジャックの種類によって現在有効になっていない「機能」を報告する場合、コマンドは誤解を招く可能性があります。 フィルターされた出力の例を以下に示します (出力全体はsudo lsusb -D ${USB_DEVICE_PATH}80 行以上でした)。 この例では、 をbcdUSB 3.00意味するはずですDevice can operate at SuperSpeed (5Gbps)が、比較のためにドライブを USB 2 ジャックに接続したときには、その行はまだ存在していました。

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

また、この行には、達成可能な速度として解釈されるべきではないidProductアドバイス/マーケティング テキストが含まれていることにも注意してください。6Gb/s

より便利な代替の短いコマンド:

$ 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

答え4

接続の実際の速度 (lsusb によって報告される容量ではなく) を知りたい場合は、/sys/devices から「speed」ファイルを読み取ることができます。デバイスを自由に接続および切断できると仮定すると、次のスクリプトを使用してプロセスを半自動にすることができます。完全なリストを取得するための別のスクリプトについては、以下で説明します。

  1. デバイスのプラグを抜きます
  2. スクリプトを開始します。デバイスを接続するように求められますので、ENTERを押してください。
  3. デバイスを接続する
  4. ENTERキーを押します
  5. スクリプトは対応する接続​​速度を報告します。
/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/speed    480

または:

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

可能な速度は Mbit/s で次のようになります。

  • 1.5 = USB 1.0/低速
  • 12 = USB 1.1/フルスピード
  • 480 = USB 2.0/高速
  • 5000 = USB 3.0/スーパースピード
  • 10000 = USB 3.1/スーパースピード

そして、これがスクリプトです。私はそれをこう呼んでいます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"

すべてのデバイスとそれに応じた速度の概要を知りたい場合は、次のスクリプトを使用できます。私はこれを と呼びます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"

デフォルトでは、/sys/devices で見つかった順序でデバイスを出力します。速度で並べ替えたい場合は、以下と組み合わせることができます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 

ここで、キーボードは非常に低速 (1.5) で接続されていますが、これは正常であり、USB ハードディスク ドック (ATAPI-6 ブリッジ コントローラー) は 5000MBit/s で接続されています。

デバイスとその速度を一覧表示する別の方法は、以下が提供する「usb-devices」スクリプトです。usbutils一部のディストリビューションではデフォルトでインストールされています。これはより汎用的ですが、非常に冗長でもあります。デバイスの説明の最初の行に速度を報告します。

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

最新バージョンを使用していることを確認してください。Ubuntu 22.04 に付属のバージョンでは、すべてのデバイスがリストされません。

関連情報