# [howto] Suspend2 avec gensplash et genkernel

## bouleetbil

Intégrer Le mode Suspend2 avec les morph-sources, genkernel et gensplash

1. Télécharger les morph-sources http://morph-sources.homelinux.net/

2. Démasquer les paquets en les ajoutant à /etc/portage/package.keywords:

sys-apps/suspend2-userui

sys-power/hibernate-script

3. Ajouter à /etc/make.conf suspend2 et fbsplash

4. Editer /usr/share/genkernel/generic/linuxrc pour ajouter apres mount -t proc proc /proc:

echo > /proc/software_suspend/do_resume

5. Editer /etc/hibernate/hibernate.conf ajouter ces lignes:

SuspendDevice swap:/dev/hda1 ou hda1 est la partition swap

ProcSetting userui_program /sbin/suspend2ui_fbsplash

Mon hibernate.conf pour information:

```
# Example hibernate.conf file. Adapt to your own tastes.

# Options are not case sensitive.

# 

# Run "hibernate -h" for help on the configuration items.

##############################################################################

### Choose your Suspend method. You currently have 3 choices:

###

###    suspend2            Software Suspend 2 (requires kernel patches from

###                        http://www.suspend2.net/)

###

###    sysfs_power_state   Uses /sys/power/state to suspend (activates pmdisk

###                        on kernels < 2.6.8, or vanilla swsusp otherwise).

###

###    acpi_sleep          Uses /proc/acpi/sleep to activate swsusp, or other

###                        ACPI sleep state supported by your machine.

###

##############################################################################

### suspend2 (for Software Suspend 2)

UseSuspend2 yes

Reboot no

EnableEscape yes

DefaultConsoleLevel 1

Compressor lzf

Encryptor none

# ImageSizeLimit 200

## useful for initrd usage:

SuspendDevice swap:/dev/hda5

## Powerdown method - 3 for suspend-to-RAM, 4 for ACPI S4 sleep, 5 for poweroff

# PowerdownMethod 5

## Any other /proc/software_suspend setting can be set like so:

# ProcSetting expected_compression 50

## Or traditionally like this:

# Suspend2AllSettings 0 0 2056 65535 5

## Or even from the results of hibernate --save-settings with this:

# Suspend2AllSettingsFile /etc/hibernate/suspend-settings.conf

## For filewriter:

# FilewriterLocation /suspend_file 1000

VerifyFilewriterResume2 yes

### sysfs_power_state

## To use /sys/power/state to suspend your machine (which may offer

## suspend-to-RAM, suspend-to-disk, standby, etc) comment out all the options

## above for Software Suspend 2, below for acpi_sleep, and uncomment this line.

## You may replace mem with any one of the states from "cat /sys/power/state"

# UseSysfsPowerState mem

# PowerdownMethod shutdown

### acpi_sleep

## To use ACPI to suspend your machine (via /proc/acpi/sleep), comment out

## all the options above for Software Suspend 2 and sysfs, and uncomment this

## line. The number refers to the ACPI sleep state - 3 is suspend-to-RAM and

## 4 is suspend-to-disk.

# UseACPISleep 4

##############################################################################

### Some global settings

##############################################################################

Verbosity 1

LogFile /var/log/hibernate.log

LogVerbosity 1

# AlwaysForce yes

# AlwaysKill yes

# HibernateVT 15

# Distribution debian (or fedora/gentoo/mandrake/redhat/slackware/suse)

Distribution gentoo

# XDisplay :0

##############################################################################

### Scriptlets

###   Scriptlets provide support for doing all sorts of things before and after

###   suspending. The defaults settings here should work for most people, but

###   you may wish to edit these to taste. Consult "hibernate -h" for help on

###   the configuration settings.

##############################################################################

### bootsplash

## If you use bootsplash, also enabling SwitchToTextMode is recommended if

## you use X, otherwise you may end up with a garbled X display.

# Bootsplash on

# BootsplashConfig /etc/bootsplash/default/config/bootsplash-1024x768.cfg

### clock

SaveClock restore-only

### devices

# IncompatibleDevices /dev/dsp /dev/video*

### diskcache

# DisableWriteCacheOn /dev/hda

### fbsplash (enable SwitchToTextMode if you use this)

FBSplash on

FBSplashTheme suspend2

ProcSetting userui_program /sbin/suspend2ui_fbsplash

### filesystems

# Unmount /nfsshare /windows /mnt/sambaserver

# UnmountFSTypes smbfs nfs

# UnmountGraceTime 1

# Mount /windows

### grub

# ChangeGrubMenu yes

# GrubMenuFile /boot/grub/menu.lst

# AlternateGrubMenuFile /boot/grub/menu-suspended.lst

# BackupGrubMenuFile /boot/grub/menu.lst.hibernate.bak

### hardware_tweaks

# IbmAcpi yes

# RadeonTool yes

### lilo

# EnsureLILOResumes yes

### lock (generally you only want one of the following options)

# LockConsoleAs root

# LockXScreenSaver yes

# LockKDE yes

### misclaunch

OnSuspend 20 echo "Good night!"

OnResume 20 echo "Good morning!"

### modules

# UnloadModules snd_via82cxxx usb-ohci

UnloadModules ohci_hcd uhci_hcd ehci_hcd

# UnloadAllModules yes

UnloadBlacklistedModules yes

LoadModules auto

# LoadModulesFromFile /etc/modules

### modules-gentoo

GentooModulesAutoload yes

### network

# DownInterfaces eth0

# UpInterfaces auto

### programs

# IncompatiblePrograms xmms

### services

# RestartServices postfix

# StopServices alsasound

StopServices net.eth0 hotplug

# StartServices aumix

RestartServices alsasound hotplug net.eth0

### vbetool

# EnableVbetool yes

# RestoreVbeStateFrom /var/lib/vbetool/vbestate

# VbetoolPost yes

### xhacks

SwitchToTextMode yes

# UseDummyXServer yes

### xstatus

## This can be set to gnome, kde or x:

XStatus gnome

XSuspendText Preparing to suspend...

XResumeText Resuming from suspend...

## When using XStatus x, and you have xosd installed:

# XosdSettings --font -misc-fixed-medium-r-semicondensed--*-120-*-*-c-*-*-* --colour=Green --shadow 1 --pos bottom --align center --offset 50
```

