我的计算机上有多个 USB 端口,一些 USB 2 和一些 USB 3。我想将设备插入 USB 3 端口。不幸的是,它们都是黑色的,所以我不能使用通常的“USB 3.0 端口是蓝色”的经验法则。
这是一个 Linux 机器,所以有什么方法可以知道我是否已将设备插入 USB 3 端口,也许使用一些命令行实用程序或检查一些内核消息?
Sam*_*son 23
您可以通过运行来确定 USB 版本 lsusb
尝试使用类似的东西:
lsusb -D /dev/bus/usb/002/005
Run Code Online (Sandbox Code Playgroud)
USB 2.00/3.00 对应 USB 2.0/3.0
也许甚至尝试使用 lsusb -t
第一个转换表将帮助您确定 USB 版本。
查看此链接以获取更多示例。
Ala*_*oni 13
正如 @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
Run Code Online (Sandbox Code Playgroud)
就我而言,我正在查看外部 WD MyBook 磁盘的速度。因此有趣的一行是:
Bus 001 Device 004: ID 1058:25ee Western Digital Technologies, Inc.
Run Code Online (Sandbox Code Playgroud)
但是,“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
Run Code Online (Sandbox Code Playgroud)
现在将上面的输出路径替换为idVendor
并speed
查看其内容:
> cat ./pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/speed
480
Run Code Online (Sandbox Code Playgroud)
这样您就会发现 480Mbps USB 2.0 连接。
如果您有多个连接的设备,您idProduct
也可以检查内容。如果您有多个相同的serial
设备,也请查找其中的内容。
我的经验是,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)
Run Code Online (Sandbox Code Playgroud)
另请注意,该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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27177 次 |
最近记录: |