# ACPI : Configuration avancée et interface pour la gestion d'énergie

3 septembre 2003
Version : 1.2.fr.1.1
Emma Jane Hogbin

Emma Jane Hogbin est un développeur de Toronto avec des qualifications concernant l'open-source

xtrinsic

    emmajane CHEZ xtrinsic POINT com

Erich Schubert Auteur de la section sur DSDT
Guillaume Lelarge

    gleu CHEZ wanadoo POINT fr

Adaptation française
Vanessa Conchodon

    nessie CHEZ little-monster POINT org

Relecture de la version française
Jean-Philippe Guérard

    jean TIRET philippe POINT guerard CHEZ corbeaunoir POINT org

Préparation de la publication de la v.f.

Ce document montre comment modifier le noyau Linux (via un correctif) afin de disposer d'une gestion de l'ACPI.

v1.2.fr.1.1
2003-09-03
GL, VC, JPG Quelques corrections mineures.
v1.2.fr.1.0
2003-07-20
GL, VC, JPG Adaptation française.
v1.2
2003-07-08
EJH Ajout du résumé (Added the abstract).
v1.1
2003-07-03
EJH Mise à jour pour le noyau 2.4.21, dernière version stable du noyau à ce jour (Added updates for the 2.4.21 kernel, the latest stable kernel at the time).
v1.0
2003-07-01
EJH Version initiale, revue par le LDP (Initial release, reviewed by LDP).
v0.2
2003-06-12
EJH
2003 Emma Jane Hogbin
2003 Guillaume Lelarge Vanessa Conchodon Jean-Philippe Guérard

## À propos de ce document

Lorsque j'ai commencé le passage de l'APM à l'ACPI, je n'ai pas réalisé que je devais appliquer un correctif au noyau. Mon problème (un ventilateur assourdissant) a été corrigé simplement en mettant à jour mon noyau en version 2.4.20 (noyau préparé par Debian avec un correctif antérieur provenant de acpi.sourceforge.net). Malheureusement, après la première mise à jour, je n'étais pas capable d'arrêter (`halt`) mon ordinateur sans utiliser le bouton d'arrêt. Ce n'est que bien après que j'ai réalisé que j'avais un vieux correctif ACPI inefficace. Ce guide pratique a été écrit pour résumer le processus d'installation que j'ai suivi et, je l'espère, aider d'autres personnes ayant elles-aussi des difficultés à trouver les bonnes informations sur l'ACPI. Merci de noter que l'article se base principalement sur la façon Debian de faire les choses. Il existe aussi une partie générique dans pour ceux d'entre vous préférant… un moyen générique.

## Droits d'utilisation et marques déposées

Le texte ci-dessous est la version française de la licence de ce document. Seule la version originale de cette licence, présentée dans la section suivante, fait foi.

> Copyright © 2003 Emma Jane Hogbin

> Vous êtes autorisé à copier, distribuer ou modifier la version originale de ce document selon les termes de la licence de documentation libre GNU (GFDL), version 1.1 ou ultérieure, telle que publiée par la Free Software Foundation ; sans section inaltérable, ni texte de première de couverture, ni texte de quatrième de couverture.

> Une copie en anglais de cette licence est incluse à la fin de ce document (cf. ). Une traduction française officieuse de cette licence est disponible sur .

> Copyright © 2003 Guillaume Lelarge, Vanessa Conchodon et Jean-Philippe Guérard pour la version française

> La version française de ce document a été réalisée par Guillaume Lelarge, Vanessa Conchodon et Jean-Philippe Guérard. Elle est publiée en accord avec les termes de la licence de documentation libre GNU (GFDL), version 1.1 ou ultérieure, telle que publiée par la Free Software Foundation ; sans section invariante, sans texte de première de couverture ni texte de quatrième de couverture.

> Une copie en anglais de cette licence est incluse à la fin de ce document (cf. ). Une traduction française officieuse de cette licence est disponible sur .

## Copyright and License

Le texte ci-dessous est la licence de ce document. Ce texte fait foi. Il est composé de la licence (en anglais) du document original, suivi de la licence (en français) de sa traduction.

> Copyright (c) 2003 Emma Jane Hogbin.

> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in .

> Copyright © 2003 Guillaume Lelarge, Vanessa Conchodon et Jean-Philippe Guérard pour la version française

> La version française de ce document a été réalisée par Guillaume Lelarge, Vanessa Conchodon et Jean-Philippe Guérard. Elle est publiée en accord avec les termes de la licence de documentation libre GNU (GFDL), version 1.1 ou ultérieure, telle que publiée par la Free Software Foundation ; sans section invariante, sans texte de première de couverture ni texte de quatrième de couverture.

