Come trovare la ragione per cui un notebook si sveglia?


9

Ho un problema con la sospensione del mio notebook, ma poi mi sveglio quando non lo voglio (né immediatamente, né molto più tardi quando nella borsa - potrei avere due problemi da risolvere qui). Ma per il momento questa domanda riguarda la risoluzione dei problemi: c'è un comando che posso eseguire che mi dirà qual è stato il trigger per l'ultima resumeazione? Ad esempio se è stato premuto un tasto o il pulsante di accensione, se si trattava di un segnale wake-on-lan, se stava passando dall'alimentazione CA alla pastella, ecc. Ecc.

Sembra che su Windows sia possibile digitare powercfg -lastwakeper scoprirlo. Quindi sto cercando l'equivalente Linux di quel comando.

Se non esiste tale comando, cosa devo cercare, in quale file di registro?

(Menta 16, xfce, Thinkpad Lenova, kernel 3.11.0-12-generico)

Risposte:


3

Dato che hai un ThinkPad, oltre agli altri suggerimenti (preliminari al systemdsuggerimento), se stai usando il thinkpad_acpidriver, potresti dare un'occhiata /sys/devices/platform/thinkpad_acpi/wakeup_reason. Questo file contiene un numero che ti dice se il controller incorporato ha svegliato il tuo laptop per ragioni comebatteria scarica (almeno pensavo di sì), richiesta di rimozione del dock, ecc.

Come Documentation/laptops/thinkpad-acpi.txtafferma:

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.

4

Sistemi con systemd

Sui sistemi che ti fanno uso systemdpuoi consultare il registro di systemd usando il journalctlcomando.

Esempio

Qui, ad esempio, il mio sistema è andato a dormire dal coperchio chiuso e quindi quando l'ho aperto, vedresti eventi correlati a questo in questo modo:

$ 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.
...

Sistemi senza systemd

Per i sistemi che non usano systemdhai una varietà di posti in cui cercare. Potresti iniziare dal dmesgregistro. È inoltre possibile cercare /var/log/syslogmessaggi relativi alla gestione dell'alimentazione o ad eventi ACPI.

Vorrei dare un'occhiata /var/log/pm_suspend.log, supponendo che esista. Soprattutto su distro come Linux Mint, probabilmente troverai messaggi come questo lì:

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:
...

Riferimenti


Ma systemd non è predefinito in Mint o Debian. Attualmente è incluso solo come anteprima in Debian-stable.
Thomas Hughes,

@GuyHughes - sì, lo so, sto cercando il modo di farlo nelle versioni precedenti.
slm

0

Puoi iniziare dmesg, controlla man dmesgma potresti provare dmesg -k.


dmesg -k | wc -ldà 3298 :-) A proposito, questo mi dice qualcosa di diverso da guardare /var/log/kern.log?
Darren Cook,

@DarrenCook identifica semplicemente quando si è verificata la sospensione / ripresa e analizza quella sezione che sarà wc -lmolto meno.
Thomas Hughes,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.