web-dev-qa-db-fra.com

Forcer l'hibernation à l'aide de hibernate au lieu de pm-hibernate

Je suis sous 18.04 et j'essaie de laisser mon système utiliser le mode hibernation au lieu de pm-hibernate lorsque le couvercle de mon ordinateur portable se ferme.

J'ai une partition d'échange 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, ce que je ne peux pas lire. Tandis que l'hibernation fonctionne dans le sens où il semble basculer sur le disque et restaurer à partir du disque, il semble être en état de veille en ce sens qu'il utilise la batterie à un taux normal, plutôt que de s'éteindre complètement et de cesser de l'utiliser.

Cependant, lorsque j'utilise l'hibernation installée par:

Sudo apt-get install hibernate

Et courir:

Sudo hibernate

Et restaurer à partir de cela, je remarque que ma machine est en fait en arrêt --- les voyants cessent de battre, etc. --- et l'utilisation de la batterie passe à zéro. C’est le comportement que je voudrais voir à la fermeture de mon couvercle, et non le comportement du sommeil qui utilise la batterie comme si j’utilisais activement l’ordinateur.

J'ai suivi ces guides:

modifié

/etc/systemd/logind.conf

inclure:

#HandleLidSwitch=suspend
HandlelidSwitch=hibernate

Et ajouté mon changement de partition swap dans:

/etc/default/grub

Pour inclure le bon curriculum vitae = lien, et s2disk demandé spécifiquement avec:

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

J'ai lu le askubuntus lié suivant:

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

Comment puis-je m'assurer que l'hibernation appelée par lid-close est en hibernation et non en hibernation?

Mettre à jour

C'est toujours un problème et rend toujours la Carbon X1 6ème génération fondamentalement inutile avec Ubuntu. Toute solution qui pourrait résoudre ce problème et éventuellement ajouter une invite de connexion pourrait être presque aussi bonne qu'une machine Windows à partir de 4 ans auparavant ...;)

14
Mittenchops

Deux options

La première option (indiquée en second lieu) consiste à examiner journalctlpour les éventuels messages d'erreur liés à la mise en veille prolongée. Si la première option ne produit pas de résultats, la seconde option consiste à créer un script wrapper qui remplace pm-hibernate par `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 les commandes hibernateet pm-hibernate résident. 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. Le package hibernatene étant pas installé, la première recherche ne trouve qu'un utilitaire Windows. Selon liste des fichiers du paquet , il devrait révéler /usr/sbin/hibernate avec quelques autres fichiers.

Sauvegarde du fichier d'origine

Premièrement, nous voulons faire une copie de sauvegarde en ligne du fichier original:

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

Ensuite, supprimez le fichier d'origine:

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

Créer un script de wrapper

Remarque: au lieu d'un script d'encapsulation, il est beaucoup plus facile de créer un lien symbolique pour pm-hibernate à hibernatename__: Comment créer un lien symbolique ou logiciel) lien?

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 un script wrapper en exécutable

Actuellement, le script d'emballage est un fichier normal. Nous devons le convertir en un objet exécutable:

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

Nous avons maintenant un script de wrapper opérationnel afin que chaque fois que pm-hibernate soit appelé hibernates'exécute à la place. Comme mentionné en haut, vous devez d'abord examiner journalctl(décrit ci-après) avant de créer un script wrapper.

Passez en revue journalctlname__

Vous pouvez greples messages d'hibernation dans journalctlen cas de problèmes éventuels.

Je n'utilise pas d'hibernation mais j'utilise suspendre. La commande suivante me permet de voir tous les messages concernant suspendque vous voudriez remplacer par hibernatename__:

$ 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
1
WinEunuuchs2Unix

Moi aussi je déteste devoir passer une URL, je vais donc copier et coller les informations et joindre la page Web au bas de la page. 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 de manière permanente dans Ubuntu 16.04?

Pour rendre le processus d'hibernation 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 de mise en veille prolongée. Par conséquent, la commande Sudo doit être ajoutée. Vous pouvez utiliser d'autres éditeurs de texte tels que 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

Presse CTRL+O pour sauvegarder et CTRL+X pour quitter l'éditeur nano.

Maintenant, déconnectez-vous de votre système, puis reconnectez-vous. Vous verrez maintenant une option de veille prolongée, ainsi que les options d'arrêt et de suspension.

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

1
plutesci