Zum Hauptinhalt springen

Wenn dein ThinkPad vor dir einschläft

·763 Wörter·4 min·
Inhaltsverzeichnis

Intro
#

London, ein sonniger Sonntag, 11 Uhr. Ich habe gerade zwei Schlucke von meinem ersten Eiskaffee genommen, mein treues ThinkPad T14 Gen1 steht auf einem dieser kleinen runden Holztische in einem Café.

Der Plan: Ein GitHub-Repo erstellen und einen kleinen Bot entwickeln, der mir bei ein paar nervigen Aufgaben hilft, die mir von Zeit zu Zeit begegnen, und dabei ein bisschen “Ich bin produktiv im Café”-Selbstzufriedenheit erlangen.

Mitten im Tippen macht es plötzlich KLACK, und anstatt mein brandneues Repo zu bewundern, starre ich plötzlich auf den schwarzen Bildschirm meines ThinkPads, auf dem sich ein sehr verwirrter Cybersicherheitsexperte spiegelt.

Dieser sofortigen Narkolepsie bin ich schon einmal begegnet. Aber bisher habe ich es immer nur abgetan und den Einschaltknopf gedrückt, in der Hoffnung, dass dies nur eine einmalige Seltsamkeit ist.

Heute, wo das Koffein bereits zu wirken beginnt, ist nicht der Tag, um dieses Problem zu ignorieren. Zeit, dieses Rätsel ans Tageslicht zu zerren. Während ich mich mental schon darauf vorbereite, etwas physisch reparieren oder ein neues ThinkPad kaufen zu müssen, beginne ich mit der Untersuchung.

Ein kurzer Blick auf die üblichen Verdächtigen
#

Prüfpunkt Was wir überprüfen Ergebnis
KDE-Energieeinstellungen Überprüfen, ob die Ruhestandszeiten und alles auf vernünftige Werte eingestellt ist “sieht soweit gut aus”
BIOS / Firmware System auf der neuesten Firmware & alles auf dem neuesten Stand BIOS & Firmware auf den neuesten verfügbaren Versionen
BIOS-Schlafzustand Sicherstellen, dass die vom BIOS bereitgestellte Sleep-State-API auf Linux eingestellt ist

Alles sieht soweit gut aus, also warum schläft mein Laptop einfach ein :/?

Betreten des Dungeons Journals
#

Fragen wir unser treues journalctl, was zum Teufel da los war.

journalctl -u systemd-logind --since "1 hour ago"

Mit dem obigen Befehl können wir die Logs untersuchen, die vom systemd-logind-Dienst in der letzten Stunde ausgegeben wurden. Dieser Dienst ist für alle Benutzeranmeldungen und die zugehörigen Benutzersitzungen verantwortlich. Wenn dein Laptop also in den Ruhezustand wechselt, kannst du das hier sehen.

Bei mir hat der obige Befehl die folgende Ausgabe erzeugt.

Jul 13 11:03:53 <hostname> systemd-logind[<pid>]: Lid closed.
Jul 13 11:03:54 <hostname> systemd-logind[<pid>]: The system will suspend now!
Jul 13 11:03:54 <hostname> systemd-logind[<pid>]: Lid opened.
Jul 13 11:04:17 <hostname> systemd-logind[<pid>]: Operation 'suspend' finished.

(Der Hostname und die PID wurden in der obigen Ausgabe zensiert.)

Jetzt haben wir die rauchende Waffe
Der Deckelsensor wurde ausgelöst, was das System denken ließ, ich hätte den Laptop zugeklappt, und es daher in den Ruhezustand versetzte, was die angemessene Reaktion auf einen geschlossenen Deckel ist. Das einzige Problem ist, dass ich meinen Laptop nicht zugeklappt habe.

Warum denkst du, ich hätte dich zugeklappt?
#

Jetzt gilt es herauszufinden, warum der Deckelverschluss-Sensor ausgelöst wurde, ohne dass ich den verdammten Deckel geschlossen habe.

Wie funktionieren Deckelverschluss-Sensoren?
#

Zuerst müssen wir einen kleinen Umweg machen und darüber sprechen, wie Deckelverschluss-Sensoren funktionieren. In den meisten Laptops wird ein kleiner Magnet im Deckel oberhalb des Bildschirms und ein Hall-Effekt-Sensor verwendet, der Änderungen im Magnetfeld erkennen kann. Dieser Sensor sitzt entsprechend im Bereich unterhalb der Tastatur des Laptops.

Experimentierzeit!
#

Man kann den close/open-Status des Deckelverschluss-Sensors unter Linux mit dem folgenden Befehl live überwachen.

watch -n0.5 cat /proc/acpi/button/lid/LID*/state

Um Änderungen in diesem Sensor zu beobachten (und ihn dabei nicht in den Ruhezustand zu versetzen), müssen wir die “Ruhezustandsfunktion bei Deckelschluss” in den Energieverwaltungseinstellungen deaktivieren. Andernfalls geht das System in den Ruhezustand, in dem Moment, in dem wir den Sensor auslösen.

Bei einem ThinkPad ist dies jedoch immer noch nicht genug, da der Deckelschalter hardwired ist, um die LCD-Hintergrundbeleuchtung des eingebauten Panels auszuschalten. Dies ist etwas, das man nicht deaktivieren kann, ohne den Deckelverschluss-Schalter vollständig zu deaktivieren.

Daher funktioniert dieser Befehl für mich nicht wirklich, aber vielleicht hilft es dir ja :D

Glücklicherweise können wir überprüfen, ob wir den Schalter versehentlich mit etwas Magnetischem auslösen.

Den Übeltäter identifizieren
#

Jetzt, mit allen Einstellungen an ihrem Platz und dem eingebauten watch-Befehl vom ThinkPad (wenn der Bildschirm schwarz wird, haben wir den Sensor ausgelöst), können wir sehen, was den Sensor auslöst.

Ich habe eine dieser schicken neuen Apple Watches, die ein MAGNETISCHES Armband hat. Siehe das folgende Video für eine Demonstration.

So haben wir das Geheimnis gelüftet. Ich trage meine Uhr an meinem rechten Handgelenk, was dazu führt, dass das magnetische Uhrenarmband gelegentlich auf den Deckelverschluss-Sensor trifft und diesen auslöst, wodurch der Ruhezustand aktiviert wird.

Wie ich das Problem in Zukunft handhabe
#

Jetzt könnte ich den Deckelverschluss-Sensor deaktivieren oder ändern, was passiert, wenn man ihn auslöst. Aber da ich den Deckelverschluss-Sensor wirklich nicht so oft ausgelöst habe, habe ich mich entschieden, ein neues Uhrenarmband (nicht magnetisch) zu bestellen und vorerst einfach darauf zu achten, dass ich dort nichts Magnetisches ablege.