Mise en veille / Hibernation

La mise en veille et l'hibernation sont deux alternatives à l'arrêt de l'ordinateur.

  • La mise en veille permet d'économiser de l'énergie tout en gardant les applications ouvertes. Le réveil est très rapide. Il s'agit de ce que l'on appelle « suspend to ram » : toutes les informations de travail restent dans la mémoire vive et votre système d'exploitation se met en mode d'économie d'énergie1). Par conséquent, une partie infime de la charge batterie est utilisée.
Avec Ubuntu 18.04 vous pouvez rapidement mettre l'ordinateur en veille via cette commande :
systemctl suspend

À tester avec les versions antérieures.

La plupart des claviers contiennent une touche «zz» (pour mettre en veille) que l'on peut utiliser avec la touche Fn. D'autres claviers contiennent un croissant de lune pour veiller.

C'est la manière la plus simple de mettre en veille votre pc en moins d'une demi-seconde ! * L'hibernation permet de sauvegarder l'état des applications sur le disque dur et ne consomme ensuite plus d'énergie. Le terme associé est « suspend to disk » et correspond à écrire toutes les données présentes dans la mémoire vive sur le disque dur avant d'arrêter complètement l'ordinateur. Au redémarrage, l'opération inverse est effectuée : on lit depuis le disque dur pour repeupler cette dernière. Cependant, cette opération est bien plus longue du fait de la lecture/écriture depuis le disque dur. Son avantage est qu'il n'y a absolument aucune consommation d'énergie en mode hibernation, une fois l'opération effectuée. Ce processus est connu sous Windows sous le nom de « veille prolongée »

En mode graphique, ouvrir les « Paramètres Système » puis cliquer sur l’icône "Luminosité et verrouillage". Mettre "Verrouiller" sur "0" et décocher la partie intitulée « Demander mon mot de passe lors de la sortie de veille ». Sur Ubuntu 18.04 ou ultérieur, aller dans «Paramètres» puis dans «Confidentialité» et « Verrouillage de l’écran ». Décochez la case « Verrouiller l’écran lors de la mise en veille » Ou via la commande :

gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true'

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.

Hiberner au bout de x secondes après une mise en veille

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

Si le niveau de la batterie devient critique pendant la veille, vous allez perdre les données non sauvegardées.

Source du script

Avec systemd

Approches possibles (à tester, compléter, vérifier) :

  1. Mettre un script exécutable dans : /etc/apm/resume.d
  2. Mettre un script exécutable dans : /lib/systemd/system-sleep

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.

Afin de compléter cette section avec des informations utiles et précises, merci de renseigner votre matériel et votre pseudo (forum et/ou wiki) afin qu'on puisse vous contacter en cas de problème similaire, ou d'ambiguïté dans les informations.
Avant toute chose, au moins pour l'hibernation, si vous rencontrez un problème réessayez après avoir débranché tous les périphériques extérieurs de votre ordinateur (souris USB, jack, clé USB, imprimante, modem (Sagem Fast 800 non compatible)…). Ça ne règle pas les problèmes mais permet de savoir si ça en crée !

Clavier PS2 ne fonctionne plus normalement au réveil.

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 :

  • Trouver cette ligne dans le fichier
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 
  • Modifier la comme ceci :
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash atkbd.reset" 
  • Sauver les changements.
  • Mettre à jour Grub comme ceci
    sudo update-grub
  • redémarrer le PC comme normal, et la prochaine mise en veille devrait se passer normalement.

Mise en veille

