如何確定我已將裝置插入 USB 3 連接埠?

如何確定我已將裝置插入 USB 3 連接埠?

我的電腦上有多個 USB 端口,有些是 USB 2,有些是 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 代。 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」部分對於我們查找當前設備速度似乎沒有用。相反,我們需要兩個以冒號分隔的數字 1058:25ee,也就是此類裝置的供應商 ID 和產品 ID。

現在您應該檢查/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

現在將上面的輸出路徑替換idVendorspeed並查看其內容:

> 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. 按輸入鍵
  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”腳本烏斯布蒂爾斯並由某些發行版預設安裝。它更通用,但也非常冗長。它在設備描述的第一行報告速度:

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 提供的版本並未列出所有裝置。

相關內容