web-dev-qa-db-fra.com

Impossible de reprendre après la mise en veille prolongée

J'ai utilisé hibernate avec Ubuntu 16.04 sans problème, mais soudainement, il a cessé de fonctionner correctement. Que je hiberne depuis le menu d'alimentation ou que j'utilise Sudo pm-hibernate, l'ordinateur est éteint, mais lorsque je le rallume et que je choisis Ubuntu dans le menu de menu, il ne reste qu'un écran noir. J'ai essayé quelques solutions (énumérées ci-dessous) mais aucune n'a fonctionné.

Je suis vraiment déçu de constater qu'avec chaque version d'Ubuntu que j'utilise, j'ai généralement des problèmes similaires avec l'hibernation (avec différents ordinateurs portables).

PS: J'ai le double démarrage avec Windows 10, mais hibernate fonctionnait parfaitement avec cela pendant longtemps.

N'a pas fonctionné:

8
Karim Sonbol

Merci à tous pour vos réponses. Le problème a été résolu dans le noyau 4.15. Je viens d'essayer maintenant et ça marche. 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-generic.

1
Karim Sonbol

J'ai eu les mêmes problèmes. Il y a un bogue dans le noyau le plus récent dans 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 ...", une option de menu permettait de 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/gr.back

Sudo gedit/etc/default/grub

Puis j'ai 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 utiliser le résultat de la commande grep précédente, comme indiqué. Puis sauvegardez et,

Sudo update-grub

Puis redémarrez et vérifiez que le résultat de "uname -r" est l'ancien noyau (4.10 ... dans mon cas). Vous pourrez peut-être hiberner maintenant ou non. Sinon, passez à l'étape suivante.

2. Installez des choses différentes à mettre en veille prolongée par rapport à celle 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 une veille prolongée, mais le contenu de l’image disque s’effaçait, c’est-à-dire qu’il était identique à un redémarrage, pas à une veille prolongée. J'ai donc installé des conneries qui hibernent différemment:

Sudo apt-get install uswsusp

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

Sudo s2disk

Ceci est censé hiberner l'ordinateur. Si, après la reprise, tout est comme vous l'avez laissé, vous avez résolu le problème. Cependant, vous devez toujours passer à l’étape 4 pour indiquer à Ubuntu que vous souhaitez utiliser les nouveaux éléments par défaut et que vous souhaitez également disposer d’options de veille prolongée dans les applications.

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

Cela ne fonctionnait toujours pas pour moi, alors je devais dire à grub où se trouvait la partition d'échange:

chat/etc/fstab

Je pouvais lire là-bas "# swap était sur/dev/sda2 lors de l'installation", alors j'ai à nouveau édité grub:

Sudo gedit/etc/default/grub

Et ajouté:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = désactiver le CV =/dev/sda2"

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

Sudo update-grub

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

Sudo s2disk

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

4. Dire à Ubuntu d’utiliser le nouveau matériel de veille prolongée que vous avez installé à la place de la valeur par défaut:

Vous devez maintenant dire à Ubuntu d'utiliser s2disk pour mettre en veille prolongée au lieu des éléments fournis par défaut:

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

Et insérez là:

SLEEP_MODULE = "uswsusp"

Enregistrez et fermez le fichier. Ensuite:

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

Et insérez là:

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

Identité = utilisateur-unix: *

Action = org.freedesktop.upower.hibernate

ResultActive = yes

[Réactiver la veille prolongée par défaut dans logind]

Identité = utilisateur-unix: *

Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; org.freedesktop.login1; org.freedesktop.login1.hibernate-plusieurs-sessions; org.freedesktop.login1.hibinate-ignore- inhiber

ResultActive = yes

Redémarrez et essayez à nouveau.

5. Si, après l'exécution de l'étape 4, vous ne pouvez pas mettre en veille prolongée à l'aide de Sudo systemctl hibernate, procédez comme suit

L'étape 4 n'est pas suffisante pour passer à uswsusp dans Ubuntu 18.10.

Modifier le service d'hibernation

Sudo systemctl edit 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 lançant ce qui suit

Sudo systemctl hibernate

7
Mephisto

Ce problème me préoccupait également ... et après de nombreuses tentatives, un correctif consistait à réinstaller Ubuntu 18.04, qui fonctionne maintenant parfaitement. J'utilise également le pilote "testé" de Nvidia, car Nvidia était le coupable auparavant.

Peut-être était-ce le "ppa" "Sudo add-apt-repository ppa: graphics-drivers" qui a installé "Extra" et/ou le pilote 396 qui a gâché la capacité d'hibernation de mon ordinateur portable. Quoi qu'il en soit, cela fonctionne parfaitement à l'heure où nous écrivons avec le pilote testé 390 de NVidia. Avant de passer au nouveau pilote a travaillé.

2

@ Karim j'ai eu le même problème, voici comment le réparer:

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

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

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

Dans /etc/default/grub j'ai utilisé une entrée séparée pour reprendre le mode veille prolongée

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

Créez un kit de stratégie 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 des applications et utilisez systemctl hibernate (sans Sudo) pour voir si cela fonctionne.

2
Roey