Erzwingen Sie den Ruhezustand, indem Sie den Ruhezustand anstelle von pm-hibernate verwenden


15

Ich arbeite mit 18.04 und versuche, auf meinem System den Ruhezustand anstelle des PM-Ruhezustands zu verwenden, wenn sich der Deckel meines Laptops schließt.

Ich habe eine Swap-Partition von 20 GB auf 16 GB RAM, also viel Platz.

Wenn ich pm-hibernate verwende, erhalte ich einen kleinen Apci-Fehler, der sehr schnell auftritt, wenn ich mich im Ruhezustand befinde und wenn ich eine Wiederherstellung durchführe, die ich nicht lesen kann. Während der Ruhezustand in dem Sinne funktioniert, dass er auf die Festplatte kopiert und von der Festplatte wiederhergestellt wird, scheint es sich um einen Ruhezustand zu handeln, in dem der Akku mit einer normalen Geschwindigkeit verwendet wird, anstatt vollständig herunterzufahren und den Akku nicht mehr zu verwenden.

Wenn ich jedoch den von installierten Ruhezustand verwende:

sudo apt-get install hibernate

Und Renn:

sudo hibernate

Und nach der Wiederherstellung stelle ich fest, dass sich mein Computer tatsächlich ausschaltet - die LEDs hören auf zu pochen usw. - und der Akkuverbrauch geht auf Null. Dies ist das Verhalten, das ich gerne sehen würde, wenn sich mein Deckel schließt, und nicht das Verhalten im Ruhezustand, bei dem die Batterie verwendet wird, als würde ich den Computer aktiv nutzen.

Ich habe diese Anleitungen befolgt:

geändert

/etc/systemd/logind.conf

einschließen:

#HandleLidSwitch=suspend
HandlelidSwitch=hibernate

Und fügte hinzu, meine Swap-Partition zu ändern in:

/etc/default/grub

Um den richtigen Lebenslauf = Link einzuschließen, und forderte s2disk speziell mit:

sudo cat /etc/pm/config.d/00sleep_module
SLEEP_MODULE="swsusp"

Ich habe den folgenden verwandten askubuntus gelesen:

Ich habe auch diese Links in den Foren von Lenovo und Arch gelesen:

Wie kann ich sicherstellen, dass der von lid-close aufgerufene Ruhezustand Ruhezustand und nicht Ruhezustand ist?

Aktualisieren

Dies ist immer noch ein Problem und macht das Carbon X1 6. Gen mit Ubuntu grundsätzlich unbrauchbar. Alle Lösungen, die dies beheben und möglicherweise zusätzlich eine Anmeldeaufforderung hinzufügen, sind möglicherweise fast so gut wie ein Windows-Computer vor 4 Jahren ...;)


@Mittenchops Ich könnte dieses Problem für mich lösen, bitte schauen Sie auf askubuntu.com/questions/1028947/…
Christopher Will

1
Können Sie Ihrer Frage bitte die Protokolldaten aus einem vollständigen Ruhezustand-Wiederaufnahmezyklus hinzufügen? Es sollte in sein /var/log/pm-suspend.log. Vielen Dank.
David Foerster

@Mittenchops nicht sicher, aber vielleicht hängt mein Problem mit Ihrem zusammen. meins ist auch eine lenovo hardware.
ViBE

1
Ich benutze keinen Ruhezustand , aber man könnte versuchen , die Umbenennung /usr/sbin/pm-hibernatezu /usr/sbin/pm-hibernate.OLD. Dann erstelle /usr/sbin/pm-hibernatebash scxript, das den hibernateBefehl enthält . Verwenden Sie type -a hibernate, um den genauen Pfad für den Befehl zu finden. Es existiert nicht auf meinem System, weil ich es nicht installiert habe.
WinEunuuchs2Unix

Ich habe meine Antwort mit dem Wrapper-Skript aktualisiert, das am 14. Juli 2014 vorgeschlagen wurde.
WinEunuuchs2Unix

Antworten:


1

Ich hasse es auch, eine URL übergeben zu müssen, also werde ich die Informationen kopieren und einfügen und die Webseite an den unteren Rand anhängen. Ich sehe das nicht in deinem Link.

Als ich dies las, bemerkte ich, dass der Ruhezustand möglicherweise nicht funktioniert, wenn Sie mit dem btrfs-Dateisystem formatiert haben? Wie wird der Ruhezustand in Ubuntu 16.04 dauerhaft aktiviert?

