Les systèmes portables, et même pas mal d'ordinateurs de bureau, sont en général équipés d'un support APM, ce qui signifie "gestion avancée de l'énergie" (APM = Advanced Power Management en anglais). Cette section décrit comment activer le support APM dans votre noyau Linux. Les gens qui ont de l'expérience dans Linux vont trouver cette section plutôt ennuyeuse et pourront sauter à la suivante.
Je ne le décrirai pas en détail ici. Reportez-vous à la page "Linux APM drivers page" à http://www.cs.utexas.edu/users/kharker/linux-laptop/apm.html pour plus d'information. Tout ce que vous avez besoin de savoir est qu'avec l'aide de l'APM, la CPU peut dire au BIOS quand il ne se passe rien de réellement excitant afin que le BIOS soit capable de lui-même d'économiser de l'énergie (par exemple en réduisant la vitesse d'horloge de la CPU, en arrêtant le disque dur, en éteignant le rétroéclairage de l'écran, etc...)
L'APM gère aussi le mode "system suspend" ou "sleep" (système suspendu, ou mode suspension) et le mode "suspend to disk" ou "hibernation" (arrêt du disque) . Et une autre chose utile, bien que pas très importante, est qu'avec l'aide de l'APM, un shutdown -h ne fait pas qu'arrêter le système, mais l'éteint aussi.
En fait, la plupart des systèmes Linux mettent un shutdown -r dans leur /etc/inittab qui est relié à la séquence de touches control-alt-delete. Je préfère avoir un shutdown -h ici ainsi quand je presse la fameuse combinaison de touches, mon portable s'éteint tout simplement de lui-même.
Tous les fabriquants n'implémentent pas un BIOS APM correct. Par conséquent certains portables ont des problèmes avec les drivers APM de Linux (si votre machine a des problèmes avec APM, vraisemblablement la machine bloquera au démarrage, ou bien après être revenue d'un "system suspend"). Si vous n'êtes pas sûr, vérifiez dans la page "Linux laptop" (mentionnée au début de ce texte) pour votre modèle particulier.
C'est facile : il suffit de recompiler le noyau. Vérifiez dans le Kernel-HOWTO si vous ne savez pas comment faire ça.
Quand le script de configuration atteint la section "character devices", le paramétrage par défaut pour un support complet de l'APM du BIOS dans le noyau 2.0.30 ou plus est :
Advanced Power Management BIOS support: Yes Ignore USER SUSPEND: No Enable PM at boot time: Yes Make CPU Idle calls when idle: Yes Enable console blanking using APM: Yes Power off on shutdown: Yes
Lisez s'il vous plaît les textes d'aide du script de configuration. Ils expliquent dans le détail ce que fait chaque option, donc je ne le répèterai pas ici.
Si votre système n'est pas complètement compatible avec le standard du BIOS APM, certaines de ces options peuvent planter votre système. Testez toutes les fonctionnalités de l'APM avec les nouveaux noyaux pour bien vérifier que tout fonctionne comme ça le devrait.
Une note concernant l'extinction de la console (console blanking) : David Bateman m'a dit que vous ne devriez pas l'activer parce qu'elle cause quelques problèmes avec les version actuelles de XFree 3.2 : "les symptômes sont un écran éteint quand XFree démarre, et cela peut être corrigé habituellement juste en pressant une touche. C'est un petit problème, un peu désagréable. La prochaine version de XFree aura un bon support DPMS pour un grand nombre de chipsets de portables, et elle devrait contenir du code pour éteindre l'écran LCD. Vérifier dans la page de manuel de xset dans XFree 3.2A." David a également remarqué que la durée d'utilisation du rétroéclairage de votre écran est fonction du nombre de fois qu'il passe de allumé à éteint : "Donc c'est un compromis entre la durée de vie de la batterie et la durée de vie de l'éclairage".
Mise à jour : avec XFree 3.3, le problème existe encore sur mon portable. On m'a dit que le problème sera réglé dans une future version du noyau.
Après avoir recompilé le noyau, n'oubliez pas de recompiler également les pilotes PCMCIA.
Les pilotes PCMCIA précompilés fournis avec la plupart des distributions Linux ont le support APM désactivé pour que le BIOS ne puisse pas donner l'ordre à votre carte PCMCIA de s'éteindre.
Vous devez aussi recompiler le noyau si vous installez une nouvelle version du noyau et si votre précédent noyau avait été compilé avec l'option "informations sur la version dans les modules" activé (cette option se trouve dans la section "loadable module support" de la configuration du noyau).
Lisez le PCMCIA-HOWTO pour des instructions détaillées sur la façon de compiler les pilotes ou bien allez à la page "Linux PCMCIA drivers" à http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html.
Maintenant que vous avez le support APM installé, procurez-vous le paquetage apmd, par exemple à la page "Linux PCMCIA drivers" mentionnée ci-dessus. Il n'est pas vraiment nécessaire mais c'est quand même une collection très intéressante de programmes. Le démon apmd enregistre le comportement de votre batterie et il vous enverra un avertissement s'il y a une baisse de puissance. La commande apm suspendra votre système avec une commande shell et xapm montre l'état actuel de votre batterie.
NB : si vous rencontrez des problèmes avec votre carte PCMCIA quand vous revenez d'un mode "suspend", vous pouvez tester un package apmd différent à http://www.cut.de/bkr/linux/apmd/apmd.html. Il supprime le module contenant le pilote PCMCIA avant de passer en mode "suspend" et le recharge au retour.
Grant Taylor a joué un peu avec le paquetage apmd et en a tiré quelques trucs utiles. Il a trouvé que le disque dur de son portable oublie sa période d'arrêt (avec hdparm -S) quand il revient du mode "suspend" : "J'ai modifié apmd afin de réinitialiser ce paramétrage à chaque retour du mode "suspend". Cela peut être spécifique au système ; mais c'est une chose importante à faire..."
Note : sur mon propre portable, le bios s'occupe de la période d'arrêt du disque dur et réinitialise les paramétrages correctement à chaque retour du mode "suspend". Donc je n'ai pas pu tester si ce petit problème était spécifique à un système. Si cela vous arrive aussi, envoyez-moi un message.
Grant a également un truc sympa pour l'extinction de la console avec le paquetage XFree86. Et vous le trouverez dans le fichier d'aide du paquetage apmd.
Si le bios de votre ordinateur ne propose pas de paramétrages pour les économies d'énergie (même les plus vieux sans APM devraient au moins permettre des réglages concernant le disque dur), vous pouvez utiliser hdparm -S pour régler la période d'arrêt de votre disque dur. Cela vous aidera déjà beaucoup car les disques durs en activité consomment énormément d'énergie. Votre système devrait avoir hdparm installé, donc veuillez lire la page de manuel de hdparm pour la syntaxe de la commande.