6. Créer un lien vers le splash utilisé:

# ln -s /etc/splash/emergence /etc/splash/suspend2

7. Verifier les options à mettre en module dans /etc/hibernate/blacklisted-modules

8. Compilation du noyau:

# genkernel --gensplash=emergence --menuconfig --install all

Intégrer:

```
Software Suspend2
```

```
File writer
```

```
swap writer
```

```
lzf dans la cryptograhie
```

9. Editer grub:

Ajouter resume2=swap:/dev/hda5 ou /dev/hda5 represente votre partition swap

Exemple:

```
title 2.6.12Suspend2

kernel (hd0,0)/boot/kernel-genkernel-x86-2.6.12-morph7 root=/dev/ram0 udev nodevfs init=/linuxrc real_root=/dev/hda7 resume2=swap:/dev/hda5 splash=verbose,fadein,theme:emergence quiet CONSOLE=/dev/tty1

initrd (hd0,0)/boot/initramfs-genkernel-x86-2.6.12-morph7
```

(/dev/hda7 représente la partition root)

10. Supprimer les images incorrect au démarrage:

# rc-update add hibernate-cleanup boot

11. Hiberner votre ordinateur

# hibernate

Le mode suspend2 peut être utilisé tout aussi bien avec un PC qu'un portable(Utile pour redemarrer rapidement un serveur) Il est possible d'intégrer le mode suspend2 aux gentoo-sources en récupérant un patch sur le site http://www.suspend2.net/.

----------

## Enlight

Mais mais mais, merci!!!   :Very Happy: 

----------

## gulivert

Hm ça c'est super bon, mais comment dire, avec les drivers nvidia proprio, ça ne posait pas problème ce mode?

----------

## bouleetbil

 *gulivert wrote:*   

> Hm ça c'est super bon, mais comment dire, avec les drivers nvidia proprio, ça ne posait pas problème ce mode?

 

Perso j'ai essayer avec une radeon. J'ai pas essayé sur mon fixe qui dispose d'une nvidia.

Si cela plante ajouter nvidia à cette section:

```
UnloadModules ohci_hcd uhci_hcd ehci_hcd nvidia

```

Verifier que nvidia est présent dans /etc/modules.autoload.d/kernel-2.6

et que la section 

```
GentooModulesAutoload yes 
```

est bien à yes

Apres cela je pense que cela devrait rouler, a essayer tous de même  :Laughing: 

----------

## TGL

