Como posso verificar se o modo USB3.0 UASP (Protocolo USB Attached SCSI) está ativado no Linux?

22

Eu tenho um laptop rodando o Ubuntu 15.04 (3.19.0-21-genérico) e um externo USB3.0 de 2,5 "SATA HDD que afirma que ele suporta o modo UASP ( o modelo S2510BPU33 da StarTech ). Não tenho problemas em montar a unidade ou ler / escrevendo para ele.

Gostaria de confirmar o seguinte:

  1. O próprio dispositivo realmente suporta UASP
  2. Se o meu chipset também suporta UASP
  3. Se o dispositivo está usando o UASP quando eu o monto

Onde podemos encontrar essa informação?

    
por ali_m 16.06.2015 / 20:22

4 respostas

22

Se você souber o nome do seu dispositivo, encontre os números do barramento USB e do dispositivo:

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

Então olhe para a árvore USB e encontre o seu dispositivo (o meu era o 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
...

Você pode ver no meu caso o driver uas .

Se o UAS não estiver em uso, você verá usb-storage (como o Dev 3 no meu caso).

    
por 22.06.2015 / 09:15
9

Além de a resposta austinmarton deu, você pode executar

lsusb -v -d VPID | grep -i interface

em que VPID é o ID do fornecedor / produto informado em lsusb . Por exemplo:

$ 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 

Observe que o único valor bInterfaceProtocol listado é 80 Bulk-Only . Este dispositivo não seria um dispositivo configurado para UASP. No entanto, se você vir um bInterfaceProtocol 98 adicional, este seria um dispositivo configurado pelo UASP.

Esses valores são dados em decimal, mas a especificação se refere a eles por seus valores hexadecimais ...

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

Esta informação pode ser encontrada na Especificação de armazenamento em massa em usb.org , seção 3 Códigos de protocolo, Tabela 2 - Protocolo de transporte de armazenamento em massa.

Não tenho certeza se isso responde à sua primeira ou segunda pergunta, já que não está claro se esse valor seria relatado em ambas as máquinas / dispositivos que suportam UASP e aqueles que não o fazem.

    
por 18.03.2017 / 23:17
3

Para completar a resposta:

Se o seu controller não suporta o UAS, o kernel do linux tem a gentileza de lhe dizer:

$ 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.

Além disso, o lsusb mostra uma linha para bInterfaceProtocol 98, mas está vazia:

$ 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,
O robô humano dentro.

    
por 20.08.2018 / 00:38
-1

Você deve verificar se o driver UAS está sendo usado para o seu disco . Primeiro, identifique o disco em questão:

   # dmesg | grep sdb
   ...................
   sd 9:0:0:1: [sdb] Attached SCSI disk

Então, meu dispositivo é um disco SCSI. Aqui você encontra as informações sobre os drivers atualmente em uso,

   # ls /sys/bus/scsi/drivers
     sd  sr

Portanto, no meu caso, o driver apropriado é sd ou sr . Para verificar qual deles, eu tento

   # cd /sys/bus/scsi/drivers/sd/9:0:0:1
   # 

Portanto, meu driver é sd .Você pode verificar que o diretório / sys / bus / scsi / drivers / sr / 9: 0: 0: 1 faz não existe. Daí meu disco externo não é UASP.

    
por 17.06.2015 / 14:01