Mise en veille qui ne met pas en veille

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 (http://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.

Mise en veille qui ne met pas en veille (2)

La solution précédente ne fonctionne pas systématiquement… Ça peut venir des ports USB qui bloquent la mise en veille ou l’interrompent immédiatement. Il faut dans ce cas désactiver les ports fautifs. Voici un article (⇒ 404 Not Found !) (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).

Mise en veille qui ne met pas en veille (3)

Virtualbox 4.1 peut aussi poser des problèmes de mise en veille. Détails ici : http://forum.ubuntu-fr.org/viewtopic.php?pid=6022561

Mise en veille qui ne met pas en veille (4)

Dans le cas de cartes graphiques nvidia optimus, pensez à installer bumblebee

Mise en veille qui ne met pas en veille (5)

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éé. Ca ne résout pas le problème de base, mais ça permet d'avoir la veille qui fonctionne.

Impossible de sortir d'une mise en veille sur RAM

Voici différentes causes possibles du non retour :

  • (Id2ndR) Votre BIOS n'est pas réglé sur le bon mode : il faut utiliser le mode ACPI S3 pour la mise en veille. Certains BIOS utilisent S1 comme réglage par défaut. Plus de détails ici (en anglais).

L'écran reste noir (carte graphique intel)

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 :

  • Installez le paquet dkms,
  • Puis téléchargez le paquet oem-audio-hda-daily-dkms conforme à votre version d'Ubuntu sur cette page.
  • Redémarrrez votre ordinateur.

La mise en veille devrait fonctionner correctement.

L'écran reste noir (carte graphique AGP nvidia)

Sous Mint la configuration ne se fait pas avec ces fichiers

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"

L'ordinateur s'allume mais l'écran reste éteint

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.

L'ordinateur s'allume mais l'écran affiche des lignes et couleurs aléatoires, comme si la résolution n'était pas supportée

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.

L'ordinateur s'allume et semble travailler mais l'écran affiche une suite de couleurs unies et il est impossible de reprendre la main

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.

L'ordinateur s'allume mais gèle (carte graphique Nvidia)

Chez moi le problème est résolu en utilisant le pilote propriétaire Nvidia plutôt que le pilote libre Nouveau (dommage…).

L'ordinateur s'allume mais gèle (carte graphique AMD)

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.

Ou, créer manuellement les fichiers suivants (avec les privilèges administrateur):

Créer le fichier /etc/pm/config.d/50compiz-fglrx-noclear:

# This file is /etc/pm/config.d/50compiz-fglrx-noclear

# Disable the builtin 00clear because we need to kill off all compiz
# instances before it does a chvt
HOOK_BLACKLIST=00clear

Créer le fichier /etc/pm/sleep.d/00compiz-fglrx:

#!/usr/bin/python
 
# This file is /etc/pm/sleep.d/00compiz-fglrx
 
import os
import sys
import time
import cPickle as pickle
import tempfile
import re
from math import ceil
from subprocess import Popen, PIPE, check_call, CalledProcessError
 
# get the stdout from executing the command made up of elements of cmd_args
def backquote(cmd_args):
    if type(cmd_args) is str:
        cmd_args = cmd_args.split()
    process = Popen(cmd_args, stdout=PIPE)
    out = process.communicate()[0].rstrip()
    if process.returncode != 0:
        raise CalledProcessError(process.returncode, cmd_args)
    return out
 
def psinfo(pid, field):
    return backquote(('ps --no-headers -ww -o %s %s' % (field, pid)).split())
 
def proc(pid, part):
    return open('http://server9.kproxy.com/servlet/redirect.srv/slxv/sap-ggbjrl/sviy/p2/proc/%s/%s' % (pid,part)).read().rstrip('\0').split('\0')
 
def psenviron(pid):
    return dict(
        x.split('=',1)
        for x in proc(pid,'environ')
        if '=' in x)
 
# Change the following to something like
#
#   LOG_FILE_NAME='http://server9.kproxy.com/servlet/redirect.srv/sruj/shhzdcy/s9iwolzo/p1/servlet/redirect.srv/slxv/sap-ggbjrl/sviy/p2/home/dave/suspend.log'
#
# in order to see some debug output
LOG_FILE_NAME=None
 
logfile=None
def log(*args):
    if not LOG_FILE_NAME: 
        return
    global logfile
    if not logfile:
        logfile = open(LOG_FILE_NAME,'a')
    logfile.write(' '.join([str(a) for a in args]) + '\n')
    logfile.flush()
 
class TimeOutError(Exception): pass
 
def try_kill(pid, signal, timeout = 1.0, step = .01):
    os.kill(pid, signal)
    for x in range(int(ceil(timeout/step))):
        if not os.path.exists('/proc/%d' % pid):
            return
        time.sleep(step)
    raise TimeOutError, 'failed to kill process: %d in %d second(s)' % (pid,timeout)
 
number = re.compile(r'\d*$')
stat_fields = re.compile(
    r'\s+'.join([
            r'(?P<pid>\d+)', 
            r'\((?P<comm>.+)\)',
            r'(?P<state>[RSDZTW])',
            r'(?P<ppid>\d+)'
            ]))
 
class NotCompiz(Exception): pass
 
def compiz_real_info(pid):
    stat = stat_fields.match(open('http://server9.kproxy.com/servlet/redirect.srv/slxv/sap-ggbjrl/sviy/p2/proc/%d/stat' % pid).read())
    if stat.group('comm') != 'compiz.real':
        raise NotCompiz, 'continue' # we'll just move on to the next process
    ppid = int(stat.group('ppid'))
    return ppid, (psenviron(ppid), proc(ppid, 'cmdline'), psinfo(ppid,'user'))
 
# Given recorded information about the parent processes of killed
# compiz.real processes, "un-kill" them
def restart_compiz(compiz_info):
    if compiz_info:
        log('restarting compiz')
    for pid, (env,cmd,user) in compiz_info.items():
 
        log('user:', user, 'command:', cmd)
 
        # Ensure we have the necessary environment to re-launch the parent process
        if 'DISPLAY' in env and 'XAUTHORITY' in env and os.path.isfile(env['XAUTHORITY']):
 
            # If the parent didn't die when compiz.real was killed, kill the parent now
            try: try_kill(pid,15)
            except: pass 
 
            try:
                check_call(['sudo', '-E', '-b', '-u', user] + cmd, env=env)
 
            except Exception, e:
                log('failed to relaunch')
                log(traceback.format_exc())
                print >>sys.stderr, traceback.format_exc()
        else:
            log('required environment missing', env)
 
def suspend():
    # locate all parent processes of compiz.real commands
    all_pids = [int(f) for f in os.listdir('/proc') if number.match(f)]
    compiz_info = {}
 
    try:
        # Gather up all the info about the processes that launch compiz.real
        for pid in all_pids:        
            try: ppid, info = compiz_real_info(pid)
            except: continue            # Skip if not compiz.real or if already dead
            try_kill(pid, 15)           # Kill off the compiz.real process
            compiz_info[ppid] = info    # Remember how to restart its parent
 
        # write out everything we need to restart the compiz
        # processes and restore the current virtual terminal
        fd, pickle_file_name = tempfile.mkstemp('.pck', 'compiz-fglrx', '/var/run')
        pickle.dump((backquote('fgconsole'), compiz_info), open(pickle_file_name, 'w'),2)
        log('pickle saved in', pickle_file_name)
 
        # Keep a record of the name of the pickle file using
        # facilities from pm-utils.  Using repr below ensures that
        # the filename is quoted in a way that should be
        # appropriate for the shell
        check_call([
            'sh', '-c', 
            '. ${PM_FUNCTIONS} && savestate compiz-fglrx ' 
            + repr(pickle_file_name)])
    except:
        log('failure to suspend!')
        restart_compiz(compiz_info)
        raise
 
    # Now switch the virtual terminal as would have been done by the
    # 00clear hook.  If done with compiz running, this kills resume
    log('switching to vt 63')
    check_call(['chvt', '63'])
 
def resume():
    # Get all the information we need to re-start
    pickle_file_name = backquote([
            'sh', '-c', 
            '. ${PM_FUNCTIONS} && restorestate compiz-fglrx'])
 
    saved_console,compiz_info = pickle.load(open(pickle_file_name))
    restart_compiz(compiz_info)
 
    # This is the functionality from the 00clear hook
    log('switching back to vt', saved_console)
    check_call(['chvt', str(saved_console)])
    check_call(['deallocvt', '63'])
 
    # Try to make sure the screen wakes up and actually shows us the
    # password dialog.  Without this we might need to move the mouse
    # to see it.  Doesn't work, though; probably I need more
    # environment setup in order to be able to do this.
    # check_call(['xset','dpms','force','on'])
 
    # if we can't get rid of this file for any reason, it's not a
    # serious problem, so do it last.
    os.unlink(pickle_file_name)
 
 
# The check for an argument in the next line is a convenience for
# development, so we can import this file and not have it try to do
# anything.
if __name__ == '__main__' and len(sys.argv) > 1: 
 
    log('=====================', backquote('date'), '==================')
    log('in ', ' '.join(sys.argv))
 
    try:
        if sys.argv[1] in ('suspend','hibernate'):
            suspend()
 
        elif sys.argv[1] in ('resume','thaw'):
            resume()
 
        elif sys.argv[1] == 'help':
            # Nothing to say
            pass
 
        else:
            raise AssertionError, 'unknown argument %s' % sys.argv[1]
 
    except Exception, e:
        import traceback
        log(sys.argv[0]+':', traceback.format_exc())
 
        # if anything failed, try to inhibit suspension.
        if sys.argv[1] in ('suspend','hibernate'):
            inhibit_file = os.environ.get('INHIBIT')
            if inhibit_file:
                log('inhibiting with', inhibit_file)
                open(inhibit_file,'a')
        raise

Rendez-le exécutable:

sudo chmod +x /etc/pm/sleep.d/00compiz-fglrx

Enfin, redémarrer votre système et testez de nouveau la mise en veille.

Hibernation

Impossible de commencer l'hibernation

(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 angais) après la commande suivante :

dmesg | grep "Stopping user space processes timed out after 20 seconds"

Écran noir au démarrage après une hibernation

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.

Il n'y a plus de son au réveil :

En mode administrateur, éditez le fichier /etc/default/acpi-support et remplacez

HIBERNATE_MODE=shutdown

par

HIBERNATE_MODE=platform

OpenVPN ne redémarre pas :

FIXME '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 "

L'écran reste noir (carte graphique AGP nvidia)

Dans la Section "Device" du fichier /etc/X11/xorg.conf il est impératif de rajouter ces lignes :

Option      "NvAGP" "1"
Option	    "NoLogo" "true"

FIXME '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

Ubuntu démarre sans restaurer l'environnement, ou l'ordinateur reste allumé alors qu'il devrait hiberner (extinction brutale de l'ordinateur obligatoire)

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)

