Linux에서 USB3.0 UASP (USB 연결 SCSI 프로토콜) 모드가 활성화되어 있는지 어떻게 확인할 수 있습니까?


25

Ubuntu 15.04 (3.19.0-21-generic)를 실행하는 랩톱과 UASP 모드 ( StarTech의 S2510BPU33 모델)를 지원한다고 주장하는 외장 USB3.0 2.5 "SATA HDD 인클로저가 있습니다. 드라이브를 마운트하는 데 문제가 없습니다. 그것에 읽기 / 쓰기.

다음을 확인할 수 있습니다.

  1. 장치 자체가 실제로 UASP를 지원한다는 것
  2. 칩셋이 UASP도 지원하는지 여부
  3. 장치를 마운트 할 때 UASP를 사용하는지 여부

이 정보는 어디에서 찾을 수 있습니까?

답변:


25

장치 이름을 알고있는 경우 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과 같이) 볼 수 있습니다.


1
훌륭합니다-포인트 3을 훌륭하게 해결합니다. 만약 보이지 않는다면 Driver=uas, 왜 칩셋이나 장치 (또는 둘 다)가 UAS를 지원하지 않는지 알 수 있습니다. . 누군가 다른 두 가지 포인트에 대답 할 수 있도록 주중까지 질문을 열어 두겠습니다. 그렇지 않으면 귀하의 답변을 수락하겠습니다.
ali_m

1
1 & 2에 대한 답변도 알고 싶습니다. 답을 알아 내면 답변을 수정하겠습니다.
austinmarton

10

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 구성 장치합니다.

이 값은 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를 지원하는 컴퓨터와 장치와 그렇지 않은 장치 모두에서이 값이보고 될지 확실하지 않기 때문에 이것이 첫 번째 또는 두 번째 질문에 대한 답변인지 확실하지 않습니다.



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

HTH,

R. Daneel olivaw,
인간 로봇 내부.


명확히하기 위해 bInterfaceProtocol 98 라인의 존재는이 특정 장치가 UAS에 필요한 프로토콜을 지원한다는 것을 나타냅니다. 그러나 UAS 지원 여부에 관계없이 해당 라인은 항상 "빈"입니다 (즉, 텍스트 설명 문자열이 없음). (실제로는 비어 있습니다. /var/lib/usbutils/usb.ids에 클래스 8 / 서브 클래스 6 / 프로토콜 62에 대한 설명이없고 프로토콜 50에 대해 "Bulk-Only"설명과 함께 제공되기 때문입니다.
4

-1

디스크에 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 우선은 다시 한 번 확인 할 수있는 디렉토리에 있음을 0 : 0 : 1 / SYS / 버스 / SCSI / 드라이버 / SR / 9 않습니다 하지 존재한다. 따라서 내 외부 디스크는 UASP가 아닙니다.


3
나는이 대답이 정확하다고 생각하지 않으며 SD 및 SR 드라이버는 UAS에 대해 알려주지 않습니다. UAS를 사용하는 디스크가 있고 SD 드라이버 ( lxr.free-electrons.com/source/drivers/scsi/sd.c )를 사용합니다. 예쁜 확인 SR 드라이버 (CD / DVD 드라이버입니다 lxr.free-electrons.com/source/drivers/scsi/sr.c )
austinmarton

sd / sr이 uas / usb-storage와 다른 계층에서 작동하기 때문입니다.
grawity
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.