Ubuntu 16.04 ne s'arrête pas après une suspension ou une mise en veille prolongée


14

En fait ma question peut apparaître identique à celle-ci dans ce forum (et aussi celle-ci ailleurs ); en effet, la question est la même, mais je la pose quand même parce que je peux donner plus d'informations et parce que j'ai essayé une solution trouvée sur le web (ce qui pourrait aggraver les choses).

J'avais l'habitude d'hiberner Ubuntu 15.10 (en fermant le couvercle). Maintenant que je l'ai mis à jour en 16.04 (je pensais que c'était une bonne chose, puisque cette version est LTS, contrairement au 15.10), je ne peux plus utiliser l'hibernation (ni la suspension!): Si j'essaye de l'utiliser, Ubuntu ne le fait pas '' t éteignez, juste l'écran devient noir, le voyant d'alimentation est allumé, et je ne peux rien faire d'autre que de l'éteindre manuellement (appui long sur le bouton d'alimentation). Lorsque je le rallume, je vois les lignes suivantes

entrez la description de l'image ici

puis Ubuntu démarre.

De là, j'ai essayé avec

sudo -s
echo shutdown > /sys/power/disk
echo disk > /sys/power/state

et

sudo -s
echo platform > /sys/power/disk
echo disk > /sys/power/state

Seul le premier a fonctionné en partie et une seule fois: en partie, je veux dire qu'après la fermeture brutale, la session a été récupérée.

Ensuite, j'ai essayé de suivre cette suggestion . Je n'ai pas compris les commentaires écrits après les commandes, alors j'ai littéralement entré les commandes telles qu'elles sont (pensant qu'une erreur comme "cette commande / ce dossier n'existe pas" se serait produite s'il y avait quelque chose à remplacer dans les commandes ):

ÉDITER

cat /proc/meminfo
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8M
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
sudo -b gedit /etc/fstab
free -m
swapon

mount | grep " / "
sudo blkid -g
sudo blkid
sudo filefrag -v /swapfile | grep "First block:"
sudo filefrag -v /swapfile
echo "resume=UUID=cdXX--X18 resume_offset=66050" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo -b gedit /boot/grub/menu.lst
sudo -b gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=cdXX--X18 resume_offset=66050"
sudo update-grub -y
sudo update-initramfs -u

Peut-être que cela a été une idée terrible, puisque maintenant je comprends cela.

IMG:

En fin de compte, j'ai trouvé la question liée ci-dessus et je suis allé ici , mais je ne sais pas quoi faire.

EDIT 2 En ce moment si j'entre

...$ sudo swapon -s

Je n'obtiens absolument rien

...$

C'est peut-être à cause du BIOS. Dans mon BIOS, je vais à la gestion de l'alimentation et il devrait y avoir une option sur ce qu'il faut faire en cas de suspension. Normalement, le mien est S1 mais S3 est la chose.
dat tutbrus

Poignardez dans le noir ici, mais vous devez examiner vos paramètres du BIOS et les parcourir. Sortez votre manuel et consultez-le. J'ai eu d'innombrables problèmes dans le passé qui avaient un commutateur BIOS comme solution.
Jonathan

1
Annuler la très mauvaise idée. Il s'agissait d'une preuve de concept permettant à Ubuntu d'utiliser l'espace de swap pour l'hibernation. En tant que root avec sudo, supprimez la dernière ligne ajoutée de /etc/initramfs-tools/conf.d/resumeet les deux strophes de reprise ajoutées etc/default/grub, exécutez les deux dernières lignes pour mettre à jour grub et initrd. Supprimer / swapfile. Courez sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target. Essayez l'une de ces cibles avec sudo systemctl suspend. Ce qui se produit?
emk2203

À la fin, j'ai décidé de réinstaller Ubuntu 15.10. Maintenant, l'hibernation fonctionne à nouveau. Je vais peut-être installer 16.04 sur une autre partition. Quand je le ferai, je ferai référence à cette question et réponses.
Enrico Maria De Angelis

Réponses:


6

Forcer l'hibernation à éteindre la machine:

Après avoir longuement cherché une réponse à cette question qui résolvait réellement le problème (pas les problèmes liés), j'ai trouvé ici une astuce qui a fait le travail pour moi:

Créez un fichier dans le pmrépertoire config:

sudo vim /etc/pm/config.d/hibernate_mode

qui définit la variable HIBERNATE_MODEcomme suit:

HIBERNATE_MODE="shutdown"

Après cela, la mise en veille prolongée a mis la machine hors tension comme prévu. Une explication de ce que fait le paramètre se HIBERNATE_MODEtrouve dans le manuel de pm-hibernate :

Méthode par défaut pour mettre le système hors tension lors de l'hibernation. S'il n'est pas défini, le système utilisera la valeur par défaut du noyau comme valeur par défaut. Vérifiez / sys / power / disk pour les valeurs valides. La valeur par défaut sera entourée de [crochets].

Mon défaut dans ce fichier était platform. Définir la variable ci-dessus pour shutdownremplacer cela et obtenir ce que nous voulons se produire.

Informations et conseils connexes pour que la mise en veille prolongée fonctionne correctement:

En ce qui concerne ces «problèmes connexes», tout le monde semble avoir des conseils de débogage hibernants et rapides:

  1. Vérifiez que la commande sudo pm-hibernatefait réellement quelque chose. Sinon, aucun de ces autres conseils ne fera de différence. Si cela ne fonctionne pas, assurez-vous 1) que la taille de votre partition de swap est supérieure à celle de votre RAM et 2) que le démarrage sécurisé est désactivé dans votre BIOS.

  2. Une fois que cette commande fonctionne, envisagez d'intégrer hibernate dans votre système à votre guise. Quelques exemples courants:

    • Ajouter hibernate au menu Ubuntu: Cela semble être la meilleure réponse pour moi. La documentation officielle a également une version légèrement différente.
      Remarque: une fois la mise en veille prolongée ajoutée au menu Ubuntu, vous devrez peut-être également corriger l'appel alternatif sudo systemctl hibernate. Apparemment, (au moins pour Ubuntu 16.04), l'option de menu Ubuntu appelle à la sudo systemctl hibernateplace de sudo pm-hibernate. systemctl hibernatea été corrigé pour moi en ajoutant le contenu suivant au fichier /etc/systemd/sleep.conf:

      [Sleep]
      HibernateMode = arrêt

      Si le fichier n'existe pas encore, vous pouvez le créer. Plus d'infos ici .

    • Modifiez le comportement du bouton d'alimentation (par défaut, il s'affiche dans le menu interactif): pour le modifier en hibernation directe ou en arrêt, vous devez modifier l' entrée gsettings associée . Beaucoup d'autres réponses passent par l'interface graphique si cela fait flotter votre bateau. Pour voir les options disponibles, utilisezgsettings range org.gnome.settings-daemon.plugins.power button-power


