Предотвращение раскручивания внешнего жесткого диска USB во время перехода в режим ожидания в ОЗУ

Предотвращение раскручивания внешнего жесткого диска USB во время перехода в режим ожидания в ОЗУ

Всякий раз, когда машина (Linux 4.4.0-38-generic, Ubuntu 16.04) переходит в режим ожидания в ОЗУ, мой жесткий диск Western Digital 2 ТБ Portable USB 3.0 (модель WDBU6Y0020BBK) начинает вращаться и продолжает вращаться бесконечно. Почему диск не переходит в режим сна/ожидания?

Судя по светодиоду на диске, доступ к диску (который выводит его из спящего режима) происходит очень поздно в процедуре перехода в спящий режим: из-за небольшой задержки слышно, как диск раскручивается даже после того, как машина уже перешла в спящий режим (т.е. завершила переход в спящий режим).

Рассматриваемое запоминающее устройство подключено к шине 3, порту 1 ( 3-1):

$ lsusb | grep Western
Bus 003 Device 002: ID 1058:10b8 Western Digital Technologies, Inc. Elements Portable (WDBU6Y, WDBUZG)
$ lsusb -t | grep -A1 'Bus 03'
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

Чтобы пролить свет на этот вопрос, я использовал параметры командной строки ядра initcall_debug no_console_suspend ignore_loglevel dyndbg="file suspend.c +p"и IntelАнализироватьПриостановитьотладочный инструмент для сбора вывода dmesg и ftrace. Первый можно найтиздесьа последний довольно длинный (>340M), но не содержит очевидных ошибок:

$ grep err=[^0] mem_ftrace.txt ; echo $?
1

Более того, проблема, похоже, не связана с модулями драйвера, поскольку повторение процедуры приостановки и возобновления работы sudo modprobe -r uas usb_storage(позволяющей диску замедлить вращение и перейти в спящий режим) не привело ни к каким изменениям! Диск все равно заработал.

Есть ли какие-нибудь указания, на что обратить внимание и/или что попробовать дальше?

К вашему сведению: я использую инструмент мониторинга (hd-холостой ход), который следит за /proc/diskstatsдиском и переводит его в спящий режим (т. е. позволяет ему замедлить вращение) после определенного периода простоя.

Связанный контент