Païou veut réduire la consommation de son ordinateur

Introduction

Le gestion de l'énergie est primordiale pour un ordinateur portable. Elle est cependant également très importante pour un ordinateur de bureau, lorsqu'on a le soucis de ne pas gaspiller l'énergie.
Afin de pouvoir configurer correctement la gestion de l'énergie, il faut bien comprendre les mécanismes de cette gestion.

Haut

Petit historique

Une bonne partie de ce paragraphe est extrait de la page suivante : ACPI. Dans une nouvelle fenêtre (onglet) Cliquez

Au départ, rien

Jusqu'à l'époque des 386 et des 486, la gestion d'énergie n'existait pas. Vous deviez penser à éteindre l'ordinateur quand vous ne l'utilisiez plus et également penser à éteindre l'écran.

Haut

DPMS

Le standard DPMS (Display Power Management Signaling) commence à penser "économie". L'écran s'éteint au bout d'un certain temps d'inutilisation.
Ici, tout se passe entre la carte graphique et l'écran. Le système d'exploitation n'intervient pas.

Haut

APM

APM (Advanced Power Management) est constitué d'un ensemble de fonctions du BIOS que le système d'exploitation peut utiliser. La plupart des systèmes le supportent.
La gestion d'énergie proprement dite est effectuée par le BIOS et les composantes de la carte mère. La qualité de la gestion dépend ainsi grandement du matériel utilisé et le système d'exploitation n'a que peu de contrôle sur celle-ci.
Un pilote de périphérique peut indiquer à APM de ne pas appliquer de gestion pour un périphérique donné, ce qui lui permet de prendre cette gestion en charge. Malheureusement, il n'y a aucun standard quant à la méthode de gestion d'énergie; elle dépend dans ce cas du périphérique.
APM fournit aussi un indicateur de charge pour les batteries d'ordinateurs portables et peut avertir le système d'exploitation en cas de changement d'état des batteries, par exemple un branchement sur secteur.
Ici, le système d'exploitation s'adresse au BIOS. Les possibilités de gestion dépendent donc totalement du BIOS et du périphérique et, en plus, il n'y a pas de standard.

Haut

ACPI

ACPI (Advanced Configuration and Power Interface) marque un pas de plus. Selon la norme ACPI, chaque composant peut se trouver en différents modes de gestion d'énergie.
Pour qu'un système fonctionne dans ce mode, il faut que :

  • le BIOS soit compatible. Le BIOS de toutes les machines modernes contient les éléments nécessaires pour ACPI
  • tous les périphériques de la machine soient conformes à la norme ACPI. Tous les périphériques récents se conforment à la norme.
  • les pilotes des périphériques doivent également y être adaptés.
  • le système d'exploitation doit aussi pouvoir tirer parti des fonctionnalités nouvelles. Linux (à partir du noyau 2.4 mais idéalement 2.6) supporte ce standard.

En fait, ACPI fait plus que la gestion de l'énergie. ACPI fournit un standard qui permet de détecter les composantes de la machine et les configurer par la voie logicielle.
Par le biais d'ACPI, le système d'exploitation peut configurer et contrôler chacun des périphériques de la machine. Par exemple, si le système juge que le modem n'est plus utilisé, il peut l'éteindre électriquement. L'appareil ne sera réalimenté que lorsque le système en aura à nouveau besoin.
ACPI fournit la possibilité d'éteindre l'ordinateur ou le mettre en mode veille, à partir du système d'exploitation.
Avant de passer en mode de consommation énergétique minimale, le système peut fournir à certains périphériques la possibilité de réveiller la machine. Par exemple, sur un ordinateur configuré comme répondeur téléphonique, si la machine est en veille, le modem doit pouvoir la ramener en mode nominal. Un autre exemple : l'ordinateur peut être réveillé par un signal sur la carte réseau. Vous pouvez ainsi réveiller votre ordinateur par internet.
La fonction des boutons du système est aussi déterminée par le système d'exploitation. Le bouton de mise sous tension, par exemple, peut au choix de l'utilisateur éteindre Windows proprement ou plonger la machine en mode veille, ou bien en hibernation.

Le principe de fonctionnement de l'ACPI est le suivant. Le BIOS contient une table définie par le fabricant de l'ordinateur. Elle décrit le matériel fourni, et définit les opérations de base permettant de gérer l'énergie.
Ces opérations sont définies dans un langage standard spécifié par Intel. Le système d'exploitation est en charge de lire ces informations et d'interpréter les opérations définies dans la table ACPI. Ainsi, c'est bien le système d'exploitation qui se charge de la gestion de l'ordinateur.

Haut

Un peu de théorie : les différents états

