Wie finde ich den Grund, warum ein Notebook aufwacht?

9

Ich habe ein Problem mit dem Anhalten meines Notebooks, wache dann aber auf, wenn ich es nicht möchte (entweder sofort oder viel später, wenn ich in der Tasche bin - hier müssen möglicherweise zwei Probleme gelöst werden). Im Moment geht es bei dieser Frage jedoch um die Fehlerbehebung: Gibt es einen Befehl, den ich ausführen kann, der mir sagt, was der Auslöser für die letzte resumeAktion war? ZB ob eine Taste gedrückt wurde oder der Netzschalter, ob es sich um ein Wake-on-Lan-Signal handelte, ob von Wechselstrom auf Batter geschaltet wurde usw. usw.

Es scheint, dass Sie unter Windows eingeben können powercfg -lastwake, um dies herauszufinden. Also suche ich nach dem Linux-Äquivalent dieses Befehls.

Wenn es keinen solchen Befehl gibt, wonach muss ich in welcher Protokolldatei suchen?

(Mint 16, xfce, Lenova Thinkpad, Kernel 3.11.0-12-generic)

Darren Cook
quelle

Antworten:

3

Da Sie neben den anderen Vorschlägen (vorläufiger systemdHinweis) ein ThinkPad haben, sollten Sie sich den thinkpad_acpiTreiber ansehen , wenn Sie ihn verwenden /sys/devices/platform/thinkpad_acpi/wakeup_reason. Diese Datei enthält eine Nummer, die angibt, ob der eingebettete Controller Ihren Laptop aus folgenden Gründen aufgeweckt hatniedriger Batteriestatus (zumindest dachte ich das), Anfrage zum Entfernen des Docks usw.

Als Documentation/laptops/thinkpad-acpi.txtStaaten:

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
quelle
4

Systeme mit systemd

Auf Systemen, die systemdSie verwenden, können Sie das Systemd-Protokoll mit dem journalctlBefehl durchsuchen .

Beispiel

Hier schlief beispielsweise mein System aus, nachdem der Deckel geschlossen wurde, und wenn ich ihn öffnete, wurden folgende Ereignisse angezeigt:

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

Systeme ohne systemd

Für Systeme, die nicht verwendet werden systemd, haben Sie eine Vielzahl von Orten zu suchen. Sie könnten für den Anfang in das dmesgProtokoll schauen . Sie können auch nach /var/log/syslogNachrichten suchen , die sich auf Energieverwaltung oder ACPI-bezogene Ereignisse beziehen.

Ich würde zunächst einen Blick darauf werfen /var/log/pm_suspend.log, vorausgesetzt, es existiert. Insbesondere in Distributionen wie Linux Mint finden Sie dort wahrscheinlich Nachrichten wie diese:

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

Verweise

slm
quelle
Systemd ist jedoch nicht standardmäßig in Mint oder Debian. Es ist derzeit nur als Vorschau in Debian-Stable enthalten.
Thomas Hughes
@GuyHughes - ja, ich weiß, ich suche nach einer Möglichkeit, dies unter früheren Versionen zu tun.
slm
0

Sie können mit beginnen dmesg, überprüfen, man dmesgaber Sie möchten es vielleicht versuchen dmesg -k.

Thomas Hughes
quelle
dmesg -k | wc -lgibt 3298 :-) Übrigens, sagt mir das etwas anderes als das Anschauen /var/log/kern.log?
Darren Cook
@DarrenCook identifizieren Sie einfach, wann die Unterbrechung / Wiederaufnahme stattgefunden hat, und analysieren Sie den Abschnitt, der wc -lzu viel weniger wird.
Thomas Hughes