Ne peut pas reprendre après hibernation

8

J'utilise hibernate avec Ubuntu 16.04 sans problème, mais soudain, il a cessé de fonctionner correctement. Que j'hiberne depuis le menu d'alimentation ou que j'utilise sudo pm-hibernate, cela éteint l'ordinateur mais quand je le rallume et que je choisis Ubuntu dans le menu grub, cela donne juste un écran noir. J'ai essayé quelques solutions (énumérées ci-dessous) mais aucune n'a fonctionné.

Je suis vraiment déçu qu'avec chaque version d'Ubuntu que j'utilise, j'ai généralement des problèmes similaires avec la mise en veille prolongée (avec différents ordinateurs portables).

PS: J'ai un double démarrage avec Windows 10, mais hibernate fonctionnait parfaitement avec lui depuis longtemps.

N'a pas fonctionné:

Karim Sonbol
la source
J'ai le même problème avec un de mes ordinateurs portables - quand je reviens de l'hibernation - un écran noir. Pour moi, ça n'a jamais fonctionné. La «solution de contournement» pour mon ordinateur portable consiste à appuyer sur ALT + CTRL + F1, puis à attendre quelques secondes, puis à appuyer sur ALT + CTRL + F7. Cela le ramène à la vie (sur mon ordinateur portable).
Vanessa Deagan
Merci pour la suggestion, n'a pas fonctionné pour moi cependant.
Karim Sonbol
Que diriez-vous de simplement fermer votre couvercle et de l'ouvrir à nouveau? (vaut la peine d'essayer!)
Vanessa Deagan
Merci encore @VanessaDeagan, mais il ne s'est toujours rien passé.
Karim Sonbol
1
Si vous ne l'avez pas encore vu: bugs.launchpad.net/bugs/1743094
Steve

Réponses:

9

J'ai eu les mêmes problèmes. Il y a un bogue dans le noyau le plus récent de 16.04. Voici les étapes explicites que j'ai faites. Faites le premier et, si cela résout le problème pour vous, arrêtez-vous là. Sinon, continuez.

1. Configurez l'ordinateur pour démarrer avec le noyau précédent

Commencer avec:

uname -r

Le mien dit 4.13 ... Alors faites:

grep -i "menuentry '" /boot/grub/grub.cfg

Vous verrez les différentes entrées de menu dans grub. Dans mon cas, avec "Ubuntu, avec Linux 4.13 ...", il y avait une option de menu pour démarrer avec le noyau précédent. Il a dit Ubuntu, avec Linux 4.10.0-28-generic . Dans la même ligne, vous avez quelque chose comme 'gnulinux-4.10.0-28-generic-advanced ... (un tas de caractères ici)' Copiez ce texte, puis nous devons dire à grub2 de démarrer avec ce noyau par défaut:

sudo cp / etc / default / grub /etc/default/grub.back

sudo gedit / etc / default / grub

J'ai ensuite inséré cette ligne:

GRUB_DEFAULT = "gnulinux-advanced-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28-generic-advanced-4a50e1e8-56d9-413e-9954-55648888a31d"

Veuillez ne pas copier cette ligne littéralement, mais utilisez la sortie de la commande grep précédente comme indiqué. Ensuite, enregistrez et,

sudo update-grub

Redémarrez ensuite et vérifiez que la sortie de "uname -r" est l'ancien noyau (4.10 ... dans mon cas). Vous pouvez peut-être hiberner maintenant ou non. Sinon, passez à l'étape suivante.

2. Installez des éléments différents pour hiberner que ceux par défaut:

Dans mon cas, l'utilisation de l'ancien noyau s'est débarrassé de l'écran noir de la mort et m'a permis de reprendre après l'hibernation, mais le contenu de l'image disque allait être effacé, c'est-à-dire qu'il était identique à un redémarrage, pas à l'hibernation. J'ai donc installé une merde qui hiberne différemment:

sudo apt-get install uswsusp

Fermez ensuite le terminal, ouvrez-le à nouveau et tapez:

sudo s2disk

Ceci est censé mettre l'ordinateur en veille prolongée. Si, après la reprise, tout est comme vous l'avez laissé, vous avez résolu le problème. Mais vous devez toujours passer à l'étape 4 afin d'indiquer à Ubuntu que vous souhaitez utiliser les nouveaux éléments par défaut et également que vous souhaitez avoir des options d'hibernation dans les applications.

3. Indiquez à grub 2 où se trouve la partition de swap:

Cela ne fonctionnait toujours pas pour moi, j'ai donc dû dire à grub où se trouve la partition de swap:

chat / etc / fstab

Je pouvais y lire "# swap était sur / dev / sda2 pendant l'installation", j'ai donc édité grub à nouveau:

sudo gedit / etc / default / grub

Et ajouté:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = désactiver la reprise = / dev / sda2"

