我的 USB 2.0 设备是否全速运行?

Ann*_*rom 13 usb hardware

如何判断我的 USB 闪存驱动器是否以全速 USB 2.0 运行?目前我只想验证驱动器是否插入了 480 Mbps 端口,但过去我一直不确定给定的设备是 USB 2.0 还是旧版本。除了测试读/写速度之外,我想要一种识别其功能的方法。

小智 15

lsusb -t 
Run Code Online (Sandbox Code Playgroud)

在设备名称后直接显示速度。


cur*_*ore 10

使用lsusb -t可以看到usb的规格:

$ sudo lsusb -t /:  Bus 02.Port 1: Dev 1, Class=root_hub,
Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 4: Dev 7, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 6: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M /:  Bus 01.Port 1: Dev 1, Class=root_hub,
Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 8, If 0, Class=Hub, Driver=hub/4p, 480M
Run Code Online (Sandbox Code Playgroud)

但是要检查 USB 的速度,并查看它是否正常工作,您需要使用 hdparm 进行速度测试

$ sudo hdparm -tT /dev/sdd

/dev/sdd:  
 Timing cached reads:   7642 MB in  2.00 seconds = 3822.03MB/sec  
 Timing buffered disk reads:  96 MB in  3.05 seconds =  31.44MB/sec
Run Code Online (Sandbox Code Playgroud)

该示例是我的随机随身碟之一,您必须看到类似以前的内容。


max*_*zig 8

你可以看看

lsusb -v
Run Code Online (Sandbox Code Playgroud)

在我的系统上,我得到例如这一行(以及更多信息):

端口 6:0000.0503 高速电源使能连接

或者,您可以发出:

tail -f /var/log/kern.log
Run Code Online (Sandbox Code Playgroud)

在一个终端,然后插入 USB 闪存驱动器。例如,在我的系统上,我收到此消息:

9 月 15 日 22:10:40 foo 内核:[405279.750140] USB 2-2:使用 ehci_hcd 和地址 24 的新高速 USB 设备

ehci_hcd 是内核中的 USB 2.0 控制器模块(即一切正常,以正确的速度使用 USB 2.0 棒)。

除非你收到这样的跟进消息:

9 月 15 日 22:15:25 foo 内核:[405564.451402] USB 6-2:未以最高速度运行;连接到高速集线器

(在这种情况下,低质量 USB 2.0 棒(Kensington)可能存在兼容性问题,因为计算机的 USB 端口支持 USB 2.0 高速设备否则)

使用非 USB 2.0 高速棒时,我收到以下消息:

9 月 15 日 22:15:25 foo 内核:[405564.300127] USB 6-2:使用 uhci_hcd 和地址 4 的新全速 USB 设备

如果您的用户帐户无权访问 /var/log/kern.log(或其他与系统相关的内核日志消息文件位置),您可以使用命令dmesg作为替代来显示内核消息缓冲区的内容。dmesg 的缺点只是它确实打印了这么好的时间戳,并且没有跟随输出选项。

  • 其中`/var/log/kern.log` 可能是一个不同的文件。`dmesg` 应该有相同的信息。 (2认同)