it-swarm-ja.com

LinuxでUSB3.0 UASP(USB接続SCSIプロトコル)モードが有効になっているかどうかを確認するにはどうすればよいですか?

Ubuntu 15.04(3.19.0-21-generic)を実行しているラップトップと、UASPモードをサポートしていると主張する外部USB3.0 2.5インチSATA HDDエンクロージャー( StarTechのS2510BPU33モデル )を使用しています。ドライブのマウントや読み取り/書き込みに問題はありません。

次のことを確認できるようにしたいと思います。

  1. デバイス自体が実際にUASPをサポートしていること
  2. 私のチップセットがUASPもサポートしているかどうか
  3. マウント時にデバイスがUASPを使用しているかどうか

この情報はどこにありますか?

27
ali_m

デバイスの名前がわかっている場合は、USBバスとデバイスの番号を確認します。

$ lsusb
...
Bus 002 Device 005: ID xxxx:yyyy MyDeviceManufacturer
...

次に、USBツリーを見て、デバイスを見つけます(私はバス2、開発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のように)。

26
austinmarton

答え オースティンマートンが与えたに加えて、あなたは実行することができます

lsusb -v -d VPID | grep -i interface

ここで、VPIDはlsusbで報告されるベンダー/製品IDです。例えば:

$ 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構成のデバイスになります

これらの値は10進数で指定されていますが、仕様では16進数値でそれらを参照しています...

50h (80d): USB Mass Storage Class Bulk-Only (BBB) Transport
62h (98d): Allocated by USB-IF for UAS. 

この情報は マスストレージ仕様sb.org のセクション3プロトコルコード、表2-マスストレージトランスポートプロトコルにあります。

UASPをサポートするマシンとデバイスの両方でこの値が報告されるかどうかは不明なので、これが最初の質問と2番目の質問のどちらに答えるかはわかりません。

10
user8675309

答えを完成させるには:

コントローラがUASをサポートするnotをサポートしている場合、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、
人間ロボット内部。

4