La partie importante est "resume = / dev / sda2" mais la chose précédente (intel blablabla) est là pour d'autres raisons. Eh bien, la prochaine étape est:

sudo update-grub

Redémarrez et essayez à nouveau d'hiberner avec certaines choses en cours (par exemple, ouvrez un film avec vlc) avec:

sudo s2disk

Si le contenu est toujours là après la reprise, vous avez résolu le problème.

4. Dire à Ubuntu d'utiliser les nouveaux éléments d'hibernation que vous avez installés au lieu de ceux par défaut:

Vous devez maintenant dire à Ubuntu d'utiliser s2disk pour hiberner au lieu des éléments fournis par défaut:

sudo gedit /etc/pm/config.d/00sleep_module

Et insérez-y:

SLEEP_MODULE = "uswsusp"

Enregistrez et fermez le fichier. Alors:

sudo gedit /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

Et insérez-y:

[Réactiver l'hibernation par défaut dans upower]

Identité = utilisateur unix: *

Action = org.freedesktop.upower.hibernate

ResultActive = yes

[Réactiver la mise en veille prolongée par défaut dans la connexion]

Identité = utilisateur unix: *

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- inhiber

ResultActive = yes

Redémarrez et réessayez.

5. Si après avoir exécuté l'étape 4, vous ne pouvez pas mettre en veille prolongée à l'aide de, sudo systemctl hibernateprocédez comme suit

L'étape 4 ne suffit pas pour passer à uswsusp dans Ubuntu 18.10.

Modifier le service d'hibernation

sudo systemctl modifier systemd-hibernate.service

Et ajoutez ce qui suit

[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

Mettre à jour systemd

sudo systemctl daemon-reload

Testez la configuration en exécutant ce qui suit

sudo systemctl hibernate

Mephisto
la source
Merci, j'ai choisi l'ancien noyau dans le menu de démarrage et hibernate fonctionne avec. Je vérifierai les autres étapes de mise à jour de grub plus tard, mais j'espère qu'elles corrigeront bientôt le noyau actuel.
Karim Sonbol
En fait, j'ai choisi l'ancien noyau une fois dans le menu grub, puis j'ai hiberné. Lorsque je l'ouvre à nouveau et que je choisis l'option "Ubuntu" normale sans options avancées, il se souvient en quelque sorte de mon choix et utilise l'ancien noyau, et heureusement, toutes mes applications ouvertes sont en place.
Karim Sonbol
y a-t-il une raison particulière de ne pas simplement désinstaller le nouveau noyau et de s'en tenir à l'ancien?
lrkwz
3

@karim J'ai eu le même problème ici est de savoir comment le résoudre:

Utilisez l'UUID de la partition de swap au lieu de son point de montage dans le paramètre RESUME resume=UUID=#dans les deux /etc/default/grubet/etc/initramfs-tools/conf.d/resume

Créez une entrée pour la partition de swap /etc/fstab sans point de montage quelque chose comme ceci

# Entry for Swap : 
UUID=# none  swap    sw              0       0

Dans /etc/default/grubJ'ai utilisé une entrée distincte pour reprendre l'hibernation

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

Créez un policykit dans l'autorité locale (pkla) comme expliqué par @Mephisto

Mettre à jour initramfs et GRUB

sudo update-initramfs -u -k all
sudo update-grub

Redémarrez, ouvrez certaines applications et utilisez systemctl hibernate(sans sudo) pour voir si cela fonctionne

Roey
la source
J'avais tout configuré, sauf que «sudo update-initramfs -u -k all» semblait résoudre mon problème. Je vous remercie.
Zamicol
2

J'avais aussi ce problème qui me tourmente ... et un correctif après de nombreuses tentatives a été de réinstaller Ubuntu 18.04, et maintenant cela fonctionne parfaitement. J'utilise également le pilote "testé" de Nvidia, car Nvidia était le coupable auparavant.

C'est peut-être le ppa "sudo add-apt-repository ppa: graphics-drivers" qui a installé "Extra" Stuff et / ou le pilote 396 qui a gâché la capacité d'hibernation de mon ordinateur portable. Quoi qu'il en soit, il fonctionne parfaitement à ce moment de la rédaction avec le pilote testé 390 de NVidia. Avant de passer au pilote Nouveau a fonctionné.

markackerman8-gmail.com
la source
2

Merci à tous pour vos réponses. Le problème a été résolu dans le noyau 4.15. Je viens de l'essayer maintenant et cela fonctionne. Apparemment, le noyau HWE l'a corrigé ( linux-generic-hwe-16.04 package).

Si vous utilisez Ubuntu 16.04, il vous suffit d'installer les dernières mises à jour pour mettre à niveau le noyau. Vous pouvez lire plus de détails à ce sujet ici .

Ma version actuelle du noyau est 4.15.0-33-générique.

Karim Sonbol
la source