Plutôt que d'interagir directement avec les caractéristiques de votre matériel, ACPI fait appel à la notion de différents états.
Les états définissent des niveaux de disponibilité des ressources des composants, ce qui se traduit en terme de puissance consommée. Ainsi, une réduction de la fréquence du processeur est simplement considéré comme étant un saut à un état bien défini de puissance réduite.
ACPI met en œuvre deux grands types d'états appelés "global" et "device". Au niveau global, les états influent sur la consommation d'énergie globale et la réaction de votre ordinateur. Au niveau device, les états conrnent les périphériques tels que les disques durs, écran ...

En ce qui concene le système global, ACPI le divise en 4 états, G0 à G3.
  • G0/S0 en service : l'ordinateur est entièrement en service.
  • G1 sommeil : aucun processeur n'exécute d'instruction, pourtant l'utilisateur n'a pas demandé un arrêt complet de l'ordinateur.
    Pour quitter cet état le système d'exploitation n'a pas à réexécuter toute la séquence d'amorçage mais reprend son fonctionnement à partir de l'état où il était avant cet arrêt.
    Cet état est subdivisé en plusieurs sous états.
    • G1/S1 power on suspend : aucun processeur n'exécute d'instruction mais aucun contexte d'exécution n'est perdu et l'ordinateur pourra quitter cet état très rapidement.
      Dans cet état, l'alimentation est toujours en service mais les disques sont stoppés (comme dans tous les états suivants).
    • G1/S2 standby : état de sommeil plus profond, les processeurs devront être réinitialisés au réveil, le système d'exploitation devra ensuite restaurer les différents contextes d'exécution. Cet état est documenté dans la spécification ACPI mais rarement implémenté.
    • G1/S3 suspend to RAM : dans cet état l'ordinateur éteint l'alimentation principale, mais l'état de la mémoire centrale est maintenu en employant une alimentation permanente (appelé 5VSB) ainsi il restaurera son état plus rapidement qu'en S4.
    • G1/S4 suspend to disk : l'état du système (en particulier le contenu de la mémoire et les contextes d'exécution des processeurs) a été sauvegardé (le plus souvent dans un fichier d'hibernation sur un disque dur). L'ensemble des composants de l'ordinateur est sans alimentation. A sa remise en service le système d'exploitation devra recharger ce fichier d'hibernation et restaurera alors l'état de l'ordinateur.
  • G2/S5 arrêt piloté (soft off) : la consommation électrique est la plus réduite possible et aucun état courant de l'ordinateur n'a été sauvegardé (l'utilisateur a demandé au système de s'arrêter complètement) cependant l'alimentation bien que stoppée est toujours connectée à une source électrique et fournit l'alimentation permanente 5VSB (d'ailleurs le clavier reste souvent alimenté car la pression d'une touche permet de démarrer à nouveau). Lors de la remise en service le système d'exploitation devra exécuter toute la séquence d'amorçage avant d'être disponible.
  • G3 arrêt mécanique : dans cet état un interrupteur mécanique a été manœuvré et seule une manœuvre humaine peut permettre de démarrer l'ordinateur. On pourrait croire que dans cet état plus aucun composant n'est alimenté, mais c'est inexact : dans un PC par exemple une pile (le plus souvent au lithium) alimente encore un petit circuit CMOS et permet de maintenir quelques informations de configuration ainsi qu'une horloge.
Les états des "devices" sont les suivants :

Au sein de l'état général G0, certains périphériques peuvent être dans un état de moindre consommation :

  • D0 Fully-on : le périphérique est en utilisation.
  • D1 et D2 : états intermédiaires. La définition exacte dépend du type de périphérique.
  • D3 Off : le périphérique est à l'arret total. Il devra être réinitialisé avant d'être opérationnel.
Enfin, les états du processeur :

Les états de gestion de la puissance du processeur (états Cx) permettent de gérer la consommation et la température du processeur au sein de l'état global G0.
Notez que ACPI ne concerne pas la vitesse du processeur, mais uniquement son état : arrêt/marche.

  • C0 : le processeur est opérationnel et exécute des instructions
  • C1 (souvent connu sous le terme de Halt) : dans cet état, le processeur n'exécute aucune instruction. Son temps de latence est le plus réduit, au point qu'il n'a pas à s'en préoccuper. Plusieurs processeurs, tels le Pentium 4, comportent également un état C1 amélioré (C1E) avec une consommation plus réduite. En dehors du fait de placer le processeur en mode non-exécution, cet état n'a pas d'autre effet visible.
  • C2 (souvent connu sous le terme de Stop-Clock) c'est un autre état sans exécution d'instructions proposant une plus grande économie d'énergie. La latence hardware la plus élevée provient du firmware du système ACPI et le système d'exploitation peut utiliser cette information pour décider de passer en état C1 plutôt que de rester en C2. En dehors du fait de placer le processeur en mode non-exécution, cet état n'a pas d'autre effet visible.
  • C3 L'état C3 diminue encore la consommation. La latence hardware la plus élevée provient également du firmware du système ACPI et le système d'exploitation peut utiliser cette information pour décider de passer en état C2 plutôt que de rester en C3.
Haut

Linux et ACPI

Linux implémente l'ACPI telle qu'elle est définie par le standard Intel. Malheureusement, bon nombre de BIOS fournis par les fabricants sont bogués et ne respectent pas la norme ACPI. Certaines fonctions peuvent, de ce fait, être absentes ou défaillantes.

C'est un démon, acpid, qui coordonne la gestion de l'énergie en écoutant les divers évènements. Pour ceci, il consulte le fichier d'événement du noyau, /proc/acpi/event.
Dès qu'un événement se produit (passage de l'alimentation sur batterie pour un portable, hausse anormale de la température du processeur, appui sur le bouton de mise en marche / arrêt, etc.), une ligne signalant cet événement est ajoutée à ce fichier virtuel.
Le démon acpid fournit un mécanisme de notification utilisable par les applications. Ainsi, celles-ci sont prévenues des événements que le noyau émet.
Le démon acpid permet aussi de programmer des actions en réponse aux événements ACPI. Pour cela, il consulte les fichiers de configuration placés dans le répertoire /etc/acpi/events/ et exécute les actions qui y sont enregistrées.