> Une copie en anglais de cette licence est incluse à la fin de ce document (cf. ). Une traduction française officieuse de cette licence est disponible sur .

## Commentaires et corrections

N'hésitez pas à faire parvenir tous commentaires relatifs à la version française de ce document à commentaires CHEZ traduc POINT org

## Nouvelles versions de ce document

Les nouvelles éditions françaises de ce document sont disponibles sur .

## À propos de l'ACPI

Dans le monde de la gestion d'énergie, l'ACPI est relativement récent. Sa première version date de 1996 et a été conçue par Compaq – Hewlett-Packard, Intel, Microsoft, Phoenix et Toshiba. Ses développeurs ont souhaité remplacer le standard industriel précédent en matière de gestion d'énergie. Leur site ACPI.info contient les spécifications officielles, une liste des sociétés supportant l'ACPI et un certain nombre d'autres choses. Il n'est pas nécessaire de le lire bien que cela puisse avoir de l'intérêt pour les curieux maladifs.

ACPI permet le contrôle de la gestion d'énergie par le système d'exploitation. Le standard industriel précédent, Advanced Power Management (APM), est contrôlé au niveau du BIOS. L'APM est activé lorsque le système ne fait rien — plus le système est en attente, moins il utilise de puissance (c'est-à-dire qu'on commence par l'économiseur d'écran, que l'on passe en mode veille puis en mode suspendu). Avec l'APM, le système d'exploitation n'a pas connaissance du moment où l'ordinateur changera d'état.

L'ACPI peut être généralement configuré à partir du système d'exploitation. Ce n'est pas comme l'APM où la configuration nécessite souvent de redémarrer et de passer par l'interface de configuration du BIOS pour définir les paramètres.

L'ACPI a différents composants logiciels :

- Un sous-système contrôlant l'état et les fonctions du matériel (qui faisait partie auparavant de la configuration du BIOS).

  Les états incluent :

  - le contrôle thermique ;

  - la configuration de la carte mère ;

  - l'état électrique (en veille, suspendu).

- Un gestionnaire de politique, c'est-à-dire un logiciel au-dessus du système d'exploitation permettant à l'utilisateur de décider des politiques suivies par le système.

- L'ACPI dispose aussi de pilotes de périphériques contrôlant et surveillant les périphériques comme la batterie du portable, SMBus (chemin de communication et de transmission) et EC (contrôleur embarqué).

Si vous souhaitez plus d'informations sur la gestion d'énergie sur les portables, jetez un œil aux ressources disponibles (en anglais) sur tuxmobil.org. Plus spécifiquement : La gestion d'énergie sous Linux — APM, ACPI, PMU et la section consacrée au matériel dans le détail du Guide du Linux itinérant.

## Pourquoi changer ?

Tous les systèmes ne sont pas compatibles à la fois avec APM et ACPI. Je suis passée à l'ACPI, car mon système n'était compatible qu'avec ce mode de gestion de l'énergie. La décision a du coup été assez facile. Si vous pensez changer pour pouvoir utiliser le mode S3 (système suspendu en RAM — suspend to RAM) et que vous utilisez un noyau 2.4.x, oubliez cette idée. Cela n'est pas possible.

Vous n'êtes pas sûr que votre système est compatible ? ACPI4Linux a une liste de machines et BIOS compatibles sur leur Wiki. Merci de contribuer à la liste si vous avez installé l'ACPI ! Ils ont aussi une liste des machines qui ne sont pas compatibles.

## La table de description différenciée du système (DSDT)

Merci à Erich pour la rédaction de cette section.

Vous aurez peut-être besoin de passer outre la DSDT lorsque certaines informations, comme l'état de la batterie, sont transmises de façon incorrecte (causant habituellement des messages d'erreur dans syslog). Les portables DELL ont généralement besoin de ce type de palliatifs. Les DSDT corrigées sont disponibles pour de nombreux systèmes sur la page DSDT avec un correctif indiquant au noyau d'ignorer la table du BIOS et d'utiliser la DSDT corrigée.

Vous aurez simplement besoin de copier la table corrigée dans les sources du noyau avec un nom de fichier particulier (ou en modifiant le nom du fichier dans le correctif donné sur la page DSDT). Passer outre la DSDT est donc assez facile : au lieu de charger la table DSDT du BIOS, le noyau est compilé avec et utilise sa propre table DSDT. C'est tout.

## Installer à partir de rien