2

En voyant votre dernière image et EDIT 2 , je peux comprendre qu'Ubuntu ne trouve pas de partition de swap sur votre système. Je vous suggère donc de créer une partition Swap égale ou supérieure à la taille de votre RAM, puis réessayez en exécutant

sudo pm-hibernate

Vous pouvez créer une partition d'échange à l'aide de GParted, exécutez-la pour l'installer

sudo apt-get install gparted

2

J'ai eu le même problème après la mise à niveau du 15.10 vers le 16.04:

  • La fermeture du couvercle n'a rien fait
  • La suspension manuelle avec l'élément de menu dans la barre d'état système a entraîné un état semi-suspendu avec la seule issue pour réinitialiser le système.

J'ai résolu ces problèmes en

  1. mise à niveau du noyau vers 4.4.8 (après cette suspension du menu a fonctionné pour moi)
  2. Ajout de la ligne HandleLidSwitchDocked=suspendà /etc/systemd/logind.conf (ce qui a fait basculer le couvercle pour qu'il fonctionne à nouveau).

Je pense que les deux problèmes sont des bogues qui devraient être corrigés ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1574120 ).


Cela a-t-il résolu le problème de la suspension uniquement ou de l'hibernation?
Enrico Maria De Angelis

0

La mise en veille prolongée a été désactivée par défaut.

Essaye ça

sudo pm-hibernate

Si le test de mise en veille prolongée fonctionne, vous pouvez continuer à utiliser la commande sudo pm-hibernate lorsque vous souhaitez mettre en veille prolongée.

Vous pouvez également activer l'option de mise en veille prolongée dans les menus. Pour ce faire, utilisez votre éditeur de texte préféré pour créer /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla. Ajoutez ce qui suit au fichier et enregistrez:

[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.hibernate-multiple-sessions
ResultActive=yes

En savoir plus sur Hibernation 16.04 à partir de ce lien

Éteindre

sudo shutdown -h now

Recommencer

sudo shutdown -r now

Comme je l'ai écrit, sudo pm-hibernate fonctionnait très bien avant de mettre à niveau le formulaire 15.10 vers 16.04LTS. Le problème devrait donc concerner la version 16.04LTS. De plus, j'ai peut-être fait quelque chose de très mal en suivant les instructions sans les comprendre. Pourriez-vous m'aider à corriger ces problèmes?
Enrico Maria De Angelis
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.