Utiliser une méthode alternative

Si l'hibernation ne fonctionne toujours pas, vous pouvez essayer uswsusp ou tuxonice.

Mettre à jour le BIOS de la carte mère

Parfois, cela peut résoudre le problème. Cf doc ici

En dernier recours, installer un noyau plus récent (pour un utilisateur averti)

Voir cette page ltsenablementstack

La connexion réseau ne se réactive pas en sortie de veille ou d'hibernation :

Merci de vérifier le bon fonctionnement de l'astuce suivante et de signaler vos réussites et échecs à f.x0

Une solution est de lister en terminal le module utilisé par le wifi :

lshw -class network

1) - noter le nom du driver wifi utilisé spécifié par la commande lshw -class network.

2) - vérifier que la commande

lsmod

affiche le même nom du driver.

par exemple :

lshw -class network
ATTENTION: ce programme devrait être lancé en tant que super-utilisateur
*-network
       description: Interface réseau sans fil
       driver=r8712u
lsmod
r8712u                142855  0

En tout état de cause c'est bien le nom du module listé par la commande lsmod qu'il faudra insérer dans le fichier /etc/pm/config.d/load

3) - Taper cette commande pour créer (ou modifier) le fichier /etc/pm/config.d/load

echo "SUSPEND_MODULES=r8712u" | sudo tee -a /etc/pm/config.d/load