ACPI est constamment en révision. Il n'est pas encore disponible pour les noyaux de la série 2.4.x mais le sera pour la série 2.5.x (ou peut-être pas avant le 2.6). Ceci signifie que tous les noyaux avant les 2.5.x doivent se voir appliquer un correctif. Ceux-ci sont disponibles sur le site acpi.sourceforge.net. Vous aurez besoin de récupérer le correctif correspondant exactement au noyau que vous utilisez. Comme il s'agit d'une section d'« installation à partir de rien », je supposerais que vous savez exactement quel noyau vous allez installer.

### Choisir un noyau

Ce document a été écrit pour le noyau 2.4.20. Depuis, le noyau stable 2.4.21 est disponible. Les applications du dernier correctif ACPI sur ce noyau ont eu des résultats mitigés. Pour l'instant, je recommande de rester sur le noyau 2.4.20 et son dernier correctif : 2002.12.12. D'autres recommendent d'autres choses. Une recherche via Google sur les listes de diffusion debian-user, debian-laptop et acpi-support vous sera utile si vous n'êtes pas sûr de ce que vous devez faire pour votre système spécifique.

Pour être sûr du résultat, ce document utilisera le noyau 2.4.20 comme exemple ; substituez la version de votre noyau de façon appropriée.

Il est important d'utiliser la dernière version du correctif ACPI. Certaines distributions ont déjà appliqué des correctifs à leurs noyaux. C'est le cas pour Debian et certainement pour d'autres. Pour plus d'informations sur les correctifs qui ont été appliqués aux sources du noyau telles qu'elles sont livrées par Debian, lisez `/usr/src/kernel-source-&kernel-version;/README.Debian`. Si vous n'utilisez pas Debian, trouvez le fichier équivalent pour votre distribution.

Un utilisateur sur acpi-support m'a confirmé que je ne devrais pas avoir besoin des correctifs supplémentaires appliqués au noyau pour qu'il s'exécute sur mon portable. Si vous utilisez un serveur en production ou proposez des pages web sur Internet, vous devriez réellement appliquer tout correctif de sécurité supplémentaire.

Si un noyau dispose d'autres correctifs, vous pourriez avoir quelques soucis pour appliquer le correctif ACPI. Bien sûr, un correctif ACPI ne devrait pas être appliqué à un noyau disposant déjà d'un correctif ACPI. A priori, tant qu'aucun autre correctif ACPI n'a été appliqué au noyau, il devrait être possible d'en appliquer un maintenant. Suivant les correctifs appliqués, vous pourrez avoir besoin de modifier certains fichiers Makefile pour que le correctif s'installe avec succès. Ceci est bien au-delà de mes compétences et n'est donc pas traité dans ce document.

#### Noyau préparé par Debian

Si vous préférez utiliser un noyau préparé par Debian, maxx propose un paquet des sources du noyau disposant déjà du correctif compatible avec le noyau 2.4.20. Ceci vous évitera de télécharger un noyau sans correctif sur www.kernel.org. Il m'a envoyé un courrier électronique avec les détails suivants :

> maxx

> J'ai pris les sources du noyau 2.4.20-8 à partir de unstable, supprimé les modifications pour l'ACPI (c'est-à-dire l'ancien correctif) et appliqué `acpi-20021212-2.4.20.diff.gz` provenant de acpi.sf.net car le noyau 2.4.20 de base a plusieurs failles de sécurité (ptrace, tableau hash, …).

> Vous pouvez trouver le paquet sur http://people.debian.org/~maxx/kernel-source-2.4.20/. (je n'ai pas chargé le .orig.tar.gz car vous pouvez l'obtenir de n'importe quel miroir debian et que celui-ci est déjà assez gros).

Je n'ai pas testé ces paquets. Vous pouvez être, ou non, chanceux. Merci de ne pas me demander quoi que ce soit là-dessus, voyez directement avec maxx.

## Sauvegardes

Si vous avez déjà un noyau fonctionnel de la même version que celui que vous souhaitez corriger, je vous recommande de créer un nouveau répertoire pour le nouveau noyau corrigé. Rappelez-vous que les sauvegardes ne sont jamais une mauvaise chose. Voici les fichiers que je sauvegarde :

- `/etc/lilo.conf`

- `/usr/src/*.deb` (spécifique à la Debian)

- `/etc/modules`

- `/etc/modutils/aliases`

- `/usr/src/linux/.config`

