LINUX.ORG.RU

WD MY PASSPORT 25E8 & UASP

 , ,


1

2

Имеется два внешних жёстких usb диска wd my passport WDBUAX0040B (My Passport 25E8)

Сделал запрос в WD, поддерживают ли данные диски технологию UASP, нужную для работы ncq. Вендор ответил, что «Мы подтверждаем, что My Passport поддерживают технологию UASP.»

Но в моём случае она почему то не работает

Согласно документации, если устройство в Linux поддерживает технологию UASP оно, должно автоматически использовать драйвер uas, а если не поддерживает, то драйвер usb-storage

Из моей конфигурации следует, что используется драйвер usb-storage, а не uas, соответственно расширенные возможности, такие как ncq не работают.

Вывод длины очереди для диска WD My passport

130 tm4ig@newpc ~ % cat /sys/block/sdb/device/queue_depth
1
таком образом ncq не работает

Вывод из утилиты lshw для диска WD My passport где видно, что для него используется драйвер usb-storage

*-usbhost:1
product: xHCI Host Controller
vendor: Linux 5.10.8-arch1-1 xhci-hcd
physical id: 1
bus info: usb@2
logical name: usb2
version: 5.10
capabilities: usb-3.10
configuration: driver=hub slots=4 speed=10000Mbit/s
*-usb
description: Mass storage device
product: My Passport 25E8
vendor: Western Digital
physical id: 2
bus info: usb@2:2
version: 40.04
serial: 575834314442364134465654
capabilities: usb-3.00 scsi
configuration: driver=usb-storage maxpower=896mA speed=5000Mbit/s
вывод логов ОС, где видно что к устройство применяется драйвер usb-storage
tm4ig@newpc ~ % sudo journalctl -b0 | grep usb-storage
фев 01 18:15:26 newpc kernel: usb-storage 2-2:1.0: USB Mass Storage device detected
фев 01 18:15:26 newpc kernel: scsi host9: usb-storage 2-2:1.0
фев 01 18:15:26 newpc kernel: usbcore: registered new interface driver usb-storage
вывод логов и списка модулей ОС, где видно что драйвер uas загрузился, но не применяется ни к каким устройствам
tm4ig@newpc ~ % sudo journalctl -b0 | grep uas
фев 01 18:15:26 newpc kernel: usbcore: registered new interface driver uas

tm4ig@newpc ~ % lsmod| grep uas
uas 32768 0
usb_storage 81920 2 uas
Диск подключён в usb порт 3.1 Gen 2 на платформе AMD, но также пробовал на платформе Intel с usb 3.0, там также не работает uas, а только usb-storage
при этом по информации hdparm сам диски всё-таки поддерживает ncq
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* DOWNLOAD_MICROCODE
* Advanced Power Management feature set
Power-Up In Standby feature set
* SET_FEATURES required to spinup after power up
* 48-bit Address feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* 64-bit World wide name
* IDLE_IMMEDIATE with UNLOAD
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* Gen1 signaling speed (1.5Gb/s)
* Gen2 signaling speed (3.0Gb/s)
* Gen3 signaling speed (6.0Gb/s)
* Native Command Queueing (NCQ)
* Phy event counters
* Idle-Unload when NCQ is active
* NCQ priority information
* READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
DMA Setup Auto-Activate optimization
Software settings preservation
* SMART Command Transport (SCT) feature set
* SCT Write Same (AC2)
* SCT Features Control (AC4)
* SCT Data Tables (AC5)
unknown 206[7]
unknown 206[12] (vendor specific)
unknown 206[13] (vendor specific)
* DOWNLOAD MICROCODE DMA command
* WRITE BUFFER DMA command
* READ BUFFER DMA command
* Data Set Management TRIM supported (limit 255 blocks)
* Deterministic read data after TRIM
В связи с этим вопрос, это наврал вендор о поддержки технологии или это какая-то багафича для данных дисков в linux и можно ли всё-таки заюзать UASP



Последнее исправление: tm4ig (всего исправлений: 2)

не пользовался, но по идее можно просто отключить устройство от одного драйвера и подключить к другому. Но говорят не на всех чипсетах это могут поддерживается.
Почитай https://www.spinics.net/lists/linux-usb/msg166853.html
Может чем поможет.

Atlant ★★★★★
()

Где-то в драйвере ядра есть блеклист неподдерживаемых устройств, люди его обходят с помощью переопределения quirks. Вот инструкция для рапсберри, она должна подойти и для обычных дистров.

cocucka ★★★★☆
()

wd написал «мы поддерживаем, только оперативные системы Mac и Windows, поэтому мы не можем уточните, по какой причине UASP технология недоступна на Linux.»

tm4ig
() автор топика
Ответ на: комментарий от cocucka

мне кажется в инструкции обратная ситуация, когда нестабильно работающее usb-устройство с поддержкой uas принудительно добавляют в блэклист, чтобы работал usb-storage

tm4ig
() автор топика

