如何确定我的USB闪存驱动器是否以全USB 2.0速度运行?目前,我只想验证驱动器是否已插入480 Mbps端口,但是在过去,我不确定给定的设备是否为USB 2.0或更旧的版本。除了测试读写速度外,我还想一种方法来确定其功能。
如何确定我的USB闪存驱动器是否以全USB 2.0速度运行?目前,我只想验证驱动器是否已插入480 Mbps端口,但是在过去,我不确定给定的设备是否为USB 2.0或更旧的版本。除了测试读写速度外,我还想一种方法来确定其功能。
Answers:
你可以看看
lsusb -v
例如,在我的系统上,我得到以下行(以及更多信息):
端口6:0000.0503高速电源启用连接
或者,您可以发出:
tail -f /var/log/kern.log
在一个终端中,然后插入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记忆棒(肯辛顿)可能存在兼容性问题,因为计算机的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的缺点是它确实可以打印出如此漂亮的时间戳,并且没有跟随输出选项。
使用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
但是要检查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
该示例是我的随机笔驱动器之一,您必须看到类似的内容。
/var/log/kern.log可能是一个不同的文件。dmesg应该具有相同的信息。