- Si vous n'agissez pas à la façon Debian vous devez aussi sauvegarder le répertoire `/lib/modules`, `/boot/vmlinuz`, `/usr/src/linux/arch/i386/boot/bzImage` et `/usr/src/System.map`. Il est possible que l'emplacement de ces fichiers soit différent. Faites un ``locate` <fichier>` s'ils ne se trouvent pas là où je l'ai dit.

## Paquets requis

Comme j'ai commencé sur une toute nouvelle machine, je suis pratiquement sûre que j'ai une liste complète de tous les paquets requis pour que le correctif s'applique correctement. Voici la liste complète :

- fichiers source du noyau ;

- correctif ACPI correspondant exactement à la version de votre noyau ;

- paquets debian : make, bzip2, gcc, libc6-dev, tk8.3, libncurses5-dev, kernel-package

- après avoir appliqué le correctif, ajoutez les paquets debian : acpid, acpi (Debian testing and unstable only)

## Télécharger et appliquer le correctif

Téléchargez un noyau à partir de www.kernel.org. Vous devez vous assurer que vous avez un noyau complet. Cherchez la « dernière version stable du noyau Linux » et cliquez sur `F` pour FULL (NdT : COMPLET). Attendez patiemment. Un noyau compressé avec bzip2 pèse à peu près 26 Mo. Si vous vous sentez particulièrement geek, vous pouvez aussi lancer `wget `http://kernel.org/pub/linux/kernel/v2.4/linux-&kernel-version;.tar.bz2``.

Vous pouvez, ou non, vouloir la dernière version stable. Pour plus d'informations, lisez la de ce document. Si vous décidez d'utiliser une version du noyau non publiée sur la page principale, utilisez le répertoire /pub/linux/kernel sur le site kernel.org pour trouver le noyau que vous souhaitez.

Pendant que vous attendez, récupérez aussi une copie du correctif. Pour le noyau 2.4.20, utilisez le correctif 2.4.20. Il est daté du 12.12.2002. Vous aurez besoin de connaître ce nombre plus tard lorsque nous vérifierons que le correctif s'est bien appliqué. Si vous utilisez une version différente du noyau, assurez-vous d'avoir bien noté la date du correctif. Vos nombres vont différer légèrement de celui que j'utiliserai plus tard.

Une fois que vous avez ces deux fichiers (le noyau et le correctif), déballez-les et appliquez le correctif au noyau.

### Déballer

Maintenant, nous allons préparer le terrain pour l'application du correctif au noyau. Nous avons besoin de déballer le fichier bz2 (bzip2) et de déplacer quelques répertoires. `/usr/src/linux` pointe probablement vers votre noyau actuel. Nous avons besoin qu'il pointe vers le nouveau noyau, donc nous allons faire en sorte qu'il le fasse.

    cd /usr/src
    mkdir kernel-source-&kernel-version;          # Utilisez un autre nom si vous
                                         # avez déjà une version de ce noyau
                                         # installée
    cp linux.&kernel-version;.tar.bz2 /usr/src/kernel-source-&kernel-version;
    cd /usr/src/kernel-source-&kernel-version;
    tar xjfv linux.&kernel-version;.tar.bz2
    mv linux.&kernel-version; /usr/src/linux-&kernel-version;
    rm linux                             # En supposant qu'il s'agit d'un
                                         # lien vers votre ancien noyau
    ln -s /usr/src/linux-&kernel-version; linux

### Correctif

Maintenant, nous allons appliquer le correctif au noyau. Je réalise une étape supplémentaire aux instructions sur ACPI4Linux. Au lieu de décompresser et d'appliquer le correctif sur la même ligne, j'utilise deux lignes. C'est juste par préférence personnelle. Lorsque vous appliquez le correctif au noyau, vous voulez vous assurer qu'il n'y a eu aucun message d'erreur (il n'y a pas de ligne annonçant le succès, donc vérifiez plutôt l'absence d'erreurs).

    cd /usr/src/linux

    # Le nom de fichier du correctif sera différent si vous n'utilisez pas le
    # noyau 2.4.20 :

    cp acpi-20021212-2.4.20.diff.gz /usr/src/linux/

    gunzip acpi-20021212-2.4.20.diff.gz

    # Enfin la partie de l'application du correctif :

    patch -p1 < acpi-20021212-2.4.20.diff

## Configurer le nouveau noyau

Maintenant, au lieu d'utiliser `make menuconfig`, j'ai une option géniale. Faites ceci : copiez votre fichier `.config` actuel dans `/usr/src/linux`. Ensuite, utilisez `make oldconfig`. Il va lire l'intégralité de votre ancien fichier de configuration et voir ce qui a été mis à jour de façon à ce que vous n'ayez pas à chercher toutes les nouvelles options. Tout ce qui concerne l'ACPI (les cinq premières questions pour moi, mais peut-être plus pour vous si vous n'avez jamais configuré un noyau ayant déjà des correctifs) doit être à `M` (pour module). Il existe trois autres questions auxquelles je réponds non.

