Impedir que o disco rígido USB externo gire durante a suspensão na RAM

Impedir que o disco rígido USB externo gire durante a suspensão na RAM

Sempre que a máquina (Linux 4.4.0-38-genérico, Ubuntu 16.04) for suspensa na RAM, meu disco rígido Western Digital 2TB portátil USB 3.0 (modelo WDBU6Y0020BBK) irá girar e continuar girando indefinidamente. Por que a unidade não foi enviada para o modo de suspensão/espera?

A julgar pelo LED da unidade, o acesso à unidade (que a ativa) acontece muito tarde no procedimento de suspensão: devido a um pequeno atraso, a unidade gira de forma audível mesmo depois que a máquina já está em suspensão (ou seja, concluiu a suspensão).

O dispositivo de armazenamento em questão está conectado ao Barramento 3, Porta 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

Para esclarecer o assunto, usei as opções do cmdline do kernel initcall_debug no_console_suspend ignore_loglevel dyndbg="file suspend.c +p"e da IntelAnalisarSuspenderferramenta de depuração para coletar saída dmesg e ftrace. O primeiro pode ser encontradoaquie o último é bastante extenso (>340M), mas não contém erros óbvios:

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

Além disso, o problema não parece pertencer aos módulos do driver, uma vez que repetir o procedimento de suspensão e retomada sudo modprobe -r uas usb_storage(que permite que a unidade gire e hiberne) não causou nenhuma alteração! A unidade girou de qualquer maneira.

Alguma dica sobre o que procurar e/ou tentar em seguida?

Para sua informação: eu uso uma ferramenta de monitoramento (hd-ocioso) que observa /proc/diskstatse coloca o disco em suspensão (ou seja, deixa-o girar) após um determinado período de tempo ocioso.

informação relacionada