Haut

Fonctionnement

Le BIOS

En général le BIOS est correctement configuré et permet au système d'exploitation de tirer profit de l'ACPI

Si vous voulez le vérifier ou le configurer :

Le noyau

Le noyau de Linux est également déjà prêt. Un extrait du fichier de configuration montre que le noyau a été compilée avec les options relatives à la gestion de l'énergie et à ACPI, soit directement, soit sous forme de modules.
Dans un popup, les réglages du noyau
Cliquez

L'installation

À l'installation de la Mandriva, les paquetages relatifs à ACPI sont automatiquement installés (acpid et acpi). Les règles ACPI sont également établies.
Les règles sont définies dans des fichiers situés dans le répertoire /etc/acpi/events. Chaque fichier doit définir un évènement et une action. L'action est une commande qui est exécutée chaque fois que l'évènement a lieu.
Dans un popup, un exemple de règles ACPI
Cliquez

Le démarrage

Au démarrage de l'ordinateur, cette fonction ACPI met en place une série de pseudo-fichiers dans les répertoires /proc et /sys.
Le répertoire /proc/acpi contient surtout des informations relatives aux composants ACPI pris en charge par le noyau.
Chaque sous-répertoire de /proc/acpi correspond à un composant ACPI pris en charge par le noyau. Dans chacun de ces sous-répertoires, vous trouverez des fichiers contenant les informations courantes sur ces différents sous-systèmes.
Dans un popup, un exemple de répertoire /proc/acpi
Cliquez

Le répertoire /sys/power sert à gére l'économie d'énergie. Il comprend, chez moi, 4 fichiers, disk, image_size, resume et state.
Le fichier /sys/power/state indique quels modes sont supportés (stanby et disk, chez moi, souvent également mem).
Le fichier /sys/power/disk précise la façon de traiter l'hibernation : platform=pilote platform, test, testproc, shutdown=arrêt, reboot=redémarrage, chez moi).
/sys/power/image_size définit la taille maximale de l'image créée par le mécanisme d'hibernation et /sys/power/resume définit l'emplacement de l'image.

Les informations

La paquetage acpi, également automatiquement mis en place lors de l'installation de la Mandriva, permet de rechercher les informations sans être obligé de lire le répertoire /proc. Différentes options :

  • acpi -b : charge de la batterie
  • acpi -t : informations relatives à la température.
    Lorsque thermal est pris en charge, vous aurez une réponse qui ressemble à : Thermal 1: OK,59.0 degrees C
  • acpi -V : affiche les informations relatives à tous les éléments pris en charge.

Pour connaître d'autres possibilités du programme acpi : acpi -h

Le démon acpid

acpid est un démon qui informe les programmes utilisateurs (programmes non réservés à l'administrateur) lorsqu'il y a un évènement ACPI.
Il va ouvrir un fichier d'évènement, /proc/acpi/event, et va y écrire une nouvelle ligne à chaque évènement qu'il perçoit.
À chaque évènement reçu, acpid va examiner une liste de règles, celles que vous avez vues dans le répertoire /etc/acpi/events, et va exécuter celles qui y correspondent.

Haut

Les paquetages

La base

  • acpid est automatiquement installé.
  • acpi est également installé.

Les interfaces graphiques

L'interface graphique dépend du bureau que vous avez choisi : KDE, Gnome ou Xfce

Haut
 

Les différentes rubriques :

Accueil Ordinateur Mandriva Tutoriels Initiation à la programmation Maison bioclimatique
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.