我有一台运行Ubuntu 15.04(通用3.19.0-21)的笔记本电脑和一个外部USB3.0 2.5英寸SATA HDD机箱,声称它支持UASP模式(StarTech的S2510BPU33型号)。安装驱动器或读/写它。
我希望能够确认以下几点:
- 设备本身实际上支持UASP
- 我的芯片组是否还支持UASP
- 安装设备时设备是否正在使用UASP
我可以在哪里找到此信息?
我有一台运行Ubuntu 15.04(通用3.19.0-21)的笔记本电脑和一个外部USB3.0 2.5英寸SATA HDD机箱,声称它支持UASP模式(StarTech的S2510BPU33型号)。安装驱动器或读/写它。
我希望能够确认以下几点:
我可以在哪里找到此信息?
Answers:
如果您知道设备的名称,请找到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)。
除了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的机器/设备上报告此值。
完成答案:
如果您的控制器并没有支持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
HTH,
R. Daneel olivaw,
里面的人类机器人。
您必须检查UAS驱动程序是否正在用于磁盘。首先,确定有问题的磁盘:
# dmesg | grep sdb
...................
sd 9:0:0:1: [sdb] Attached SCSI disk
所以我的设备是SCSI磁盘。您可以在此处找到有关当前使用的驱动程序的信息,
# ls /sys/bus/scsi/drivers
sd sr
因此,就我而言,适当的驱动程序是sd或sr。要检查哪一个,我尝试
# cd /sys/bus/scsi/drivers/sd/9:0:0:1
#
因此,我的司机是SD。你可以仔细检查该目录/ SYS /巴士/ SCSI /司机/ SR / 9:0:0:1不不存在。因此,我的外部磁盘不是UASP。
Driver=uas
太好了-很好地解决了第3点。如果我看不到,很高兴能找到原因-例如,可能是芯片组或设备(或可能两者都不支持) 。如果有人可以回答其他两点,我将一直待到本周末结束,否则我将接受您的回答。