4) - Rendre le fichier exécutable:

sudo chmod +x /etc/pm/config.d/load

Cela fonctionne aussi sur Ubuntu 14.04 sans rendre le fichier exécutable (sans l'étape 4)



Il semble qu'à partir de la version 16.04 et du noyau 4.4.0-66 il faut en plus relancer NetworkManager

sudo service network-manager restart

Si cette commande fonctionne, il est possible d'automatiser l'opération pour éviter de le faire après chaque mise en veille :

1) - Créer un script dans le répertoire /etc/pm/sleep.d :

echo -e '#!/bin/sh\n/etc/init.d/network-manager restart\nexit 0' | sudo tee /etc/pm/sleep.d/NWM.sh

2) - Rendre le script exécutable:

sudo chmod +x /etc/pm/sleep.d/NWM.sh

A partir d'Ubuntu 15.04 Ubuntu étant passé à systemd depuis la version 15.04, la solution ci-dessus ne fonctionne plus. Une solution consiste à créer le fichier suivant:
  1. Ouvrez un terminal et exécutez la commande suivante :
    sudo nano /lib/systemd/system/retablir_wifi_apres_veille.service

    Entrez votre mot de passe.

  2. Collez le contenu suivant:
    ​[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 Ubuntu 14.10 pour le trouver. Faites Ctrl+X pour sauvegarder puis répondre O pour enregistrer les changements.

  3. Lancer enfin les 2 commandes suivantes afin que le système prenne en compte le fichier et démarre le service:
    sudo systemctl enable retablir_wifi_apres_veille
    sudo systemctl start retablir_wifi_apres_veille
Si le réseau est actif mais que la liste des réseaux disponibles est vide, vous pouvez essayer ceci

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)

Carte mère / Portable

À classer par jeux de puces en essayant de regrouper les modèles utilisant le même jeux de puce.

(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

Carte graphique

À classer par marque et jeux de puces en essayant de regrouper les modèles utilisant le même jeux de puces.
Marque Jeux de puces (Modèle) Mobile module Veille Hibernation Utilisateur(s)
ATI R420 (Radeon X800 VE) non fglrx Oui Oui Id2ndR
ATI RC410 [Radeon Xpress 200] non fglrx - non (gutsy) marc31
ATI M92 (Mobility Radeon HD 4500 Series) oui fglrx 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

Carte réseau

À classer par module.
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
Marvell 88E8056 PCI-E Gigabit sky2 Oui Oui Id2ndR

Contributeurs : Id2ndR, didrocks, sfley, f.x0


1)
Mode dans lequel les composants électroniques se mettent dans un état de consommation minimum pour préserver les données, sans être en attente d'écriture/lecture
  • veille_et_hibernation.txt
  • Dernière modification: Le 22/11/2019, 16:09
  • (modification externe)