Um den Ubuntu-Ruhezustand dauerhaft zu machen, müssen Sie eine neue Datei mit einem Texteditor in der Befehlszeile erstellen:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Das System benötigt Root-Rechte, um die Option für den Ruhezustand zu aktivieren. Daher sollte der Befehl sudo hinzugefügt werden. Sie können andere Texteditoren wie vi, gedit, emacs usw. verwenden.

Kopieren Sie nun den folgenden Text und fügen Sie ihn in eine Datei ein (verwenden Sie die Maus; Tastaturkürzel funktionieren nicht):

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

Drücken Sie CTRL+ Ozum Speichern und CTRL+ Xzum Verlassen des Nano-Editors.

Melden Sie sich jetzt von Ihrem System ab und dann erneut an. Sie sehen nun eine Option für den Ruhezustand sowie die Optionen Herunterfahren und Anhalten.

Der Link für Ihre Bequemlichkeit lautet: https://fossbytes.com/enable-disable-hibernate-option-ubuntu-power-menu/


2
Dies scheint nicht zu funktionieren in 18.04
Mittenchops

1

Zwei Optionen

Die erste (zweite) Option besteht darin, journalctlmögliche Fehlermeldungen im Zusammenhang mit dem Ruhezustand zu überprüfen . Wenn die erste Option keine Ergebnisse liefert, besteht die zweite Option darin, ein Wrapper-Skript zu erstellen, das pm-hibernatedurch `hibernate ersetzt wird.

Wrapper-Skript erstellen

Das Erstellen eines Wrapper-Skripts ermöglicht hibernatedas Ersetzen pm-hibernate.

Befehle zum Suchen von Verzeichnissen befinden sich in

Bevor Sie ein Wrapper-Skript erstellen, müssen Sie wissen, in welchen Verzeichnissen sich die Befehle hibernateund pm-hibernatebefinden. Verwenden Sie diese beiden Befehle:

$ locate bin/hibernate
/mnt/c/Program Files (x86)/CyberPower PowerPanel Business Edition/bin/hibernate.dll

$ locate bin/pm-hibernate
/mnt/clone/usr/sbin/pm-hibernate
/mnt/old/usr/sbin/pm-hibernate
/usr/sbin/pm-hibernate

Das Wrapper-Skript, das Sie erstellen möchten, lautet /usr/sbin/pm-hibernate. Ich habe das hibernatePaket nicht installiert, sodass bei der ersten Suche nur ein Windows-Dienstprogramm gefunden wird. Laut Paketdateiliste sollte es /usr/sbin/hibernatezusammen mit ein paar anderen Dateien enthüllen .

Originaldatei sichern

Zuerst möchten wir eine Online-Sicherungskopie der Originaldatei erstellen:

sudo cp -a /usr/sbin/pm-hibernate /usr/sbin/pm-hibernate.bak

Als nächstes löschen Sie die Originaldatei:

sudo rm -f /usr/sbin/pm-hibernate

Erstellen Sie ein Wrapper-Skript

Hinweis: anstelle eines Wrapper - Skript viele finden es einfacher , für einen symbolischen Link zu erstellen , pm-hibernateum hibernate: Wie eine weiche oder einen symbolischen Link zu erstellen?

Ich benutze es gerne geditfür die Bearbeitung, aber Sie können es durch nanooder vimoder einen beliebigen Editor ersetzen, den Sie bevorzugen:

sudo -H gedit /usr/sbin/pm-hibernate

Eine leere Datei wird angezeigt. Fügen Sie die folgenden Zeilen ein

#!/bin/bash
# Wrapper script to replace pm-hibernate with hibernate package
/usr/sbin/hibernate "$@"

Konvertieren Sie das Wrapper-Skript in eine ausführbare Datei

Derzeit ist das Wrapper-Skript eine reguläre Datei. Wir müssen es in ein ausführbares Objekt konvertieren:

sudo chmod a+x /usr/sbin/pm-hibernate

Wir haben jetzt ein funktionsfähiges Wrapper-Skript, sodass stattdessen jedes Mal Runs pm-hibernateaufgerufen hibernatewerden. Wie oben bereits erwähnt, sollten Sie journalctlzuerst nachlesen (wie im Folgenden beschrieben), bevor Sie ein Wrapper-Skript erstellen.

Rezension journalctl

Sie können grepden Ruhezustand Nachrichten journalctlfür mögliche Probleme.

Ich benutze keinen Winterschlaf, aber ich benutze Suspend. Mit dem folgenden Befehl kann ich alle Nachrichten anzeigen, durch suspenddie Sie ersetzen würden hibernate:

$ journalctl -b | grep -i suspend
Oct 09 22:26:33 alien eyesome[21740]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 09 22:26:48 alien systemd[1]: Starting TLP suspend/resume...
Oct 09 22:26:48 alien systemd[1]: Started TLP suspend/resume.
Oct 09 22:26:48 alien systemd[1]: Starting Suspend...
Oct 09 22:26:48 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 09 22:26:48 alien eyesome[22952]: Wakeup: Going to suspend.  Creating: /tmp/eyesome-is-suspending
Oct 09 22:26:49 alien systemd-sleep[22938]: Suspending system...
Oct 10 04:26:38 alien kernel: PM: Suspending system (mem)
Oct 10 04:26:38 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 04:26:38 alien kernel: PM: suspend of devices complete after 1142.044 msecs
Oct 10 04:26:38 alien kernel: PM: late suspend of devices complete after 19.766 msecs
Oct 10 04:26:38 alien kernel: PM: noirq suspend of devices complete after 61.505 msecs
Oct 10 04:26:38 alien kernel: Suspended for 21583.011 seconds
Oct 10 04:26:38 alien eyesome[23137]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 04:26:38 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 04:26:38 alien eyesome[23168]: Wakeup: Called from suspend.
Oct 10 04:26:41 alien systemd[1]: Started Suspend.
Oct 10 04:26:41 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 04:26:41 alien systemd[1]: Reached target Suspend.
Oct 10 04:26:41 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 04:26:41 alien systemd[1]: Stopped target Suspend.
Oct 10 04:26:42 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 04:26:52 alien eyesome[24459]: Daemon: Removed file: /tmp/eyesome-is-suspending
Oct 10 05:47:09 alien eyesome[12434]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 05:51:43 alien systemd[1]: Starting TLP suspend/resume...
Oct 10 05:51:44 alien systemd[1]: Started TLP suspend/resume.
Oct 10 05:51:44 alien systemd[1]: Starting Suspend...
Oct 10 05:51:44 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 10 05:51:44 alien eyesome[28367]: Wakeup: Suspending.  Creating /tmp/eyesome-is-suspending
Oct 10 05:51:45 alien systemd-sleep[28353]: Suspending system...
Oct 10 16:30:59 alien kernel: PM: Suspending system (mem)
Oct 10 16:30:59 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 16:30:59 alien kernel: PM: suspend of devices complete after 623.519 msecs
Oct 10 16:30:59 alien kernel: PM: late suspend of devices complete after 19.654 msecs
Oct 10 16:30:59 alien kernel: PM: noirq suspend of devices complete after 61.549 msecs
Oct 10 16:30:59 alien kernel: Suspended for 38348.943 seconds
Oct 10 16:30:59 alien eyesome[28563]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 16:30:59 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 16:30:59 alien eyesome[28599]: Wakeup: Called from suspend.
Oct 10 16:31:02 alien systemd[1]: Started Suspend.
Oct 10 16:31:02 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 16:31:02 alien systemd[1]: Reached target Suspend.
Oct 10 16:31:02 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 16:31:02 alien systemd[1]: Stopped target Suspend.
Oct 10 16:31:03 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 16:31:13 alien eyesome[30020]: Daemon: Removed file: /tmp/eyesome-is-suspending

Wie sudo -H /usr/sbin/pm-hibernateöffnet man einen Editor? Ich versuche den Anweisungen zu folgen und möchte keine Vermutungen
Stewart

1
@Stewart Guter Fang. Es sollte so lauten, sudo -H gedit /usr/sbin/pm-hibernatewie ich es gerade geändert habe.
WinEunuuchs2Unix

1
@Stewart Ruhezustand mit geschlossenem Deckel, Ein- / Ausschalter oder Menüoption?
WinEunuuchs2Unix

1
Endlich behoben! Ihr Vorschlag gab mir genügend Hinweise, dass ich mit etwas Google-Fu bei unix.stackexchange.com/a/386837
Stewart,

1
@Stewart Freut mich zu hören. Vielen Dank für den Hinweis auf die Unix- und Linux-Antwort. Ich habe dafür gestimmt.
WinEunuuchs2Unix
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.