J'utilise pas Genkernel perso, donc je sais pas trop ce qu'il met dans l'initrd. D'où ma question, plus par curiosité : avec cette technique, pendant le réveil, à partir de quand est-ce que tu vois la barre de progression de suspend2ui_fbsplash ? Parceque ici, ce que j'ai fais pour l'avoir le plus tôt possible c'est que j'ai ajouté /sbin/suspend2ui_fbsplash (ainsi qu'un lien "/etc/splash/suspend2 -> gentoo" vu que j'utilise le thème Gentoo) dans mon initrd générée par "splash_geninitramfs". Ça marche bien, mais du coup je me demande si c'est vraiment nécéssaire...

----------

## bouleetbil

 *TGL wrote:*   

> J'utilise pas Genkernel perso, donc je sais pas trop ce qu'il met dans l'initrd. D'où ma question, plus par curiosité : avec cette technique, pendant le réveil, à partir de quand est-ce que tu vois la barre de progression de suspend2ui_fbsplash ? Parceque ici, ce que j'ai fais pour l'avoir le plus tôt possible c'est que j'ai ajouté /sbin/suspend2ui_fbsplash (ainsi qu'un lien "/etc/splash/suspend2 -> gentoo" vu que j'utilise le thème Gentoo) dans mon initrd générée par "splash_geninitramfs". Ça marche bien, mais du coup je me demande si c'est vraiment nécéssaire...

 

En ajoutant apres mount -t proc proc /proc dans linuxrc

```
echo > /proc/software_suspend/do_resume 
```

Le réveil se fait avant de loader les modules de l'init et pas besoin de rajouter autre chose dans l'init

----------

## Atlas95

Bonjour, pouvez vous me dire le packet a installer pour avoir les splash? ceux se trouvant dans /etc/splash comme indiquer da,s le tuto...

Merci d'avance

----------

## bouleetbil

C'est les paquets 

```

*  media-gfx/splash-themes-gentoo

      Latest version available: 20050429

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 10,156 kB

      Homepage:    http://dev.gentoo.org/~spock/

      Description: A collection of Gentoo themes for splashutils.

      License:     freedist

*  media-gfx/splash-themes-livecd

      Latest version available: 2006.0

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 3,132 kB

      Homepage:    http://www.gentoo.org/

      Description: Gentoo theme for gensplash consoles

      License:     GPL-2

```

cf http://dev.gentoo.org/~spock/projects/gensplash/shots.php pour media-gfx/splash-themes-gentoo

Par contre le point 4, ce n'est plus 

```

echo > /proc/software_suspend/do_resume 

```

Mais 

```
echo > /proc/suspend2/do_resume
```

----------

## PabOu

 *bouleetbil wrote:*   

> Par contre le point 4, ce n'est plus 
> 
> ```
> 
> echo > /proc/software_suspend/do_resume 
> ...

 

Le plus simple, pour éviter la confusion, c'est d'éditer ton post original, non ?

----------

## bouleetbil

En fait, je me suis mal exprimé si on utilise le dernier

```
sys-kernel/suspend2-sources
```

il faut utiliser :

```
echo > /proc/suspend2/do_resume
```

sinon avec les morph-sources

il faut utiliser :

```
echo > /proc/software_suspend/do_resume 
```

----------

## Mickael

Salut et merci pour ton howto,

dit je comprends pas très bien pour l'histoire de suspend2 et fbsplash : 

 *Quote:*   

> Ajouter à /etc/make.conf suspend2 et fbsplash 

 

Ce sont des variables USE?? question bête je sais mais "euse" me retourne que dalle pour suspend2?

EDIT : Et je viens de regarder le fichier de genkernel dans le lequel tu nous préconises d'y insérer juste après la ligne 

```
mount -t proc proc /proc
```

cette ligne ci :

```
echo > /proc/suspend2/do_resume
```

mais mon genkernel dont la version est 3.3.11d incorpore cette ligne de la manière suivante :

```

mount -t proc proc /proc

# activate suspend2

if [ -w /proc/suspend2/do_resume ]

then

        echo -e "${GOOD}>>${NORMAL}${BOLD} Activating suspend2 resume..."

        echo > /proc/suspend2/do_resume

fi

```

Est-ce que le point 4 est d'actualité pour quelqu'un qui a choisi comme moi le noyau sys-kernel/suspend2-sources ?

EDIT 2 : Est-ce vraiment utile d'écrire à la fois dans la swap ainsi que dans un fichier :File writer swap writer comme tu le dis pendant la configuration du noyau?

----------

## bouleetbil

Bonsoir,

En effet l'ajout de use : 

```
suspend2
```

 et 

```
fbsplash
```

 etait pour les morph-sources. Donc inutile pour sys-kernel/suspend2-sources

Maintenant, pour le point 4 genkernel intègre suspend2 il suffit de décommenter ces lignes

```
# activate suspend2

