Como encontrar a razão pela qual um notebook acorda?

9

Estou tendo um problema com a suspensão do meu notebook, mas depois acordo quando não o quero (imediatamente ou muito mais tarde quando está na mala - talvez eu tenha dois problemas a resolver aqui). Mas, no momento, esta pergunta é sobre solução de problemas: existe um comando que eu possa executar que me diga qual foi o gatilho da última resumeação? Por exemplo, se uma tecla foi pressionada ou o botão liga / desliga, se era um sinal de ativação na LAN, se estava alternando da energia CA para a massa, etc., etc.

Parece que no Windows você pode digitar powercfg -lastwakepara descobrir isso. Então, eu estou procurando o equivalente Linux desse comando.

Se não houver esse comando, o que preciso procurar em qual arquivo de log?

(Mint 16, xfce, Lenova Thinkpad, kernel 3.11.0-12-genérico)

Darren Cook
fonte

Respostas:

3

Como você possui um ThinkPad, além das outras sugestões (preliminares systemd), se você estiver usando o thinkpad_acpidriver, poderá dar uma olhada /sys/devices/platform/thinkpad_acpi/wakeup_reason. Este arquivo contém um número informando se o controlador incorporado ativou o seu laptop por razões comoBateria Fraca (pelo menos eu pensei que sim), solicitação de remoção de dock, etc.

Como Documentation/laptops/thinkpad-acpi.txtafirma:

wakeup_reason:
    Set to 1 if the system is waking up because the user
    requested a bay ejection.  Set to 2 if the system is
    waking up because the user requested the system to
    undock.  Set to zero for normal wake-ups or wake-ups
    due to unknown reasons.
Andreas Wiese
fonte
4

Sistemas com systemd

Nos sistemas que fazem uso, systemdvocê pode consultar o log do systemd usando o journalctlcomando

Exemplo

Aqui, por exemplo, meu sistema dormiu com a tampa sendo fechada e, quando eu o abri, você veria eventos relacionados a isto assim:

$ journalctl | less
...
May 19 09:04:47 greeneggs.bubba.net kernel: PM: Syncing filesystems ... done.
May 19 09:04:47 greeneggs.bubba.net kernel: PM: Preparing system for mem sleep
May 19 09:33:42 greeneggs.bubba.net kernel: Freezing user space processes ... (elapsed 0.002 seconds) done.
May 19 09:33:42 greeneggs.bubba.net systemd[1]: Time has been changed
May 19 09:33:42 greeneggs.bubba.net systemd-logind[772]: Lid opened.
...

Sistemas sem systemd

Para sistemas que não usam, systemdvocê tem vários lugares para procurar. Você pode, para começar, procurar no dmesglog. Você também pode procurar /var/log/syslogmensagens relacionadas ao gerenciamento de energia ou a eventos relacionados à ACPI.

Eu começaria dando uma olhada /var/log/pm_suspend.log, supondo que ela exista. Especialmente em distros como o Linux Mint, você provavelmente encontrará mensagens como esta:

Thu Feb 21 21:21:50 GMT 2013: Running hooks for hibernate.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate:
/usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate: success.
Running hook /usr/lib/pm-utils/sleep.d/00logging hibernate hibernate:
...

Referências

slm
fonte
Mas, systemd não é o padrão no Mint ou no Debian. Ele está incluído apenas como uma prévia no Debian-stable atualmente.
Thomas Hughes
@ BuyHughes - sim, eu sei, estou procurando a maneira de fazer isso nas versões anteriores.
slm
0

Você pode começar com dmesg, verifique, man dmesgmas pode tentar dmesg -k.

Thomas Hughes
fonte
dmesg -k | wc -ldá 3298 :-) BTW, isso me diz algo diferente de olhar /var/log/kern.log?
Darren Cook
O @DarrenCook apenas identifica quando a suspensão / retomada aconteceu e analisa a seção que será wc -lmuito menos.
Thomas Hughes