Sur ma machine princpale (Desktop), j'utilise l'hibernate tout les jours. Mais récemment, je me suis amusé à y toucher, et j'ai pas mal eu de soucis pour retrouver un truc qui marche.
Voici des astuces (testées sous Debian Squeeze/Testing) :
- Commencer par virer tout les trucs permettant le joli boot graphique. Le plus simple est de virer le "splash" dans le /boot/grub/grub.cfg
- évidement, il faut avoir le paquet "hibernate" d'installé
- pour toutes les modifications ci-dessous de /etc/hibernate/*, il faut re-générer le "vmlinuz", en utilisant "dpkg-reconfigure update-initramfs" ou "update-initramfs -u -k all". Parfois, ce n'est pas la peine, mais bon...
- le paramètre "SuspendDevice swap:/dev/sdaXX" permet d'indiquer la position du swap. Il est parfois nécessaire de le configurer, si le mécanisme de vmlinuz/initramfs n'y arrive pas
- il existe 2 modes d'hibernation : ususpend et sysfs. Parfois l'un marche, parfois c'est l'autre. On contrôle le mécanisme que l'on utiliser via "/etc/hibernate/disk.conf", en commentant celui que l'on ne veut pas :
# This file is used when suspending to disk. Use the *-disk.conf files to add
# configuration options, or add them before the TryMethod lines in this file.
# Options are not case-sensitive.
#
# See hibernate.conf(5) for help on the configuration items.
Chez moi, "ususpend-disk.conf" affiche un joli pourcentage d'avancement de l'hibernation, mais il ne fait pas d'arrêt électrique de la machine.
"sysfs-disk.conf" n'affiche pas de progression, mais fait l'arrêt électrique...
On peut forcer la manière dont le système s'arrêt, via l'option "PowerdownMethod" . Chez moi :
PowerdownMethod shutdown
Les différents options disponibles sont dans :
$ cat /sys/power/disk
platform test testproc [shutdown] reboot
- pour ceux qui comme moi utilise les drivers proprio NVIDIA (no comment...), il faut désactiver le "blacklistage" du driver dans "/etc/hibernate/blacklisted-modules"
$ less /etc/hibernate/blacklisted-modules
#nvidia
- Enfin, pour arriver à débugger l'hibernation, rien ne vaut de le faire en mode ligne de commande, avec affichage des logs :
hibernate -v 3
La valeur du "-v " permet de définir le niveau de verbosité
- A noter que les options "LogFile" et "LogVerbosity" permettent d'écrire les logs d'hibernation dans un fichier de log, si l'on n'a pas le temps de tout lire à l'écran :
$ grep -ir log /etc/hibernate/
/etc/hibernate/common.conf:# LogFile /var/log/hibernate.log
/etc/hibernate/common.conf:# LogVerbosity 1
/etc/hibernate/common.conf:# LogTimestamp yes
[^] # Re: Hibernation
Posté par Olivier (site web personnel) . En réponse au journal Ubuntu, top c'est trop. Évalué à 4.
Voici des astuces (testées sous Debian Squeeze/Testing) :
- Commencer par virer tout les trucs permettant le joli boot graphique. Le plus simple est de virer le "splash" dans le /boot/grub/grub.cfg
- évidement, il faut avoir le paquet "hibernate" d'installé
- pour toutes les modifications ci-dessous de /etc/hibernate/*, il faut re-générer le "vmlinuz", en utilisant "dpkg-reconfigure update-initramfs" ou "update-initramfs -u -k all". Parfois, ce n'est pas la peine, mais bon...
- le paramètre "SuspendDevice swap:/dev/sdaXX" permet d'indiquer la position du swap. Il est parfois nécessaire de le configurer, si le mécanisme de vmlinuz/initramfs n'y arrive pas
- il existe 2 modes d'hibernation : ususpend et sysfs. Parfois l'un marche, parfois c'est l'autre. On contrôle le mécanisme que l'on utiliser via "/etc/hibernate/disk.conf", en commentant celui que l'on ne veut pas :
# This file is used when suspending to disk. Use the *-disk.conf files to add
# configuration options, or add them before the TryMethod lines in this file.
# Options are not case-sensitive.
#
# See hibernate.conf(5) for help on the configuration items.
#TryMethod ususpend-disk.conf
TryMethod sysfs-disk.conf
Chez moi, "ususpend-disk.conf" affiche un joli pourcentage d'avancement de l'hibernation, mais il ne fait pas d'arrêt électrique de la machine.
"sysfs-disk.conf" n'affiche pas de progression, mais fait l'arrêt électrique...
On peut forcer la manière dont le système s'arrêt, via l'option "PowerdownMethod" . Chez moi :
PowerdownMethod shutdown
Les différents options disponibles sont dans :
$ cat /sys/power/disk
platform test testproc [shutdown] reboot
- pour ceux qui comme moi utilise les drivers proprio NVIDIA (no comment...), il faut désactiver le "blacklistage" du driver dans "/etc/hibernate/blacklisted-modules"
$ less /etc/hibernate/blacklisted-modules
#nvidia
- Enfin, pour arriver à débugger l'hibernation, rien ne vaut de le faire en mode ligne de commande, avec affichage des logs :
hibernate -v 3
La valeur du "-v " permet de définir le niveau de verbosité
- A noter que les options "LogFile" et "LogVerbosity" permettent d'écrire les logs d'hibernation dans un fichier de log, si l'on n'a pas le temps de tout lire à l'écran :
$ grep -ir log /etc/hibernate/
/etc/hibernate/common.conf:# LogFile /var/log/hibernate.log
/etc/hibernate/common.conf:# LogVerbosity 1
/etc/hibernate/common.conf:# LogTimestamp yes