Forcer l'hibernation en utilisant hibernate au lieu de pm-hibernate

15

J'utilise 18.04 et j'essaie que mon système utilise hibernate au lieu de pm-hibernate lorsque le couvercle de mon ordinateur portable se ferme.

J'ai une partition de swap de 20 Go sur 16 Go de RAM, donc beaucoup d'espace.

Lorsque j'utilise pm-hibernate, j'obtiens une petite erreur apci qui apparaît très rapidement lors de l'hibernation et de la restauration que je ne peux pas lire. Bien que la mise en veille prolongée fonctionne dans le sens où elle semble être vidée sur le disque et restaurée à partir du disque, elle semble être un état de veille dans la mesure où elle utilise la batterie à un taux normal, plutôt que de s'arrêter complètement et de cesser d'utiliser la batterie.

Cependant, lorsque j'utilise la mise en veille prolongée installée par:

sudo apt-get install hibernate

Et courir:

sudo hibernate

Et restaurer à partir de cela, je remarque que ma machine s'arrête en fait --- les LED cessent de palpiter, etc. --- et l'utilisation de la batterie devient nulle. C'est le comportement que j'aimerais voir lorsque mon couvercle se ferme, pas le comportement de sommeil qui utilise la batterie comme si je faisais un usage actif de l'ordinateur.

J'ai suivi ces guides:

modifié

/etc/systemd/logind.conf

inclure:

#HandleLidSwitch=suspend
HandlelidSwitch=hibernate

Et ajouté mon changement de partition de swap dans:

/etc/default/grub

Pour inclure le bon CV = lien, et a demandé s2disk spécifiquement avec:

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

J'ai lu le askubuntus connexe suivant:

J'ai également lu ces liens sur les forums Lenovo et Arch:

Comment puis-je m'assurer que l'hibernation appelée par couvercle fermé est hibernée et non pm-hibernée?

Mise à jour

C'est toujours un problème et rend le Carbon X1 6ème génération fondamentalement inutile avec Ubuntu. Toutes les solutions qui pourraient résoudre ce problème et éventuellement ajouter une invite de connexion pourraient être presque aussi bonnes qu'une machine Windows d'il y a 4 ans ...;)

Mittenchops
la source
@Mittenchops Je pourrais résoudre ce problème pour moi, veuillez consulter askubuntu.com/questions/1028947/…
Christopher Will
1
Pouvez-vous s'il vous plaît ajouter les données du journal d'un cycle de reprise d'hibernation complet à votre question? Cela devrait être /var/log/pm-suspend.log. Merci.
David Foerster
@Mittenchops n'est pas sûr, mais mon problème est peut - être lié au vôtre. le mien est également un matériel Lenovo.
ViBE
1
Je ne me hibernation mais vous pouvez essayer de le renommer /usr/sbin/pm-hibernateà /usr/sbin/pm-hibernate.OLD. Créez ensuite /usr/sbin/pm-hibernatebash scxript qui contient la hibernatecommande. Utilisez type -a hibernatepour trouver le chemin exact de la commande. Il n'existe pas sur mon système car je ne l'ai pas installé.
WinEunuuchs2Unix
J'ai mis à jour ma réponse avec le script wrapper proposé le 14 juillet 2018.
WinEunuuchs2Unix

Réponses:

1

Je déteste aussi devoir passer une URL, je vais donc copier et coller les informations et attacher la page Web en bas. Je ne vois pas cela dans votre lien.

En lisant ceci, j'ai remarqué que l'hibernation peut ne pas fonctionner si vous avez formaté avec le système de fichiers btrfs? Alors, comment l'hibernation est-elle activée en permanence dans Ubuntu 16.04?

Pour rendre le processus d'hibernation d'Ubuntu permanent, vous devez créer un nouveau fichier à l'aide d'un éditeur de texte sur la ligne de commande:

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

