我的電腦上有多個 USB 端口,有些是 USB 2,有些是 USB 3。不幸的是,它們都是黑色的,所以我不能使用通常的“USB 3.0 連接埠是藍色”的經驗法則。
這是一個 Linux 盒子,所以有什麼方法可以知道我是否已將設備插入 USB 3 端口,也許使用一些命令行實用程式或通過檢查一些內核訊息?
答案1
答案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
現在將上面的輸出路徑替換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」檔案。假設您可以自由連接和斷開設備,則可以使用以下腳本使該過程半自動。下面描述了另一個取得完整清單的腳本。
- 拔掉設備插頭
- 啟動腳本。它會要求連接設備並按 ENTER
- 連接裝置
- 按輸入鍵
- 該腳本報告相應的連線速度:
/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 提供的版本並未列出所有裝置。