Voici comment configurer le noyau point par point :

    cd /usr/src/linux
    cp /usr/src/anciennes-sources-du-noyau/.config .config
    make oldconfig      # Dites « M » pour toutes les nouvelles options
                        # de l'ACPI - vous pouvez aussi dire oui (« Y »)
                        # si vous préférez les compiler directement dans le
                        # noyau

Maintenant, allez dans le fichier de configuration avec `make menuconfig`. Assurez-vous que l'APM est désactivé. Sous « General Setup », assurez-vous que :

- Power Management Support est activé

- APM (Advanced Power Management) est désactivé (c'est l'ancien système — vous ne devriez même pas en vouloir comme module à moins de savoir ce que vous faites. Et si vous le saviez, vous ne seriez probablement pas en train de lire ceci :))

- tout ce qui a trait à l'ACPI devrait avoir un `M` (module) ou une étoile (`*`) (compilé directement dans le noyau)

Sortez et sauvegardez la nouvelle configuration

## Compiler le nouveau noyau

Si vous avez des modules supplémentaires ne faisant pas partie du répertoire principal des sources, vous aurez besoin d'ajouter modules_image lors de la construction des paquets Debian. Ceci est pratiquement inévitable si vous utilisez un portable. Il y a trois correctifs ne faisant pas partie du noyau de base et que je dois installer séparément : ma carte graphique (nvidia) ; ma carte son (ALSA) ; et ma carte wifi (PCMCIA).

    cd /usr/src/linux
    make-kpkg clean
    make-kpkg --append-to-version=date kernel_image modules_image

Nommer le noyau construit

Je n'utilise plus .date pour distinguer les différents noyaux que j'ai construit. Il était trop frustrant d'avoir des `030627a`, `032627b` (et cætera) alors que j'essayais de comprendre comment cela marchait.

J'utilise maintenant des noms, en ordre alphabétique, en commençant avec le noyau que j'ai nommé « alien ». Je conserve malgré tout ici l'option de la date car je pense qu'il s'agit d'une bonne façon de faire les choses.

&kernel-compile;

## Installer le nouveau noyau

J'aime configurer `lilo` moi-même, mais faites comme vous l'entendez.

    cd /usr/src
    dpkg -i kernel-image-&kernel-version;.&kernel-name;_10.00.Custom_i386.deb

    # À ce moment, je refuse toutes les mises à jour
    # lilo et le configure moi-même manuellement.

    # Configurez lilo manuellement

    vi /etc/lilo.conf

    # Chargez le nouveau noyau dans lilo

    lilo

    # Si vous avez d'autres fichiers deb pour vos modules, vous devriez les
    # installer maintenant. Si vous n'êtes pas sûr, vérifiez /usr/src pour
    # des fichiers .deb supplémentaires.

&kernel-compile;

## Redémarrage et test