Le système nécessite des privilèges root pour activer l'option d'hibernation, par conséquent, la commande sudo doit être ajoutée. Vous pouvez utiliser d'autres éditeurs de texte comme vi, gedit, emacs, etc.

Maintenant, copiez et collez le texte suivant dans un fichier (utilisez la souris; les raccourcis clavier ne fonctionneront pas):

[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

Appuyez sur CTRL+ Opour enregistrer et sur CTRL+ Xpour quitter l'éditeur nano.

Maintenant, déconnectez-vous de votre système, puis reconnectez-vous. Vous verrez maintenant une option de mise en veille prolongée, ainsi que les options Arrêter et Suspendre.

Le lien pour votre commodité est: https://fossbytes.com/enable-disable-hibernate-option-ubuntu-power-menu/

plutesci
la source
2
Cela ne semble pas fonctionner en 18.04
Mittenchops
1

Deux options

La première option (indiquée en deuxième) consiste à journalctlrechercher d'éventuels messages d'erreur liés à l'hibernation. Si la première option ne produit pas de résultats, la deuxième option consiste à créer un script wrapper qui remplace pm-hibernatepar `hibernate.

Créer un script Wrapper

La création d'un script wrapper permet hibernatede remplacer pm-hibernate.

Les commandes de recherche de répertoires se trouvent dans

Avant de créer un script wrapper, vous devez savoir dans quels répertoires résident les commandes hibernateet pm-hibernate. Utilisez ces deux commandes:

$ 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

Le script wrapper que vous souhaitez créer sera /usr/sbin/pm-hibernate. Je n'ai pas le hibernatepaquet installé, donc la première recherche ne trouve qu'un utilitaire Windows. Selon la liste des fichiers du package , il devrait apparaître /usr/sbin/hibernateavec quelques autres fichiers.

Sauvegarder le fichier d'origine

Nous voulons d'abord faire une copie de sauvegarde en ligne du fichier d'origine:

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

Supprimez ensuite le fichier d'origine:

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

Créer un script wrapper

Remarque: au lieu d'un script wrapper beaucoup trouvent plus facile de créer un lien symbolique pour pm-hibernateà hibernate: Comment créer un chiffon doux ou un lien symbolique?

J'aime utiliser geditpour l'édition, mais vous pouvez le remplacer par nanoou vimou selon l'éditeur que vous préférez:

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

Un fichier vide apparaîtra. Coller dans les lignes suivantes

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

Convertir le script wrapper en exécutable

Actuellement, le script wrapper est un fichier standard. Nous devons le convertir en un objet exécutable:

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

Nous avons maintenant un script d'encapsulage opérationnel, donc chaque fois pm-hibernateest appelé à la hibernateplace. Comme mentionné en haut cependant, vous devez d' journalctlabord passer en revue (décrit ci-dessous) avant de créer un script wrapper.

La revue journalctl

Vous pouvez greples messages d'hibernation journalctlpour les problèmes possibles.

Je n'utilise pas hibernate mais j'utilise suspend. La commande suivante me permet de voir tous les messages suspendauxquels vous voudriez remplacer 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
WinEunuuchs2Unix
la source
Comment sudo -H /usr/sbin/pm-hibernateouvre un éditeur? J'essaie de suivre les instructions, je ne veux pas faire d'hypothèses
Stewart
1
@Stewart Good catch. Il faut lire sudo -H gedit /usr/sbin/pm-hibernatecomme je viens de changer.
WinEunuuchs2Unix
1
@Stewart Hibernez-vous avec la fermeture du couvercle, le bouton d'alimentation ou l'option de menu?
WinEunuuchs2Unix du
1
Enfin corrigé! Votre suggestion m'a donné assez d'indices, qu'avec un peu de google-fu, je me suis retrouvé à unix.stackexchange.com/a/386837
Stewart
1
@Stewart Heureux d'entendre. Merci d'avoir signalé la réponse Unix et Linux. Je l'ai voté.
WinEunuuchs2Unix