if [ -w /proc/suspend2/do_resume ]

then

        echo -e "${GOOD}>>${NORMAL}${BOLD} Activating suspend2 resume..."

        echo > /proc/suspend2/do_resume

fi 
```

 *Quote:*   

> 
> 
> EDIT 2 : Est-ce vraiment utile d'écrire à la fois dans la swap ainsi que dans un fichier :File writer swap writer comme tu le dis pendant la configuration du noyau?
> 
> 

 

J'ai pas éssayer sans, j'ai suivi la documentation sur le site suspend2  :Laughing: 

----------

## Mickael

 *bouleetbil wrote:*   

> Bonsoir,

 

Salut, merci pour ta réponse.

 *bouleetbil wrote:*   

> 
> 
> En effet l'ajout de use : 
> 
> ```
> ...

 

Merci pour la précision.

 *bouleetbil wrote:*   

> 
> 
> Maintenant, pour le point 4 genkernel intègre suspend2 il suffit de décommenter ces lignes
> 
> ```
> ...

 

Mais elles sont décommentées, je n'ai pas eu besion de le faire!

 *bouleetbil wrote:*   

> 
> 
>  *Quote:*   
> 
> EDIT 2 : Est-ce vraiment utile d'écrire à la fois dans la swap ainsi que dans un fichier :File writer swap writer comme tu le dis pendant la configuration du noyau?
> ...

 

Pourtant quand on se retrouve dans le kernel on nous dit pas qu'il faille les deux  :Confused: 

/mon petit problème :quand je lance l'hibernate : ça reste à une ligne qui dit un truc du genre **** atomic ****, les **** = je  sais plus quoi  :Confused: 

Cela  t'inspires quelque chose ce atomic je ne sais quoi...

----------

## bouleetbil

voici ma config :

```
         --- Suspend2                                                 

          ---   Image Storage (you need at least one writer)           

         [*]     File Writer                                          

         [*]     Swap Writer                                          

         ---   General Options                                        

          ()      Default resume device name                          

         [*]     Allow Keep Image Mode  
```

```
[*] ACPI Support                                                     

  [*]   Sleep States                                                   

  [ ]     /proc/acpi/sleep (deprecated)                               

  <*>   AC Adapter                                                    

  <*>   Battery                                                        

  <M>   Button  
```

Button doit être en module

```
        --- Mouse                                                  

           <M>   PS/2 mouse                                           

           <M>   Serial mouse                                         

            <M>   InPort/MS/ATIXL busmouse                             

           [ ]     ATI XL variant                                     

           <M>   Logitech busmouse                                    

            <M>   IBM PC110 touchpad                                   

           <M>   DEC VSXXX-AA/GA mouse and VSXXX-AB tablet  
```

 PS/2 mouse  aussi si besoin

Extrait de man hibernate.conf :

```
 Verbosity N

                 Determines how verbose the output  from  the  suspend  script

                 should  be:  0:  silent  except  for errors 1: print steps 2:

                 print steps in detail 3: print steps in  lots  of  detail  4:

                 print out every command executed (uses -x)
```

Edite  /etc/hibernate/hibernate.conf pour modifier 

```
Verbosity 3
```

Apres un echec envoi le fichier /var/log/hibernate.log

Regarde aussi /etc/hibernate/blacklisted-modules qui liste les modules qui posent problèmes

----------

## Mickael

Merci,

je regarde tout cela demain (et oui il est tard) et j'éditerai cette réponse pour te/vous tenir au courant.

Merci encore.

Bonne nuit

EDIT : Bonjour   :Smile:  , alors je viens de regarder vite fait la liste des modules blacklistés, et en effet j'ai déjà ceci :

lsmod :

```
usbcore               114180  6 ndiswrapper,ohci_hcd,ehci_hcd,usbhid,uhci_hcd
```

+

```
ndiswrapper           158640  0
```

Je compléterai ce poste (ce soir : non, un jour quand je m'y remettrai...) après avoir modifier mon kernel et je posterai mon hibernate.conf, je suis au taf.

----------

## Mickael

Salut bouleetbil,

alors je ne réponds pas pour l'instant à mes précédents post, puisque je suis en train de configurer le suspend2disk pour mon dell 6400. Je reviendrai sur l'autre configuration de mon ancien portable plutard. Je tenais juste à faire une remarque sur la configuration du fichier hibernate.conf. J'utilise le noyau linux-2.6.18-suspend2 donc le programme sys-power/hibernate-script est installé automatiquement lorsque ce type de noyau est installé. Donc, la configuartion du fichier hibernate.conf n'est plus monolythique mais est devenu le fichier maître d'une concaténation de plusieurs fichiers, qui sont : 

 *Quote:*   

> 
> 
> # hibernate.conf is split into separate configuration files.
> 
> #
> ...

 

TryMethod suspend2.conf

TryMethod ususpend.conf

TryMethod disk.conf

TryMethod ram.conf

```
cd /etc/hibernate/

