GNU/Linux >> Linux の 問題 >  >> Linux

Linux で USB3.0 UASP (USB Attached SCSI Protocol) モードが有効になっているかどうかを確認するにはどうすればよいですか?

デバイスの名前がわかっている場合は、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 のように)


オースティンマートンが与えた答えに加えて、実行できます

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. 

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

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


答えを完成させるには:

コントローラがそうでない場合 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・ダニール・オリバウ
ヒューマン ロボット インサイド。


Linux
  1. Linux –論理的に切断されたUSBデバイスを再接続する方法は?

  2. LinuxでUSBベンダーと製品情報をプログラムで取得する方法は?

  3. デバイスを USB 3 ポートに接続したことを確認するにはどうすればよいですか?

  1. Linux で KPTI が有効になっているかどうかを確認するにはどうすればよいですか?

  2. Linux カーネルが Retpoline に対応しているかどうかを確認するには?

  3. Linux ホストで cgroup が使用可能かどうかを確認するにはどうすればよいですか?

  1. Linux ボックスに接続されているハードディスクを確認するにはどうすればよいですか?

  2. Python を使用しているはずの場所にボリュームがマウントされているかどうかを確認するにはどうすればよいですか?

  3. iscsi デバイスがマウントされた Linux ファイルシステムかどうかを判断するにはどうすればよいですか?