Скорее всего будет достаточным установить корректный provisioning_mode для бриджа и в 95% это будет unmap :)

«Перманентно» режим можно зафиксировать udev правилом, например:

$ cat /etc/udev/rules.d/50-asm1xxx.rules 
ACTION=="add|change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="55aa", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"

USB идентификаторы, естественно, нужно заменить на свои.

anonymous
()
Ответ на: комментарий от tm4ig

Ну да, там обратная ситуация, это я прочитал по диагонали и не обратил внимание, что они отключают UASP.

Но всё равно, твой хард может быть в черном списке и поэтому работать через usb-storage. В логах нет строк типа UAS is blacklisted for this device, using usb-storage instead?

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

такой строки нет

[root@newpc ~]# journalctl -b0 | grep blacklisted
[root@newpc ~]# 
 

tm4ig
() автор топика

Дык весь кусок лога с подключением и настройкой устройства приведи. Может для этого устройства uas и не используется.

Или lsusb -t хотя бы. Если используется UASP, то должно быть что-то типа такого:

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M

Radjah ★★★★★
()

Попробуй вручную привязать устройство к нужному драйверу:

echo 2-2:1.0 > /sys/bus/usb/drivers/usb-storage/unbind
echo 2-2:1.0 > /sys/bus/usb/drivers/uas/bind
iliyap ★★★★★
()

мне кажется WD звездят про поддержку технологии. Скачал win10, залил её на загрузочную флэшку и проверил тамошной утилитой, там тоже не работает uasp

tm4ig
() автор топика
Ответ на: комментарий от iliyap

отвязать получилось, а привязать нет

[root@newpc ~]# echo 2-2:1.0 > /sys/bus/usb/drivers/uas/bind
-bash: echo: write error: No such device

tm4ig
() автор топика
Ответ на: комментарий от Radjah
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
    |__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

Я посмотрел повнимательней, в BIOS и в ОС по сути определяется два устройства, собственно сам диск и некий SES Device

фев 05 15:48:49 newpc kernel: scsi 9:0:0:0: Direct-Access     WD       My Passport 25E8 4004 PQ: 0 ANSI: 6
фев 05 15:48:49 newpc kernel: scsi 9:0:0:1: Enclosure         WD       SES Device       4004 PQ: 0 ANSI: 6

tm4ig
() автор топика
Ответ на: комментарий от tm4ig

Не берусь утверждать на 100%, но WD в своём My Passport что-то мутят типа шифрования на уровне железа. Возможно, что из-за этого не работает UASP.

Radjah ★★★★★
()
Ответ на: комментарий от tm4ig

lsusb тебе показывает дерево

usb2 -- корневой хаб
  2-2 -- usb mass storage в порту 2 корневого хаба
  2-4 -- usb mass storage в порту 4 корневого хаба

Каждый usb mass storage это отдельный scsi host, scsi target, и набор scsi lun-ов. Например, в usb card reader-е на несколько карт один scsi host, один scsi target, и по одному scsi lun на каждый слот для карты.

dmesg (или lsscsi) тебе показывает scsi lun-ы. Так как изменение номера lun в младшем числе, это lun-ы с одного таргета. Значит это всё с одного usb-устройства (видимо 2-2).

Пришли ещё lsusb -v -s 2:2. На usb-устройствах, поддерживающих UAS, по мнению разработчиков драйвера, должно быть:

  1. альтернативная конфигурация
  2. интерфейс class 8, subclass 6, protocol 98
  3. четыре эндпоинта

Иначе действительно будет ENODEV при попытке байнда.

А SES Device это SCSI Enclosure Service. Обычно это что-то для управления и мониторинга обвеса на дисковой корзине: питание, светодиоды, температурные датчики, вентиляторы, и т.п.

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от iliyap
[root@newpc ~]#  lsusb -v -s 2:2

Bus 002 Device 002: ID 1058:25e8 Western Digital Technologies, Inc. My Passport 25E8
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x1058 Western Digital Technologies, Inc.
  idProduct          0x25e8 
  bcdDevice           40.04
  iManufacturer           2 Western Digital
  iProduct                3 My Passport 25E8
  iSerial                 1 575834314442364134465654
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x002c
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              896mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x0016
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x0000f41e
      BESL Link Power Management (LPM) Supported
    BESL value     1024 us 
    Deep BESL value    61440 us 
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

tm4ig
() автор топика
Последнее исправление: tm4ig (всего исправлений: 2)
Ответ на: комментарий от iliyap

я это уже смотрел и сделал вывод, что uas отсутствует, но на всякий случай задал вопрос производителю, как написано в начале темы его ответ был «Мы подтверждаем, что My Passport поддерживают технологию UASP.» Я проверил на винде, там то же UASP не работает, думаю производитель просто ошибся (возможно в более новых ревизиях он действительно работает, но в моей версии нет, хотя я им указал точную модель и серийники).

tm4ig
() автор топика
Последнее исправление: tm4ig (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.