À ce moment, vous devez redémarrer votre machine. Lorsque le système est relancé (en supposant que tout s'est passé correctement et que vous avez toujours un système), vérifiez quel noyau est en cours d'exécution avec `uname -a`. Cela devrait vous montrer celui que vous venez de construire. Vous aurez aussi besoin de vous assurer que le bon correctif a été installé. Vous pouvez faire ceci avec :

    dmesg | grep ACPI.*Subsystem\ revision

Il devrait afficher :

    ACPI : Subsystem revision 20021212

Le numéro de révision est la date du correctif. Ce numéro sera différent du mien si vous n'utilisez pas un noyau 2.4.20. Pour rechercher tout ce qui concerne l'ACPI et qui a été chargé ou lancé lors du redémarrage du système, faites ceci :

    dmesg | grep ACPI

`dmesg` affiche les messages du démarrage et `grep ACPI` s'assure que seuls les messages relatifs à l'ACPI sont affichés.

Vous pouvez aussi vérifier la version que vous utilisez avec `cat /proc/acpi/info`. Ne croyez pas tout ce qui vous est indiqué. Ma sortie indique que S3 est un état utilisable, mais nous savons déjà que ce n'est pas le cas. Par contre, le numéro de version est correct, ce qui est bien utile.

## Charger les modules

Si vous avez compilé la gestion de l'ACPI en tant que module (« M »), vous aurez probablement besoin de charger les modules à la main. Vous devrez chercher un peu pour trouver les modules. Les miens sont dans `/lib/modules/&kernel-version;.&kernel-name;/kernel/drivers/acpi/` et s'appellent :

    -rw-r--r--    1 root     root         4.1k Jun  3 23:57 ac.o
    -rw-r--r--    1 root     root         9.5k Jun  3 23:57 battery.o
    -rw-r--r--    1 root     root         5.2k Jun  3 23:57 button.o
    -rw-r--r--    1 root     root         3.7k Jun  3 23:57 fan.o
    -rw-r--r--    1 root     root          14k Jun  3 23:57 processor.o
    -rw-r--r--    1 root     root          11k Jun  3 23:57 thermal.o
    -rw-r--r--    1 root     root         6.2k Jun  3 23:57 toshiba_acpi.o

La première fois que j'ai redémarré, je les ai chargés manuellement en tapant

    insmod nom_du_module

Je commence par `processor`, bien que les avis soient partagés sur le fait que l'ordre ait une importance.

Modules du noyau

Le nom du module est la partie du nom du fichier, précédant l'extension `.o`.

`processor.o` est le fichier, `processor` est le nom du module. Pour installer un module du noyau, utilisez `insmod processor`.

Vous pouvez vérifier les modules chargés avec `lsmod`. Ma sortie de `lsmod` (avec la plupart des extras supprimés) ressemble à ceci :

    Module                  Size  Used by    Tainted: P
    button                  2420   0 (unused)
    battery                 5960   0 (unused)
    ac                      1832   0 (unused)
    fan                     1608   0 (unused)
    thermal                 6664   0 (unused)
    processor               8664   0 [thermal]
    NVdriver              945408  11

Le dernier est ma carte graphique utilisant des pilotes propriétaires. C'est pourquoi un « P » se trouve à côté de Tainted sur la première ligne.

Gestion d'énergie du système d'exploitation (OSPM ou Operating System Power Management

La première fois où j'ai essayé ceci, les modules étaient tous dans des répertoires séparés et se nommaient ospm_<nom>. C'est probablement dû au fait que j'utilisais un ancien correctif, mais c'est important de le savoir. Les modules OSPM sont maintenant abandonnés, donc vous ne devriez plus les voir.

Pour ne pas avoir à charger les modules dans le noyau à chaque fois que vous démarrez, vous devez soit les compiler directement dans le noyau (un peu tard, n'est-ce-pas ?) soit les ajouter dans votre fichier `/etc/modules`. Si vous n'avez pas déjà une copie de ce fichier, créez-le et ajoutez un nom de module (rappelez-vous, pas de .o) par ligne.

## Passer d'APM à l'ACPI

Ne laissez pas apmd et acpid s'exécuter en même temps à moins que vous ne sachiez réellement ce que vous faites. Debian ne vérifiera pas si l'un d'entre eux est déjà lancé. Vous devez le vérifier. APM essaiera de passer votre système en S3. Sur les noyaux de série 2.4.x (et précédents), ceci a de fortes chances de bloquer votre machine. S3 n'est pas supporté jusqu'au 2.5.x. Même le correctif n'apporte pas le support de S3. J'ai préféré faire un `apt-get remove apmd` pour résoudre ce problème.

Vous devez aussi connaître un autre petit problème que j'ai découvert. Le serveur XFree86 a une option pour les fonctionnalités DPMS (Energy Star). Le DPMS peut passer par différents états : en attente, suspendu, arrêté, en cours. Comme les noyaux 2.4.x ne peuvent être suspendus vers le disque, ceci peut poser problème. J'ai corrigé mon système en faisant deux choses :

- `xset -dpms` (désactive les fonctionnalités DPMS)

- Dans `/etc/X11/XF86Config-4`, j'ai mis en commentaire la ligne `Option "DPMS"` de la section `"Monitor"`.

## Utiliser l'ACPI

Il existe plusieurs applications/démons différents que vous voudrez installer sur votre système : acpid (le démon qui contrôle les états du matériel) et acpi (l'interface surveillant les événements et les états) font partie de l'installation de base. Le paquet Debian acpi est seulement disponible dans testing et est instable. Si vous utilisez la distribution Debian stable, vous ne serez pas capable de l'installer sans bidouiller avec `apt` et votre fichier `sources.list`. Vous pouvez probablement les compiler à partir des sources. Si vous avez acpi installé, vous pouvez l'utiliser pour surveiller votre système en utilisant cette commande : `acpi `-V``. Sa sortie vous donnera des informations sur votre système. La mienne ressemble à ceci :

         Thermal 1: ok, 47.1 degrees C
         Thermal 2: ok, 45.1 degrees C
      AC Adapter 1: off-line <-- fonctionne sur batteries
      AC Adapter 1: on-line <-- fonctionne sur secteur

Malheureusement, la « version complète » de `-V` ne fonctionne pas pour moi. Heureusement, je peux toujours regarder dans chacun des fichiers acpi individuellement pour obtenir des informations sur mon système. Regardez dans le répertoire `/proc/acpi` afin de vérifier différents points importants. Si je veux vérifier ma batterie, je lis le fichier suivant comme ceci :

    cat /proc/acpi/battery/BAT0/state

La sortie ressemble à ceci :

    present:                 yes
    capacity state:          ok
    charging state:          discharging <-- fonctionne sur batteries
    present rate:            unknown
    remaining capacity:      3920 mAh <-- surveillez ce nombre
    present voltage:         14800 mV

    present:                 yes
    capacity state:          ok
    charging state:          discharging
    present rate:            unknown
    remaining capacity:      3840 mAh <-- la charge batterie diminue
    present voltage:         14800 mV

    present:                 yes
    capacity state:          ok
    charging state:          charging <-- adaptateur secteur branché
    present rate:            unknown
    remaining capacity:      3840 mAh
    present voltage:         14800 mV

Si je veux de l'information sur ma batterie en général, je testerais ceci :

    cat /proc/acpi/battery/BAT0/info

    present:                 yes
    design capacity:         3920 mAh
    last full capacity:      3920 mAh
    battery technology:      rechargeable
    design voltage:          14800 mV
    design capacity warning: 30 mAh
    design capacity low:     20 mAh
    capacity granularity 1:  10 mAh
    capacity granularity 2:  3470 mAh
    model number:            Bat0
    serial number:
    battery type:            Lion
    OEM info:                Acer

Vous êtes des personnes intelligentes. Vous pouvez probablement vous débrouiller à partir de maintenant :)

## Références et ressources

Les liens suivants ont été incroyablement utiles pour l'écriture de ce guide pratique et en règle général pour faire fonctionner l'ACPI.

Guides pratiques

Guide pratique de l'installation de l'ACPI sous Linux

  http://sylvestre.ledru.info/howto/howto_acpi.php

Guide pratique de l'ACPI sous Linux

Linux en voyage
auparavant : Guide pratique du portable sous Linux

  http://tuxmobil.org/howtos.html Vous aurez besoin de descendre un peu ou d'utiliser la version HTML : http://tuxmobil.org/Mobile-Guide.db/Mobile-Guide.html

Matériel en détail (partie du Linux en voyage)

  http://tuxmobil.org/Mobile-Guide.db/mobile-guide-p2c1-hardware-in-detail.html

Gestion de l'énergie avec Linux - APM, ACPI, PMU

  http://tuxmobil.org/apm_linux.html

Créer des noyaux personnalisés avec le système de paquets de noyaux de Debian

  http://newbiedoc.sourceforge.net/system/kernel-pkg.html

Rapports d'installation et informations spécifiques à un matériel

Rapports d'installation

  http://acpi.sourceforge.net/wiki/index.php/InstallationReports

Liste noire

  http://acpi.sourceforge.net/documentation/blacklist.html

DSDT : Survol

  http://acpi.sourceforge.net/dsdt/index.php Inclut des liens vers des DSDT corrigés et vers des guides pratiques sur l'application d'un correctif disposant de votre propre DSDT.

Paramétrages du BIOS pour l'Acer (Phoenix BIOS)

  http://help.nec-computers.com/au/pri/item_instr_bios_7521N.asp

Groupes de développement de logiciels

ACPI4Linux

  http://acpi.sf.net

Groupe d'intérêt ACPI

  http://www.acpi.info/

Intel

  http://developer.intel.com/technology/iapc/acpi/

Listes de diffusion

Discussion sur debian-laptop : can't restore from suspend (NdT : Impossible de restaurer à partir du mode suspendu)

  http://lists.debian.org/debian-laptop/2003/debian-laptop-200304/msg00367.html

Discussion sur acpi-support : newbie HOWTO and debian patching (NdT : guide pratique pour les nouveaux et pour amender la debian)

  http://sourceforge.net/mailarchive/forum.php?forum_id=7803&max_rows=25&style=flat&viewmonth=200304&viewday=17

Discussion sur debian-laptop : acer 634 ACPI (NdT : ACPI sur l'acer 634

  http://lists.debian.org/debian-laptop/2002/debian-laptop-200212/msg00242.html

Paquets ACPI et logiciels en relation

Noyau

  Rappelez-vous de choisir "F" pour full (NdT : pour complet) lorsque vous téléchargez les sources du noyau. http://www.kernel.org

Noyau préparé par Debian

  Paquet des sources du noyau 2.4.20-8 préparé par maxx. Pour plus d'informations, voir les . http://people.debian.org/~maxx/kernel-source-2.4.20/

Correctif du noyau pour l'ACPI

  Vous devrez prendre la version correspondant exactement au noyau que vous utilisez. http://sourceforge.net/project/showfiles.php?group_id=36832

acpid

  le démon http://sourceforge.net/projects/acpid

acpi

  l'interface texte http://grahame.angrygoats.net/acpi.shtml

Kacpi

  l'interface graphique de KDE http://www.elektronikschule.de/~genannt/kacpi/download.html

aKpi

  une autre interface de KDE http://akpi.scmd.at/

wmacpi

  un DockApp WindowMaker (un autre GUI) http://www.ne.jp/asahi/linux/timecop/

wmacpi+clecourt

  un DockApp WindowMaker (une autre interface graphique). Gère deux batteries. http://open.iliad.fr/~clecourt/wmacpi/index.html

## Remerciements

Mes remerciements vont aux personnes suivantes :

- acpi-support

- debian-laptop

- debian-user

- techtalk

- listes de diffusions de TLDP (discuss et docbook)

- Sebastian Henschel pour m'avoir rappelé que j'avais promis de l'écrire

- Erich Schubert pour la rédaction de la section sur DSDT

- Werner Heuser pour m'avoir suggéré de soumettre le document au LDP

- Tabatha Marshall pour l'édition et d'avoir été en règle générale très enthousiaste pour apprendre DocBook

## L'ACPI sans utiliser Debian

Il n'existe que peu de différence entre la manière Debian et la manière générique. En fait, il doit y avoir seulement dix lignes de différences.

### Compiler le noyau

La façon « habituelle » de compiler un noyau ne fait pas usage de `make-kpkg`. À la place, elle utilise les étapes suivantes :

    cd /usr/src/linux # qui devrait pointer vers les fichiers (décompressés)
                      # du noyau 2.4.20
    make dep
    make clean
    make bzImage
    make modules      # (rappelez-vous de déballer vos modules en premier
                      # lieu)

### Installer le nouveau noyau

À la manière Debian, vous créez un fichier deb contenant l'information sur l'emplacement du noyau (et créez le noyau et ainsi de suite). D'une façon plus générique, vous placez les choses là où elles doivent être. Vous avez besoin d'installer vos modules, puis de configurer `lilo` pour pointer vers le nouveau noyau et d'exécuter `lilo`. Si vous ne faites pas de la façon Debian, votre « installation » ressemblera à ceci :

    cd /usr/src/linux
    make modules_install
    cp arch/i386/boot/bzImage /boot/vmlinuz.&kernel-name;
    vi /etc/lilo.conf # et copiez la structure votre noyau actuel. Ne
                      # supprimez PAS la référence à votre noyau
                      # actuel ! Vous avez besoin de faire pointer lilo
                      # vers le fichier « vmlinuz » qui a été créé
                      # lors de votre compilation du noyau ci-dessus.

    lilo              # (oui, exactement comme ça.)
                      # Lilo vous indiquera si des problèmes importants
                      # sont survenus lors du chargement du nouveau noyau.

N'oubliez PAS de lancer lilo avant de redémarrer. Tapez `lilo`. C'est aussi simple (et c'est aussi simple de l'oublier).

### Paquets logiciels

Vous pouvez toujours utiliser tous les logiciels mentionnés dans ce guide pratique même si vous n'utilisez pas Debian. Malheureusement, cela demandera un peu plus d'efforts de votre part pour télécharger et installer tout. Heureusement, ce n'est pas si difficile. Lorsque vous les décompressez, la plupart des paquets comprennent un fichier `README` qui vous explique ce dont vous avez besoin pour les faire fonctionner sur votre système.

&resources-software;

## GNU Free Documentation License

Version 1.1, March 2000

> Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

### PREAMBLE

The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

### APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".

A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.

The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.

A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.

The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

### VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly display copies.

### COPYING IN QUANTITY

If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

### MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).

3. State on the Title page the name of the publisher of the Modified Version, as the publisher.

4. Preserve all the copyright notices of the Document.

5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.

8. Include an unaltered copy of this License.

9. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.

11. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

13. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.

14. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

### COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."

### COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

### AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.

### TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.

### TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

### FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

### How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

> Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".

If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.