La mise en veille et l'hibernation sont deux alternatives à l'arrêt de l'ordinateur.
Vous pouvez rapidement mettre l'ordinateur en veille via cette commande :
systemctl suspend
C'est la manière la plus simple de mettre en veille votre pc en moins d'une demi-seconde !
Selon les environnements, il existe un menu vous permettant de gérer l'arrêt, le redémarrage et la veille de votre ordinateur.
Cette section propose uniquement des méthodes pour l'environnement GNOME.
Sur Ubuntu 18.04 ou ultérieur, aller dans Paramètres système puis dans «Confidentialité» et « Verrouillage de l’écran ». Décochez la case « Verrouiller l’écran lors de la mise en veille » ou avec la commande :
gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true'
Avec systemd, mettre un fichier exécutable dans :
/lib/systemd/system-sleep
Cette méthode est confirmée/etc/apm/resume.d
(à tester, vérifier, )Le fichier exécutable peut être réalisé en n'importe quel langage.
Par défaut sous Ubuntu, pour des raisons de compatibilité matérielle l'hibernation est désactivée, vous pouvez l'activer en suivant ce tutoriel.
- La solution la plus simple est d'utiliser la commande pm-suspend-hybrid du paquet pm-utils. Cependant, les outils de gestions de batterie tel gnome-power-manager ne gèrent pas cette commande nativement et le fonctionnement est aléatoire suivant le portable. L'avantage de cette solution est que les données sont sauvegardées si vous êtes à court de batterie pendant la phase de veille, contrairement au script ci-dessous.
- Une autre façon est d'utiliser votre outil de gestion d’énergie pour mettre en veille et d'utiliser le script_shell ci dessous en parallèle. Ce script utilise la fonction rtcwake ( qui permet de réveiller l'ordinateur au bout de x secondes ) et les outils fournis dans le paquet pm-utils.
Ajouter le fichier /etc/pm/sleepd/0000rtchibernate, ce fichier va être lu par la commande pm-suspend appelé par les outils de gestion de batterie pour la mise en veille et le réveil.
Puis copier le script ci-dessous (modifier la variable autohibernate suivant vos besoins):
#!/bin/bash curtime=$(date +%s) # Éditer la variable autohibernate ci-dessous pour indiquer le nombre de seconde avant hibernation autohibernate=900 # ici 900 secondes avant hibernation echo "$curtime $1" >>/tmp/autohibernate.log # Mise en veille if [ "$1" = "suspend" ] then #enregistrement de l'heure actuelle et ajout d'un compte à rebours avant hibernation echo "$curtime" >/var/run/pm-utils/locks/rtchibernate.lock rtcwake -m no -s $autohibernate fi # Sortie de veille if [ "$1" = "resume" ] then sustime=$(cat /var/run/pm-utils/locks/rtchibernate.lock) rm /var/run/pm-utils/locks/rtchibernate.lock # Sortie de veille grace au compte à rebours? if [ $((curtime - sustime)) -ge $autohibernate ] then # Alors hiberner rm /var/run/pm-utils/locks/pm-suspend.lock /usr/sbin/pm-hibernate else # Sinon effacer le compte à rebours rtcwake -m no -s 1 fi fi
puis le rendre exécutable
sudo chmod +x /etc/pm/sleep.d/0000rtchibernate
À chaque fois qu'une mise en veille est effectuée ( manuellement ou à l'aide de logiciel ), l’ordinateur va se réveiller automatiquement au bout de 15 minutes ( en fonction de la variable autohibernate ) et, s'il n'y a eu aucune activité utilisateur, hiberner.
Il vous faudra des privilèges administrateur afin de créer une nouvelle ligne dans la table crontab du système.
Lancez la commande d'édition
sudo crontab -e
Trouver le format de l'heure à laquelle vous voulez que votre système se mette en hibernation via ce lien.
Pour rajouter, à la fin du fichier en cours d'édition l'heure et l'appel à systemctl pour hiberner (ici à 21h00).
00 21 * * * systemctl hibernate
Ensuite il suffit d'enregistrer le fichier
Sur certains ordinateurs, l'hibernation peut poser problème : plantage à la mise en hibernation, au redémarrage … C'est notamment le cas sur les machines qui n'ont que très peu ou pas de swap .
Pour remédier à cela, il est possible d'empêcher l'hibernation.
Pour ce faire, ouvrir un terminal et saisir la commandes suivantes :
sudo nano /etc/pm/sleep.d/000_no-hibernation
Dans le nouveau fichier ainsi créé, saisir le code suivant :
#!/bin/sh # Empêcher l'hibernation . "$PM_FUNCTIONS" [ "$1" = "hibernate" ] && inhibit || true
Enregistrer par Ctrl X puis O.
Pour empêcher la mise en veille et l'hibernation, utiliser ce code dans le fichier.2)
Si votre PC ne s'éteint pas (quel que soit le type de commande) et qu'il est équipé d'une carte graphique de type NVIDIA, alors il est possible qu'installer le driver NVIDIA approprié (via la "Configuration du système" et "Gérer les périphériques") résolve cette difficulté. Expérimenté avec succès sur Kubuntu Bionic Beta 1, Laptop PC MSI GL72-6QF-813XFR, compte Ubuntu jpn2605.
Il a été reporté un bogue de mise en veille qui ne met pas en veille: lors du lancement de la mise en veille, le son et le wifi s'éteignent, l'écran devient noir, mais les ventilateurs ne s'arrêtent pas, et le pc, au final, ne se met pas effectivement en veille. La seule solution est un redémarrage après arrêt complet (https://forum.ubuntu-fr.org/viewtopic.php?pid=3527684|http://forum.ubuntu-fr.org/viewtopic.php?id=403764.
La solution pour remédier à ce problème est la désactivation du kernel mode setting (KMS): pour cela, il faut mettre l'option nomodeset
au démarrage. Éditer
/etc/default/grub
et ajouter nomodeset à la ligne GRUB_CMDLINE_LINUX, puis
sudo update-grub
Note 2 : Si après modification ça ne redémarre plus et plus d’invite de session (gnome) alors au (multiboot) Grub, placez-vous sur la ligne de l'Ubuntu qui plante et tapez la touche "e" (mode édition du grub).
Retirez le nomodeset puis ctrl+x (pour sauver).
Démarrez, si ça démarre ouvrez une console et éditez le fichier grub pour remettre la ligne comme avant:GRUB_CMDLINE_LINUX=""
et faites un sudo update-grub
pour enregistrer la modification.
Parfois, un périphérique envoi des signaux de reveil sans qu'on le souhaite. Il arrive parfois que cela vienne des ports USB ou du de l'écran des ordinateurs portables (le LID en anglais).
La solution serait la résolution de ces bugs dans les drivers ou le noyaux…
En solution de contournement, on peut désactiver le réveil de ces périphériques. Une fois désactivé, le réveil se fera avec les autres solutions de réveil (au pire le bouton marche / arrêt). La solution détaillée est expliquée ici (en Anglais).
Le principe :
1. Lister ce qui peut sortir de veille avec :
cat /proc/acpi/wakeup
Tout ce qui est marqué *enabled est une cause autorisée de réveil. Parfois certains périphériques réveillent sans raison. Les plus répandues étant :
2. Faire des essais en désactivant les périphériques jusqu'à trouver le bon. Il faut replacer LID0 par le périphérique à désactiver
sudo su echo LID0 > /proc/acpi/wakeup
3. Tester en déclenchant la veille
systemctl suspend
Si le système reste en veille, vous avez trouvé le périphérique qui pose problème. La configuration sera réinitialisée au prochain redémarrage de la machine
4. Désactiver le périphérique problématique à chaque démarrage. Pour cela, il faut ajouter la commande qui a marchée au fichier /etc/rc.local en mode administrateur
Une autre solution est celle-ci : article en anglais qui propose une solution qui semble marcher pour beaucoup de configuration (c'est très simple, un script à copier dans un nouveau fichier dont le chemin est indiqué, une ligne de commande, un redémarrage et c'est tout).
Virtualbox 4.1 peut aussi poser des problèmes de mise en veille. Détails ici : https://forum.ubuntu-fr.org/viewtopic.php?pid=6022561
Dans le cas de cartes graphiques nvidia optimus, pensez à installer bumblebee
Installer "systemd" (s'il n'est pas déjà installé) puis créer un script exécutable ".suspend" (par exemple) avec le code: "systemctl suspend;". Pour finir, dans l'économiseur d'énergie valider "démarrer un script" "après" xx min en sélectionnant le script précédemment créé. Ça ne résout pas le problème de base, mais ça permet d'avoir la veille qui fonctionne.
Voici différentes causes possibles du non retour :
S'il vous est impossible des sortir d'une mise en veille avec une carte intel, (voir la page matériel pour savoir si c'est le cas) suivez les instructions suivantes :
La mise en veille devrait fonctionner correctement.
Dans la Section "Device" du fichier /etc/X11/xorg.conf il est impératif de rajouter ces lignes en mode administrateur:
Option "NvAGP" "1" Option "NoLogo" "true"
En attendant une éventuelle correction, utilisez pm-suspend
du paquet apt://pm-utils. Selon votre matériel, il est parfois nécessaire d'utiliser une des options listées dans les manpages pour que tout fonctionne correctement.
Sans connaître d'explication logique, ceci peut être résolu en allant dans "Système>Préférences>Apparence>Effets visuels" et en choisissant Aucun.
Vérifiez sur le site du constructeur de votre carte graphique si celle-ci n'est uniquement prévue que pour un bios Legacy. Si c'est le cas, une ré-installation de votre système en Legacy enlèveras tout problèmes de couleurs en sortie de veille.
Dans ce cas-là, seul une réinitialisation complète permet de reprendre la main. Il semble que ce problème apparaisse sur les premières générations de processeurs Intel Pentium disposant de l'HyperThreading. Essayez de désactiver cette fonction dans le bios.
Chez moi le problème est résolu en utilisant le pilote propriétaire Nvidia plutôt que le pilote libre Nouveau (dommage…).
Il existe une incompatibilité entre le pilote de carte graphique propriétaires fglrx et compiz. Si vous utilisez le pilote fglrx, la solution proposé ici peut vous aidez: Il s'agit de fglrx-support proposé par Dave Abrahams. Soit, télécharger l'archive et l'extraire (avec les privilèges administrateur) à la racine de votre partition système.
Enfin, redémarrer votre système et testez de nouveau la mise en veille.
Ce problème a été constaté sur toutes les versions d'Ubuntu au moins jusqu'à Ubuntu 14.04, avec carte mère K8N-E Deluxe Asus, ainsi que plusieurs autres cartes mère Asus, mais peut-être sur d'autres marques aussi. Quand le PC se réveille d'une mise en veille, le clavier fonctionne très partiellement, le pavé numérique, les touches de fonction, les touches spéciales, les flèches ne fonctionnent plus ou ont d'autres effets.
Pour résoudre ce problème il faut forcer GRUB le chargeur de démarrage à réinitialiser le clavier à la sortie de veille comme ceci :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash atkbd.reset"
sudo update-grub
(Id2ndR) L'hibernation n'a pas commencé : Vérifiez que les processus ont bien voulu s'arrêter. Vous ne devez pas avoir de tâches qui refusent de geler (tasks refusing to freeze en anglais) après la commande suivante :
dmesg | grep "Stopping user space processes timed out after 20 seconds"
Lors d'un écran noir au démarrage après une hibernation vous pouvez avoir envie d'arrêter l'hibernation. Il est possible d'arrêter simplement l'hibernation en formatant la partition SWAP (qui est peut être endommagée). Il suffit de démarrer en Live CD et de formater la partition SWAP de Linux avec GParted et de redémarrer.
En mode administrateur, éditez le fichier /etc/default/acpi-support et remplacez
HIBERNATE_MODE=shutdown
par
HIBERNATE_MODE=platform
'L'UTILITÉ DE CE QUI SUIT EST À CONFIRMER'
En mode administrateur, éditez le fichier /etc/default/acpi-support et ajoutez à la liste STOP_SERVICES le service OpenVPN.
STOP_SERVICES="openvpn "
Dans la Section "Device" du fichier /etc/X11/xorg.conf il est impératif de rajouter ces lignes :
Option "NvAGP" "1" Option "NoLogo" "true"
'L'UTILITÉ DE CE QUI SUIT EST À CONFIRMER'
Commencez par vérifier que les pilotes de la carte vidéo sont bien installés (tentez le pilote propriétaire non libre). Si ça ne marche toujours pas :
Il faut supprimer le chargement du pilote via agp (dans ce cas):
lsmod | grep agp
retourne un truc du style :
via_agp 9628 1 agpgart 34888 2 nvidia,via_agp
Éditez le fichier /etc/modprobe.d/blacklist et rajoutez a la fin :
blacklist via_agp
Vérifiez que votre partition de swap est correctement détectée : allez voir uuid_swap_et_hibernation pour régler ce problème.
Vérifiez que la taille de votre partition swap est suffisante : la même taille que la RAM est a priori suffisante pour l'hibernation, même si certains préconisent par prudence 2 fois plus de swap que de RAM (ex : pour 1Go de RAM, partition swap d'au moins 2 Go ; pour 4Go de RAM, 8Go de swap est inutile et 4 Go suffisent)
Pour afficher le nom du driver wifi (connexion sans fil) :
lspci -k -nn | grep -F Network -A3 | sed -e '/.*in use/!d' -e 's/.*Kernel driver in use: \(.*\)/\1/'
Pour afficher le nom du driver Ethernet (connexion filaire) :
lspci -k -nn | grep -F Ethernet -A3 | sed -e '/.*in use/!d' -e 's/.*Kernel driver in use: \(.*\)/\1/'
Avec l'information du nom du module réaliser la méthode décrite dans Ubuntu 18.04 - Ethernet disconnected after suspend (fonctionne aussi sur 20.04).
Une solution consiste à créer le fichier suivant:
sudo nano /lib/systemd/system/retablir_wifi_apres_veille.service
Entrez votre mot de passe.
[Unit] Description=Local system resume actions After=suspend.target [Service] Type=oneshot ExecStart=/sbin/rmmod r8712u ; /sbin/modprobe r8712u [Install] WantedBy=suspend.target
En remplaçant r8712u par le nom du pilote concerné en se référant à la méthode indiquée ci-dessus pour le trouver. Faites Ctrl+X pour sauvegarder puis répondre O pour enregistrer les changements.
sudo systemctl enable retablir_wifi_apres_veille sudo systemctl start retablir_wifi_apres_veille
(CM= carte mère, P=Portable)
Marque | Modèle | CM ou P | Jeux de puces | Veille | Hibernation | Utilisateur(s) |
---|---|---|---|---|---|---|
Acer | Veriton 2800 | CM | Intel 945G + ICH7 | Oui (Attention: le bios doit être flashé en version R01-E0: lien) | Non testé | Ttipi |
Acer | TravelMate 5742Z | P | Intel Pentium P6200 | Oui | Oui | koko2 |
Gigabyte | GA-MA790XT-UD4P | CM | AMD 790X | Oui | Oui (des avertissements, mais le réveil semble Ok) | okonkole |
Lenovo | Edge 525 | P | AMD A8-3500M APU with Radeon™ HD Graphics | Non | Non Testé | Cyrilco |
MSI | MS-7357 | CM | Intel G31 | Oui (Choisir S3 dans le BIOS) | Oui | Id2ndR |
MSI | K8N Neo4-f | CM | nForce4 | Oui | Oui | jewome_62 |
Toshiba | Satellite (U200) | P | Intel G945 | Oui (mais bogue) | Oui | Id2ndR |
Lenovo | 3000 Y310 | P | Intel GMA X3100 | Oui (mais TouchPad HS au retour) | Oui | |
HP | Pavilion dv5053ea | P | ATI Radeon Xpress 200M | Oui | Oui (voir la conf là, pas de scripts) | juju_theseaman |
Dell | XPS M1710 | P | Intel core2 T7400 | Oui | Oui (mais ne s’éteint pas seul) | jef |
Sony | VAIO PCG-7G1M (ou VGN-FS415M) | P | Intel i915PM/GM + ICH6-M | Oui | Oui (Unity 13.10) en réactivant le script d'hibernation | 89paladins |
Sony | VAIO FZ11E | P | Intel 965 PM | Oui (Nécessite l'option NvAGP et de taper son mot de passe sur un écran blanc…) | Pas encore testé | bistory |
Sony | VAIO VPC EA1S1E | P | Intel Core i3 (M 330) + M92 (Mobility Radeon HD 4500 Series) | Oui | Pas testé (ubuntu 10.04 lucid) | fnx |
Lenovo | Yoga 2 Pro | P | Intel Core i7-4510U | Oui | Oui (avec tuxonice installé) | john-paul |
Lenovo | 3000C200 8922AZG | P | Intel 945GM | Non | Non (ou avec gros pb au réveil) | chourave |
Lenovo | R61 (8933-AL2) | P | Intel 965 | Oui (Pb NetworkManager aléatoire : plus de réseau, redémarrage obligatoire dans ce cas) | Oui (Avec paramétrage uuid swap, swap=ram) | Endymion |
Lenovo | 3000 N100(0768-FKG) | P | Intel 945GM | Oui | Oui | justin-brandon |
MSI | Wind U100-015 | ? | Intel GMA 945 | Oui | Oui | anonymux |
MSI | MS-6178 | CM | Intel i810 | Oui | Oui | Johan |
MSI | MS-6120 | CM | Intel i440BX | Non | Oui (nécessite la dernière version du bios disponible - la 2.0 - et de passer au noyau l'option acpi=force ; idem pour activer l'extinction du PC) | Johan |
Asus | X5DIJ | CM | Mobile Intel® 45 Express Chipset | Oui | Oui | aurel88 |
Asus | P2L97-DS | CM | Intel i440LX | Non | Oui (nécessite la dernière version du bios disponible - la beta 1010.004 fonctionne bien - et de passer au noyau l'option acpi=force ; idem pour activer l'extinction du PC) | Johan |
Asus | P5N-E SLI | CM | NVIDIA nForce 650i SLI | Non | Non | t0m-s |
Asus | T-Série | CM | Nvidia GeForce 8200 | Oui, mais pas deux fois de suite ! | Oui | Jeanmarc05 |
Asus | U53J Série (ASUS U53JC-XX181X ) | P | NVIDIA GeForce 310M (Mobile Intel HM55 Express) (Intel Core i5-480M) | Oui * | Oui (*) voir http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug | mobuxon |
Asus | X53U Series | P | AMD E-350 APU with Radeon™ HD Graphics (dual-core) | Oui | Oui | MinecraftBreizh |
Asus | N55SF | P | Intel core i7-2670QM nVidia GeForce GT555M | Oui | Oui | nibbler869 |
Asus | P4P800-MX | CM | Intel P4 | Oui | Pas testé | Nolk |
Abit | KT7A | CM | VIA KT133A | Oui | Oui | Johan |
Hp | a247 | CM | Nforce4 | Oui | Oui | aj94tj |
Foxconn | /865G7MF-SH | CM | Intel pentium 4 LGA775 | Oui * | Oui voir http://forum.ubuntu-fr.org/viewtopic.php?pid=3561362#p3561362 | mferrato |
Dell | Vostro 1320 | P | Mobile Intel® 45 Express Chipset | Non | Non | ateni |
Fujitsu/Siemens | Amilo M7405 | P | Pentium M - video i855GM | Oui (avant Karmic ou à partir du noyau 3.3 | Oui mais ne marche plus depuis Precise | Bybeu |
Marque | Jeux de puces (Modèle) | Mobile | module | Veille | Hibernation | Utilisateur(s) |
---|---|---|---|---|---|---|
ATI | R420 (Radeon X800 VE) | non | Oui | Oui | Id2ndR | |
ATI | RC410 [Radeon Xpress 200] | non | - | non (gutsy) | marc31 | |
ATI | M92 (Mobility Radeon HD 4500 Series) | oui | Oui | non installation par défaut (lucid) | fnx | |
Intel | G31 (X3100) | non | intel | Oui | Oui | Id2ndR |
Intel | G945 | oui | intel | Oui | Oui | Id2ndR |
Intel | GMA500 | oui | psb | non (jaunty) | non (jaunty) | Escé |
Nvidia | NV43 (GeForce 6400) | oui | nvidia-304 | Oui | Oui (Unity 13.10) | Id2ndR |
Nvidia | NV43 (GeForce 6600 GT) | non | nvidia-glx | Oui | Oui | Id2ndR |
Nvidia | G72 (GeForce 7300 SE) | non | nvidia-glx | - | Oui | marc31 |
Intel | GMA945 | oui | Intel | oui | oui | anonymux |
Intel | GMA X4500MHD | oui | Intel | non | non | ateni |
Marque | Jeux de puces (Modèle) | module | Veille | Hibernation | Utilisateur(s) |
---|---|---|---|---|---|
Intel | ipw2200 | ipw2200 | Oui | Oui (Unity 13.10) en désactivant le module wifi suivant la méthode "La connexion réseau ne se réactive pas en sortie de veille ou d'hibernation–> Autre possibilité" | 89paladins |
Intel | ipw3945 abg | ipw3945 | Oui | Oui | Id2ndR |
Mediatek | ipw3945 abg | mt76x0e | Non (Xubuntu 22.04) | Non testé | Dadu042 |
Marvell | 88E8056 PCI-E Gigabit | sky2 | Oui | Oui | Id2ndR |
Contributeurs : Id2ndR, didrocks, sfley, f.x0, amiralgaby