我有一台运行 Ubuntu 15.04(3.19.0-21-generic)的笔记本电脑和一个外部 USB3.0 2.5 英寸 SATA HDD 外壳,据称它支持 UASP 模式(StarTech 的 S2510BPU33 型号)。我安装驱动器或读取/写入驱动器时没有遇到任何问题。
我希望确认以下几点:
- 设备本身确实支持 UASP
- 我的芯片组是否也支持 UASP
- 安装设备时设备是否正在使用 UASP
我可以在哪里找到这些信息?
答案1
如果您知道设备的名称,请查找 USB 总线和设备编号:
$ lsusb
...
Bus 002 Device 005: ID xxxx:yyyy MyDeviceManufacturer
...
然后查看 USB 树并找到您的设备(我的是 Bus 2、Dev 5):
$ lsusb -t
...
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
|__ Port 2: Dev 5, If 0, Class=Mass Storage, Driver=uas, 5000M
|__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
...
在我的例子中,您可以看到uas
驱动程序。
如果未使用 UAS,您将会看到usb-storage
(就像我的情况中的 Dev 3)。
答案2
此外答案austinmarton 给了,你可以跑
lsusb -v -d VPID | grep -i interface
其中 VPID 是 中报告的供应商/产品 ID lsusb
。例如:
$ lsusb -v -d 1234:5678 | grep -i interface
Couldn't open device, some information will be missing
bDeviceClass 0 (Defined at Interface level)
bNumInterfaces 1
Interface Descriptor:
bInterfaceNumber 0
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 6
请注意,列出的唯一bInterfaceProtocol
值是80 Bulk-Only
。此设备将不是是配置了 UASP 的设备。但是,如果您看到额外的bInterfaceProtocol 98
,则说明会是 UASP 配置的设备。
这些值以十进制给出,但规范通过它们的十六进制值来引用它们......
50h (80d): USB Mass Storage Class Bulk-Only (BBB) Transport
62h (98d): Allocated by USB-IF for UAS.
这些信息可以在大容量存储规格在usb.org,第 3 节协议代码,表 2 — 大容量存储传输协议。
不过,我不确定这是否回答了您的第一个或第二个问题,因为不清楚这个值是否会在支持 UASP 和不支持 UASP 的机器/设备上报告。
答案3
完成答案:
如果您的控制器不是支持 UAS,linux 内核很贴心的告诉你:
$ dmesg | grep "UAS"
[58669.959610] usb 4-2: USB controller 0000:03:00.0 does not support streams, which are required by the UAS driver.
[58669.959613] usb 4-2: Please try an other USB controller if you wish to use UAS.
此外,lsusb 显示 bInterfaceProtocol 98 的一行,但它是空的:
$ lsusb -v -d 0080:a001 | grep -i interface
bDeviceClass 0 (Defined at Interface level)
bNumInterfaces 1
Interface Descriptor:
bInterfaceNumber 0
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Interface Descriptor:
bInterfaceNumber 0
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 98
iInterface 0
答案4
您必须检查UAS 驱动程序正在用于您的磁盘。首先,识别有问题的磁盘:
# dmesg | grep sdb
...................
sd 9:0:0:1: [sdb] Attached SCSI disk
所以我的设备是 SCSI 磁盘。在这里您可以找到有关当前正在使用的驱动程序的信息,
# ls /sys/bus/scsi/drivers
sd sr
因此,就我而言,合适的驱动程序是标准差或者SR。为了检查哪一个,我尝试
# cd /sys/bus/scsi/drivers/sd/9:0:0:1
#
因此我的司机标准差.您可以仔细检查目录/sys/总线/scsi/驱动程序/sr/9:0:0:1做不是存在。因此我的外部磁盘不是 UASP。