# [TIP] Suspend & hibernate

## Biloute

Linux propose deux types de mise en veille du PC :

Mise en veille dans la mémoire vive (suspend) : le PC s'éteint en moins de 5 secondes et consomme quelques milliwatts. Il se rallume en moins de 5 secondes.

Mise en veille prolongée (hibernate) : l’ensemble du contenu de la mémoire vive est copié sur le disque dur (dans la partition swap) avant l’extinction totale du PC. Quand on rallume celui-ci, l’opération inverse est effectuée. Le redémarrage est beaucoup plus rapide qu’un démarrage classique (entre 10 et 20 s).

Fini l'époque où il fallait installer et configurer des scripts, un noyau tuxonice avec des résultats aléatoires et je connais beaucoup de linuxien qui gardent en mémoire cette période.

Aujourd'hui profitez-en, la communauté a fait beauoup de progrés d'autant plus que la configuration de gentoo est relativement rapide et les environnements de bureau l'activent par défaut (dernièrement avec xfce4.6)

Voici la methode.

D'abord pour utiliser le mode « hibernate » vous devez avoir une partition swap dont la taille n'est pas forcement importante. On peut très bien hiberner avec 300Mo de swap à condition d'avoir une ram faiblement encombré.

Cependant il est conseillé d'avoir autant de swap que de ram voir un peu plus.

Par exemple avec 2Go de ram on peut avoir 2,5Go de swap ce qui est rien quand on a un disque dur dépassant les 150Go.

Ensuite le noyau doit être compilé avec les options suivantes :

```
-> Power management and ACPI options

        [*] Power Management support

            ...

      [*] Suspend to RAM and standby

      [*] Hibernation (aka 'suspend to disk')
```

Enfin, on édite le fichier /boot/grub/grub.conf (penser à monter la partition boot) pour indiquer à grub ou se trouve la partition swap avec l'option « resume=/dev/sda2 » (modifier sda2 par votre partition swap)

```
# nano /boot/grub/grub.conf
```

```
title=Gentoo Linux

# Partition qui contient l'image du noyau

root (hd0,0)

kernel /boot/kernel-2.6.30-gentoo-r2 root=/dev/hda3 resume=/dev/sda2
```

A partir de ce moment il est possible de tester votre matériel en ouvrant une console avec le compte utilisateur root

```
# cat /sys/power/state 

mem disk
```

mem veut dire que le mode suspend est actif

disk veut dire que le mode hibernate est actif

Pour tester le supend, taper

```
# echo mem > /sys/power/state
```

Si le PC s'éteind, il suffit d'appuyer sur le bouton power, ou la touche fn selon le modèle d'ordinateur. Sur un portable on peut aussi refermer l'écran et en l'ouvrant ça s'allume.

Il suffit d'attendre une poignée de seconde et le PC est de nouveau fonctionnel

Pour tester le hibernate, taper

```
# echo disk > /sys/power/state
```

Si le PC s'éteind, il suffit d'appuyer sur le bouton power. A ce moment le bios va s'activer puis on arrive au menu de grub (sauf s'il a été caché par l'otion hiddenmenu). Il suffit de sélectionner Gentoo Linux. A l'écran doit apparaître quelque ligne puis une dizaine de secondes aprés le PC est de nouveau fonctionnel.

Si l'opération est un succés, bravo maintenant il existe plusieur application pour faire profiter tous les utilisateurs.

Xfce compilé avec le use= « hal » utilise sys-power/pm-utils.

Il suffit de cliquer dans les boutons du logoff screen de xfce

Sur la plupart des PC portables, le clavier est pourvu de touches spécifique décoré d'un croissant de lune comme Fn+F4, fn+F5, …

Alors il suffit de paramétrer les raccourcis clavier en utilisant les raccourcis de commande

```
xfce4-session-logout –hibernate
```

```
xfce4-session-logout –suspend
```

Gnome est équipé gnomepowermanager qui permet de planifier les mises en veille.

----------

## truc

Je recommande l'utilisation de sys-power/hibernate-script, pourquoi donc?

Parce-qu'il vous offre des hooks, pour pouvoir lancer facilement ce que vous voulez à différents moments de la veille/mise en veille (ces scripts fonctionnent effectivement avec le ususpend dont Biloute vous parle plus haut, même si il décrit la méthode un peu à la brutus...  :Wink: 

On éteint rarement son pc avec un init 0, donc j'vois pas pourquoi j'le mettrais en veille avec un echo both > /sys/power/state, j'utilise plutôt sys-power/suspend via l'hibernate script, qui d'ailleurs - si j'ai tout compris mais Biloute me corrigera probablement - veille à ce que le bios soit prèt à faire un suspend.

Bref, l'intêret peut-être par exemble de locker sa session X à la sortie d'une mise en veille RAM (qui n'est normalement pas protégée par mot de passe, contrairement au suspend2disk qui peut l'être de diverses manières -via suspend directement, ou si le swap est chiffré (ex: LUKS..) etc...- ) mais pas a la sortie d'une veille sur le disque.

----------

## Dominique_71

J'ai rajouté le support des méthodes fournies par pm-utils dans fvwm-crystal   :Very Happy:  . C'est sur le svn depuis quelques semaines, et là je suis en train de faire les tests finaux avant la publication d'une nouvelle version. 

Pourquoi pm-utils? Parce qu'il fonctionne avec n'importe quel kernel "standard" comme les gentoo-sources, et qu'il incorpore aussi des hooks. Edit: Il supporte aussi d'utiliser un fichier comme "partition" de swap. De plus, les kernels récents supportent bien resume/suspend, donc tuxonice n'est plus nécessaire.

----------

