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/diskstats
e coloca o disco em suspensão (ou seja, deixa-o girar) após um determinado período de tempo ocioso.