lab-mparis hibernate # ls

blacklisted-modules  common.conf  disk.conf  hibernate.conf  ram.conf  scriptlets.d  suspend2.conf  ususpend.conf
```

Je n'ai pas encore attaqué la configuration de ces fichier à l'heure actuelle, mais je tenais à le signalé pour les différents lecteurs/lectrices potentiels. Enfin j'éditerai ce poste pour vous tenir au courant. 

Voilà à bientôt.

----------

## bouleetbil

Bonjour,

En effet, j'ai vu cela. Mais en faite les options sont pratiquements les mêmes c'est juste que les fichiers ont étés éclatés. Je pense que tu devrais retrouver  les différents paramètres assez facilement. Personnellement je n'ai pas eu de problèmes pour reporter mes options.

Si tu as un souci, post un message   :Wink: 

Pour info, l'option principale a changer pour moi a été dans : /etc/hibernate/suspend2.conf

Afin de préciser ma partition swap 

SuspendDevice swap:/dev/hda5

(Quand j'aurrais un peu de temps je metrrais à jour afin de préciser à quoi sert les différents fichiers)

----------

## Mickael

Salut,

en effet, je viens de finir ma config, et l'on retrouve exactement les mêmes lignes de codes, principalement dans common.conf ainsi que dans hibernate.conf. Les autres fichiers de configuration sont assez vides puisque je ne me suis pas encore penché sur la question du ramdisk par exemple. Mais un premier test avant même de toucher à ces fichiers m'a permis de faire un suspend depuis les raccourcis gnome  :Cool:  et de revenir sous X sans aucun problème. Cependant je n'ai pas encore vérifié si le hotplpug, le son, le wifi se relançaient, donc j'éditerai au besoin.

Encore merci pour tout le boulot que tu fais pour notre communauté c'est impressionnant  :Wink: 

EDIT : avec le raccourcis : mise en veille prolongée sous gnome, tout fonctionne à merveille.  :Cool:   je vais vérifier les logs tout de même.

----------

## bouleetbil

Merci    :Razz: 

----------

## Mickael

Une petite question : c'est toujours d'actualité le déchargement/chargement de l'usb avant la mise en veille prolongée?

----------

## bouleetbil

bonsoir,

voila ma section modules

```

### modules

# UnloadModules snd_via82cxxx usb-ohci

# UnloadAllModules yes

UnloadBlacklistedModules yes

LoadModules auto

# LoadModulesFromFile /etc/modules

```

Et l'usb fonctionne apres hibernation donc a priori c'est plus utile.

----------

## Mickael

Pour ma part j'ai détecté un petit problème. si je passe en veille prolongée avec ma souris usb connectée, et qu'au réveil elle n'est pas branchée ça part en sucette. Le poblème est que je n'ai rien dans var/log/hibernate.conf. Autrement tout est ok.

----------

## bouleetbil

Je viens de faire un essai et ma souris fonctionne dans ce cas.

Il faut peut être regarder du coté de xorg

```

 

*  x11-base/xorg-x11

      Latest version available: 7.1

      Latest version installed: 7.1

      Size of files: 0 kB

      Homepage:      http://xorg.freedesktop.org

      Description:   An X11 implementation maintained by the X.Org Foundation (meta package)

      License:       as-is

```

----------

## Mickael

Je viens de relire tout le fil de discussion, et je n'ai rien mis en module dans mon noyau pour ce qui concerne les souris (et pratiquement tout le reste d'ailleurs). Peut-être que le problème pourrait venir de là...... Honnêtement je ne vois pas trop pourquoi xorg serait le fautif.

----------

## Mickael

Bon j'ai rajouté ceci dans le fichier common.conf :

```
UnloadModules ohci_hcd uhci_hcd ehci_hcd usb-ohci
```

 et cela semble fonctionner. Ce qui est étrange c'est le fait que ces modules sont dans la blacklist. Je vais vérifier si les versions indiquées coincident.

----------

