Forza l'ibernazione usando l'ibernazione invece di pm-ibernazione


15

Sono in esecuzione 18.04 e sto cercando di far sì che il mio sistema usi l'ibernazione anziché l'ibernazione pm quando il coperchio del mio laptop si chiude.

Ho una partizione di swap di 20 GB su 16 GB di RAM, quindi ampio spazio.

Quando uso pm-hibernate, viene visualizzato un piccolo errore apci che viene visualizzato molto rapidamente durante il letargo e il ripristino che non riesco a leggere. Mentre l'ibernazione funziona nel senso che sembra scaricare su disco e ripristinare da disco, sembra essere uno stato di sospensione in quanto utilizza la batteria a una velocità normale, piuttosto che spegnersi completamente e interrompere l'uso della batteria.

Tuttavia, quando utilizzo l'ibernazione installato da:

sudo apt-get install hibernate

E corri:

sudo hibernate

E ripristinando da ciò, noto che la mia macchina in effetti si spegne --- i LED smettono di pulsare, ecc. --- e l'utilizzo della batteria va a zero. Questo è il comportamento che vorrei vedere quando il mio coperchio si chiude, non il comportamento del sonno che utilizza la batteria come se stessi facendo un uso attivo del computer.

Ho seguito queste guide:

modificata

/etc/systemd/logind.conf

includere:

#HandleLidSwitch=suspend
HandlelidSwitch=hibernate

E ho aggiunto la mia modifica della partizione di swap in:

/etc/default/grub

Per includere il link resume = corretto e s2disk richiesto specificamente con:

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

Ho letto i seguenti askubuntus correlati:

Ho anche letto questi link sui forum Lenovo e Arch:

Come posso assicurarmi che il letargo chiamato da lid-close sia ibernato non pm-letargo?

Aggiornare

Questo è ancora un problema e rende la Carbon X1 di sesta generazione fondamentalmente inutile con Ubuntu. Qualsiasi soluzione in grado di risolvere questo problema e forse aggiungere un prompt di accesso potrebbe essere quasi come una macchina Windows di 4 anni fa ...;)


@Mittenchops Potrei risolvere questo problema per me, per favore dai un'occhiata a askubuntu.com/questions/1028947/…
Christopher Will

1
Potete per favore aggiungere i dati del registro da un ciclo completo di ripresa della sospensione alla domanda? Dovrebbe essere dentro /var/log/pm-suspend.log. Grazie.
David Foerster,

@Mittenchops non sono sicuro ma forse il mio problema è legato al tuo. il mio è anche un hardware Lenovo.
ViBE

1
Io non uso letargo ma si potrebbe provare a rinominare /usr/sbin/pm-hibernatea /usr/sbin/pm-hibernate.OLD. Quindi crea /usr/sbin/pm-hibernatebash scxript che contiene il hibernatecomando. Utilizzare type -a hibernateper trovare il percorso esatto per il comando. Non esiste sul mio sistema perché non l'ho installato.
WinEunuuchs2Unix

Ho aggiornato la mia risposta con lo script wrapper proposto il 14 luglio 2018.
WinEunuuchs2Unix

Risposte:


1

Anch'io odio dover passare un URL, quindi copierò e incollerò le informazioni e allego la pagina web in fondo. Non vedo questo nel tuo link.

Durante la lettura, ho notato che l'ibernazione potrebbe non funzionare se formattato con il file system btrfs? Quindi, come viene abilitato l'ibernazione in modo permanente in Ubuntu 16.04?

Per rendere permanente il processo di ibernazione di Ubuntu, è necessario creare un nuovo file utilizzando un editor di testo sulla riga di comando:

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

Il sistema richiede i privilegi di root per abilitare l'opzione di ibernazione, quindi è necessario aggiungere il comando sudo. Puoi usare altri editor di testo come vi, gedit, emacs, ecc.

Ora, copia e incolla il seguente testo in un file (usa il mouse; le scorciatoie da tastiera non funzioneranno):

[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

Premi CTRL+ Oper salvare e CTRL+ Xper uscire dall'editor nano.

Ora, disconnettiti dal tuo sistema e poi accedi di nuovo. Ora vedrai un'opzione di ibernazione, insieme alle opzioni Spegni e Sospendi.

Il link per la vostra convenienza è: https://fossbytes.com/enable-disable-hibernate-option-ubuntu-power-menu/


2
Ciò non sembra funzionare nel 18.04
Mittenchops il

1

Due opzioni

La prima opzione (elencata in secondo luogo) è di esaminare journalctleventuali messaggi di errore relativi all'ibernazione. Se la prima opzione non produce risultati, la seconda opzione è quella di creare uno script wrapper che sostituisca pm-hibernatecon `hibernate.

Crea script Wrapper

La creazione di uno script wrapper consente hibernatedi sostituire pm-hibernate.

I comandi Trova directory si trovano in

Prima di creare lo script wrapper è necessario sapere quali directory risiedono i comandi hibernatee pm-hibernate. Utilizzare questi due comandi:

$ 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

Lo script wrapper che si desidera creare sarà /usr/sbin/pm-hibernate . Non ho hibernateinstallato il pacchetto, quindi la prima ricerca trova solo un'utilità di Windows. Secondo l' elenco dei file del pacchetto , dovrebbe rivelarsi /usr/sbin/hibernateinsieme a un paio di altri file.

Backup del file originale

Per prima cosa vogliamo fare una copia di backup online del file originale:

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

Quindi eliminare il file originale:

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

Crea script wrapper

Nota: invece di uno script wrapper molti trovano più facile per creare un collegamento simbolico per pm-hibernateahibernate : Come creare un morbido o link simbolico?

Mi piace usare geditper la modifica, ma puoi sostituirlo con nanoo vimo qualsiasi editor che preferisci:

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

Apparirà un file vuoto. Incolla nelle seguenti righe

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

Converti script wrapper in eseguibile

Attualmente lo script wrapper è un file normale. Dobbiamo convertirlo in un oggetto eseguibile:

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

Ora abbiamo uno script di wrapper operativo, quindi ogni volta pm-hibernateviene chiamato hibernateinvece run. Come accennato in alto, tuttavia, è necessario esaminare journalctlprima (descritto di seguito) prima di creare uno script wrapper.

Revisione journalctl

È possibile inserire grepi messaggi di ibernazione journalctlper possibili problemi.

Non uso l'ibernazione ma uso la sospensione. Il seguente comando mi consente di vedere tutti i messaggi relativi a suspendcui sostituiresti 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

Come si sudo -H /usr/sbin/pm-hibernateapre un editor? Sto cercando di seguire le istruzioni, non voglio fare ipotesi
Stewart,

1
@Stewart Buona cattura. Dovrebbe leggere sudo -H gedit /usr/sbin/pm-hibernatecome ho appena cambiato.
WinEunuuchs2Unix

1
@Stewart Stai in letargo con la chiusura del coperchio, il pulsante di accensione o l'opzione di menu?
WinEunuuchs2Unix

1
Finalmente risolto! Il tuo suggerimento mi ha dato abbastanza indizio che, con un po 'di google-fu, sono finito su unix.stackexchange.com/a/386837
Stewart,

1
@Stewart Sono contento di sentire. Grazie per aver sottolineato la risposta Unix e Linux. Ho votato a favore.
WinEunuuchs2Unix
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.