Meu novo computador, com CPU AMD Ryzen 5 7600 e rodando Ubuntu 24.04, acorda sozinho imediatamente após a suspensão. A execução systemctl suspend
resulta no sistema aparentemente entrando no estado de suspensão (a tela fica preta, a energia dos dispositivos externos é desligada), seguida logo após o despertar. Todo o processo leva alguns segundos, embora a energia dos dispositivos externos (visto por uma luz no meu mouse com fio) fique desligada por menos de 1 segundo.
Encontrei várias outras pessoas perguntando sobre esse mesmo problema, e o único conselho que encontrei sobre como determinar o que está despertando o computador é (a) inspecionar os logs para descobrir o que está despertando o computador, por exemplo, via sudo journalctl --since="-5 minutes"
ou sudo dmesg -T | tail -n 200
ou cat /var/log/syslog
. Tudo isso parece fornecer a mesma informação, o que para mim inclui linhas para o computador entrar no modo de suspensão e desabilitar CPUs e, em seguida, reiniciar imediatamente. Não vejo nenhuma indicação de por que ele está despertando.
smpboot: CPU 11 is now offline
kernel: ACPI: PM: Low-level resume complete
kernel: ACPI: PM: Restoring platform NVS memory
kernel: AMD-Vi: Virtual APIC enabled
kernel: AMD-Vi: Virtual APIC enabled
kernel: LVT offset 0 assigned for vector 0x400
kernel: Enabling non-boot CPUs ...
(b) desabilitar a capacidade de vários dispositivos de ativar o computador via echo XHC0 > /proc/acpi/wakeup Eu fiz isso e desabilitei todos os dispositivos listados em /proc/acpi/wakeup. cat /proc/acpi/wakeup | grep ena
não produz nada. Mesmo assim, meu computador continua a despertar imediatamente.
(c) systemd-inhibit: Descubra o que pode estar bloqueando a suspensão com systemd-inhibit --list --mode=block
. Quando executo isso, obtenho um resultado, do GNOME. Consegui desabilitar isso incluindo InhibitorsMax=0
em /etc/systemd/logind.conf. Após a reinicialização, o comando list não mostra resultados. Meu computador continua a despertar imediatamente, embora agora demore um pouco mais e a tela não apareça até que eu mova o mouse ou pressione uma tecla no teclado. Repetir a solução de (b), desabilitando todos os dispositivos em /proc/acpi/wakeup, novamente não tem efeito.
(d) alterar as configurações do BIOS: só vejo opções para ativação do teclado e do mouse nas configurações do BIOS. O mouse está desligado. Não quero desligar o teclado, mas testei se o computador ainda desperta automaticamente quando o teclado é desconectado.
Também tentei hibernar, que parece ter acabado de desligar o computador. Ligá-lo novamente resultou em uma inicialização normal. EDIT: Consegui fazer a hibernação funcionar agora, o que é bom, mas não resolve o problema da suspensão.
Wake on LAN está desativado. sudo ethtool enp4s0
mostra Wake-on: d
. (Nenhuma das outras duas interfaces Ethernet mostradas por ip a
tem uma entrada para Wake-on.) Também suspendi com o mouse desconectado, por precaução, e novamente com o teclado desconectado, apenas por precaução. Nenhum destes teve qualquer efeito.
O que mais posso fazer para solucionar ou possivelmente resolver esse problema?
Eu resolvi o problema. O que fiz foi remover meu arquivo de troca e criar uma partição de troca. Não tenho ideia de por que a troca é relevante para suspensão, então não tenho ideia de por que essa solução funciona.
Detalhes:
sudo swapoff /swap.img
sudo rm /swap.img
sudo mkswap [partition's device name]
sudo swapon -U [swap partition's UUID]
UUID=[swap partition's UUID] none swap sw 0 0