Activer la fonction suspend2 ( hibernate ) sur son portable

La fonction suspend2 (ou hibernation) permet de couper son portable sans passer par la phase de boot de linux, ceci diminue grandement le temps pour allumer et pour éteindre son portable (notamment). De plus lorsque vous relancez votre ordi après hibernation, celui-ci revient exactement au bureau dont vous disposiez avant de l’éteindre.
C’est dommage qu’une telle fonction ne soit pas d’origine, par exemple dans les paquets laptop, parce qu’elle est très pratique … l’essayer c’est l’adopter ! :smiley:

marche à suivre :
1 - télécharger les sources du kernel 2.6.18.x sur http://www.kernel.org/ et Suspend2 2.2.8 for kernel 2.6.18 sur http://www.suspend2.net/
2 - installer avec synaptic : suspend2-userui hibernate debconf-utils dpkg-dev debhelper build-essential kernel-package libncurses5-dev
3 - décompacter le kernel 2.6.18x et suspend2 dans Desktop
4 - patcher le kernel : # /home/reputilisateur/Desktop/linux-2.6.18x/ /home/reputilisateur/Desktop/suspend2/apply
5 - configurer le kernel : # /home/reputilisateur/Desktop/linux-2.6.18x/make menuconfig
avec ces options :

[code]# General setup —>

(-hibernate) Local version - append to kernel release

Power management options (ACPI, APM) —>

[ ] Software Suspend (EXPERIMENTAL)

<*> Suspend 2 —> (enter)

<*> Swap Writer

(swap:/dev/hda5) default device : La partition par défaut qu’utilisera swsups2, mettez votre swap

Device Drivers —>

ATA/ATAPI/MFM/RLL support —> On compile en dur la gestion des disques, car on n’utilisera pas initramfs

<*> ATA/ATAPI/MFM/RLL support

<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

<*> Include IDE/ATA-2 DISK support

<*> generic/default IDE chipset support

#=== Son chipset ide, chez moi:

<*> Intel PIIXn chipsets support #===votre chipset IDE (cela permet d’accélérer par 5-7 fois la mise en hibernation)

File systems —>

<*> Ext3 journalling file system support #==== en dur votre file system, moi c ext3

Cryptographic options —>

<*> LZF compression algorithm #==== On va utiliser la compression LZF, pour la mise en hibernation

#===Maintenant le type de processeur que vous utilisez.

Processor type and features —>

Processor family (Athlon/Duron/K7) #===your processor

File systems │

Miscellaneous filesystems

<*> Compressed ROM file system support (cramfs)

+ configurer les options propres à votre config (facultatif)

[/code]
sortir en sauvegardant

6 - compiler le kernel : dans /home/reputilisateur/Desktop/linux-2.6.18x/ lancer : #make-kpkg --append-to-version “votre_nom-de-noyau” --initrd kernel_image modules_image kernel_headers
7 - éditer un fichier /usr/share/initrd-tools/init en ajoutant ceci :

if [ -n "$resume$noresume" ]; then do_swsusp fi echo > /proc/suspend2/do_resume
8 - installer le kernel : /home/reputilisateur/Desktop/dpkg -i linux-image-2.6.18xxx.deb
et faites de même avec les autres paquets .deb qu’il vous à créé.
9 - verifier dans grub ou lilo que vous aurez quelques secondes pour choisir votre kernel (la première ligne sera remplacée par le nouveau kernel, s’il ne marche pas vous serez embêté…)
10 - redemarrer pour tester le kernel -> ça marche ? super !
11 - tester hibernate : lancer #hibernate -> l’ordi doit s’éteindre, quand vous le relancez il doit redémarrer plus vite et afficher le bureau tel qu’il était avant la commande hibernate
12 - Configurer l’acpi sur portable : methode barbare : editez /etc/acpi/powerbtn.sh, sauvegardez le sous un autre nom et remplacer son contenu par sudo hibernate (il faut avoir configuré sudo), il suffit ensuite d’appuier sur le bouton power pour lancer hibernate (il doit exister des méthodes plus civilisées, mais celle-ci fonctionne).

J’espère n’avoir rien oublié, j’ai testé le tuto sur deux configs (un portable toshiba et un fixe), mais si quelque chose ne fonctionne pas voici les sources utilisées :
http://forum.debian-fr.org/viewtopic.php?t=4818
http://david.decotigny.free.fr/wiki/wakka.php?wiki=SwSusp2
http://doc.ubuntu-fr.org/doc/swsusp2
http://forum.debian-fr.org/viewtopic.php?t=1806

Merci pour le tuto.
Détail: le titre devrait plutôt être “suspend2”. Ca marche très bien (je l’utilisais avant) mais il y a aussi suspend (µswsusp) qui est de base dans les noyaux récents (avec leur configuration par défaut).
apt-get install uswsusp
puis
s2disk pour suspendre sur disque
s2ram pour suspendre en ram (attention tous les portables ne sont pas gérés)
Il n’y a pas de joli splash (pas de partie suspendui) mais on peut coupler avec usplash pour avoir le même resultat.

telle quelle, l’etape6 ne passera pas.

Oui tu as raison, j’ai rectifié… :blush:

Qu’est ce qui cloche que je le rectifie aussi ? J’ai pourtant fais un copier-coller dans ma console et ça a lancé la compilation…

il y a un make-kpkg dans /home/reputilisateur/Desktop/linux-2.6.18x/ ?
tu es sûr que tu ne voulais pas dire:cd /home/reputilisateur/Desktop/linux-2.6.18x/; make-kpkg --append-to-version "votre_nom-de-noyau" --initrd kernel_image modules_image kernel_headers

Merci Boris et Matt pour vos corrections :wink:

Depuis un certain temps (peut etre le dernier noyau), j’ai parfois un freeze lorsque j’utilise suspend1 alors qu’il a très bien fonctionné pendant des mois. Je suis incapable de savoir ce qui se passe.
Ca n’apparait qu’en lancant directement s2disk.
Alors qu’en utilisant l’ancienne méthode basique ca marche encore, donc je donne cette méthode (aucune compression, aucun cryptage de l’image,…rien quoi… mais fonctionnel)

tu as essayé de reformater ton swap d’hibernation ?
Je sais que le swap n’a pas vraiment de format, mais peut être y a t il un secteur défectueux dans la partoche ?