inform.gif (70 octets) ACPI

Avec Windows 98 une nouvelle technologie d'économie d'énergie a été développée, quelque peu amélioré avec Windows 2000 et Windows 98 SE ("Second Edition"). Appelée "Advanced Configuration and Power Interface" (ACPI), elle se présente comme un ensemble d'instructions au niveau du BIOS avec lesquelles Windows 98 communique directement. Autrement dit, cela suppose deux choses : que le BIOS de la carte mère supporte l'ACPI et que celui-ci soit installé sur Windows 98. On signalera que l'ACPI est une spécification élaborée par Toshiba, Intel et Microsoft.

ACPINous avons vu dans la première section qu'il existait un commutateur pour la ligne de commande d'installation de Windows afin de forcer la prise en charge de l'ACPI lors de l'installation ("/Pj" ou "/p j", avec un espace, mais ça revient au même). Cependant, l'installation de la prise en charge de l'ACPI demeure toujours possible une fois Windows installé.
Il faut tout d'abord s'assurer que la fonction ACPI du BIOS est activée (habituellement dans le menu POWER MANAGEMENT).
Ensuite de quoi, vous déclenchez l'assistant d'installation de nouveaux périphériques (Panneau de Configuration | Ajout de Nouveau Matériel). Validez les deux premières boîtes de dialogue puis indiquez à l'assistant que vous voulez choisir la liste du matériel à installer. Dans cette liste déroulante, sélectionnez "Périphériques Système" ce qui vous affiche une nouvelle liste telle que celle représentée ci-contre. Déroulez la liste jusqu'en bas et sélectionnez "Configuration avancée et interface Power (ACPI) BIOS". Validez et procédez à l'installation. Selon toute vraisemblance, le système devrait planter à ce stade (!) même sur des machines très récentes (du genre PII-450). Il ne faut cependant avoir aucune crainte car au redémarrage de la machine l'installation se poursuivra sans problème. Il faut compter une bonne dizaine de minutes pour installer l'ACPI car Windows va modifier tous les périphériques système et les affubler de l'attribut "ACPI" dans le Gestionnaire de périphériques : beaucoup de séances de détection et de redémarrage en perspective. Par ailleurs, un nouvel onglet apparaîtra dans le gestionnaire de l'alimentation (Panneau de Configuration | Gestion de l'alimentation) vous permettant de paramétrer les options de mise en sommeil de l'ordinateur.

Une troisième façon d'installer le support de l'ACPI sous Windows 98 est de lancer REGEDIT, de repérer la clef HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Detect et de créer une valeur chaîne nommée "ACPIOption" en lui attribuant la valeur "1". Ensuite, vous lancez une détection automatique (et non pas sélective comme plus haut) des périphériques. Pour le cas inverse, la désactivation de l'ACPI, il faut donner une valeur de "2" (et non pas de "0"). Selon le Kit de Ressources Techniques Windows 98 (MS Press, page 1650), les trois différentes valeurs de la clef ACPIOption sont :

Que votre système n'ait pas eu le support ACPI d'office ne signifie pas qu'il n'est pas capable de le supporter. Cela signifie seulement que votre système n'est pas dans la liste des systèmes ACPI établie par Microsoft et présente sur le CD de Windows 98.

Power_managementL'ACPI est en effet une version plus complète de l'APM (Advanced Power Management) même si elle ne la remplace pas totalement. Elle est en tout cas plus fiable que l'APM et plus complète. Dans le mode ACPI, il y a coopération complète avec l'OS qui reprend la main durant l'amorçage de la machine. Avec l'APM, c'est le Bios qui conserve ses propres valeurs de mise en veille (à la section POWER MANAGEMENT) et qui informe Windows dès qu'une minuterie atteint son terme. Windows se prépare alors mais redonne ensuite la main au Bios pour exécuter l'opération.

D'autre part, il y a pour ainsi dire autant d'interface de la gestion APM d'un Bios qu'il existe de Bios. Ils n'indiquent pas tous les mêmes valeurs, les mêmes paramètres offerts et il n'est toujours évident de se repérer. Enfin, le Bios déclenche une instruction de désactivation selon un minuteur. Il est donc incapable de dire qui est à l'origine de l'instruction et Windows doit tenter de satisfaire la demande même si l'ordinateur est en réalité occupé. Cela peut arriver par exemple pendant une séance de gravure de CD ROM : tout le monde sait qu'il vaut mieux désactiver l'écran de veille de Windows durant une session de gravure. Ca signifie que l'APM est incapable de détecter qu'en réalité le système est encore occupé alors qu'avec l'ACPI l'écran de veille ne se déclencherait pas puisqu'il est contrôlé par Windows.

Enfin, l'APM ne surveille que les périphériques implantés physiquement sur la carte mère. Autrement dit, les périphériques externes (y compris ceux sur les ports USB et IEEE 1394) ne sont pas détectés.

Gestion alimentationEn résumé, ceux qui souhaitent bénéficier de la gestion de l'alimentation devraient installer l'ACPI plutôt que de se contenter de l'APM. Dans cette hypothèse, il convient de désactiver toutes les options APM de gestion d'alimentation du Bios (en raison des interactions citées plus haut)  sauf bien sûr l'ACPI.

Une fois l'ACPI installée, quels en sont les principaux bénéfices ? Vous constaterez en accédant au gestionnaire d'alimentation (via le Panneau de Configuration) qu'un nouvel onglet est apparu, nommé "Mise en Veille Prolongée" (figure 1) alors que l'onglet "Paramètres Avancés" est enrichi d'une boîte de dialogue (figure 2) permettant de définir l'action à attribuer au bouton d'alimentation de votre machine. La mise en veille prolongée est ce que les anglais appellent l'hibernation. Dans ce cas de figure, vous n'avez plus qu'à appuyer sur votre bouton d'alimentation pour plonger votre PC dans un profond sommeil. Une nouvelle action sur ce bouton vous restituera Windows en quelques secondes. Il faut tout de même veiller à ce qu'il n'y ait pas de coupures de courant... Dans le mode hibernation (ou mise en veille prolongée), tout ce qui est en mémoire est écrit dans un fichier sur le disque dur puis la machine est éteinte. En appuyant de nouveau sur le bouton d'alimentation, l'image est chargée en mémoire et vous retrouvez Windows dans l'état où vous l'avez laissé. Imaginez par exemple que vous jouez à un jeu tel que Tom Raider et que vous devez vous absenter quelques heures : vous n'avez rien d'autre à faire qu'à couper l'alimentation en appuyant sur le bouton d'alimentation et à actionner de nouveau ce bouton à votre retour : Windows sera rechargé en une quinzaine de secondes et vous serez immédiatement plongé dans l'action du jeu à l'endroit précis où vous l'avez quitté.

Problèmes rencontrés avec l'ACPI : depuis la mise en ligne de cette section consacrée à l'ACPI, j'ai reçu pas mal de courrier d'internautes qui ne réussissaient pas leur "migration". Il faut bien avouer que pour le moment, ne ne sommes pas tous égaux devant l'ACPI. Les bios des cartes mère sont la principale cause de ces déboires (même si les fabricants prétendent le contraire), mais aussi les pilotes des différents périphériques que vous possédez (surtout les cartes graphiques). C'est la raison pour laquelle l'ACPI dépend tout autant de la partie logicielle que matérielle. Rien que pour les cartes mère ABIT BH6, trois mises à jour du Bios ont été livrées en à peine un mois. Personnellement, les configurations utilisées sont : PII-450 sur ABIT BH6 (Bios HN puis JJ) et P-II 300 sur ABIT BX6 (Bios HV puis JL), que ce soit avec Windows 98 ou Windows NT5 bêta 2 (US).

Il existe principalement deux types d'erreur : soit le système n'a pas changé d'un iota, soit il déclare utiliser l'ACPI (via le Gestionnaire de périphériques) mais le bouton de mise en hibernation n'apparaît pas. Dans la première hypothèse, le seul remède envisageable est de procéder à une réinstallation de Windows avec le commutateur /pj (ou "/p j" avec un espace). C'est en principe le moyen le plus efficace pour installer l'ACPI, la détection du matériel y est théoriquement plus rigoureuse (alors que le modification de la base de registre entraîne notamment une suppression des informations relatives aux périphériques plug and play qui n'est pas toujours efficace). J'ai toutefois relevé au moins deux comportements curieux de Windows lors d'une installation avec le commutateur /PJ. En premier lieu, il m'a été impossible d'installer correctement une imprimante récente (HP Deskjet 895 Cxi), le logiciel d'installation de cette imprimante me répondant que le port imprimante n'était pas bi-directionnel. Par ailleurs, l'image à l'écran ne cessait d'être rafraîchie alors que la fréquence était fixée à 85Mhz en 1024*768 (32 bits). Après formatage et réinstallation sans le commutateur, les périphériques en cause ont parfaitement fonctionné. Ensuite, l'ajout de l'ACPI via la modification de la Base de registre n'a provoqué aucune erreur. Par ailleurs, l'installation de l'imprimante sur une plate-forme déjà pourvue de l'ACPI (via la modification de la base de registre) n'a pas non plus provoqué d'erreur.

Pour la seconde hypothèse, il existe deux variantes : soit le bouton est véritablement hors d'usage, soit il est "implicitement" actif. Je m'explique : même non visible, les fonctions de l'ACPI peuvent parfaitement être opérationnelles. C'est en tout cas ce que j'ai pu constater sur la machine d'un correspondant qui possédait une ASUS P2B. Un site américain a constaté la même chose, pour la même carte (site de coolcomputing mais le lien direct a disparu courant 2002). Le seul moyen de vérifier... c'est d'enfoncer votre bouton d'alimentation : si tout se passe bien, le PC entrera en mode d'hibernation (création d'un fichier de sauvegarde sur le disque), sinon vous êtes bon pour un redémarrage avec une session de Scandisk...

Acpi sans l'option du BiosPar ailleurs, l'ACPI ne se limite à l'existence ou non du bouton de mise en vieille. J'ai réalisé le test sur une carte mère BH6. Après avoir installé l'ACPI, j'ai désactivé l'option ACPI dans le BIOS. Au redémarrage de la machine, le bouton de mise en veille avait effectivement disparu. C'est donc, qu'il est étroitement lié à la "qualité" du Bios. En revanche, le gestionnaire de périphériques n'avait pas beaucoup varié ainsi que le montre la première capture d'écran (l'option "bouton d'alimentation" fait défaut). On remarquera que les périphériques qui sont listé ne correspondent pas exactement à la liste qui est affichée lorsque l'on installe Windows pour la première fois (sans les options ACPI). Par exemple, le périphérique "Bios Plug-and-Play" se voit affublé d'un commentaire "résiste aux échecs" dont je n'ai pas su déterminer la pertinence. En outre, plusieurs articles de la KB de Microsoft précisent bien que la fonction hibernation ne sera disponible sous Windows 98 qu'à la condition que la carte mère supporte cette fonction (Q190715).

 

ACPI réactivéLa seconde capture d'écran montre le gestionnaire de périphériques une fois que l'ACPI est réactivé. Vous remarquerez les différences en rouge et notamment l'apparition d'une nouvelle IRQ occupée (tout en bas : "IRQ SCI utilisé par Bus ACPI").

 

Ceux d'entre vous qui ont de sérieuses connaissances en développement (langages ASL et AML entre autres...) pourront être intéressés pas les outils de tests fournis par Microsoft (site "OnNow" de Microsoft).

 

 

ACPI Steering IRQEnfin, il est clair que l'implémentation de l'ACPI repose pour beaucoup sur la table des IRQ. Il en utilise d'ailleurs une lui-même. On sait que depuis la version 95, Windows utilise une méthode appelée IRQ Steering afin de se servir des facilités du Plug and play pour éviter les conflits d'IRQ. Cette méthode employée par Windows fournit généralement le choix d'utiliser la table de routage à partir du Bios pour assigner dynamiquement les ressources et IRQ éventuellement partagées. Or, une fois installé l'ACPI énumère lui aussi sa propre table de routage et par défaut Windows se base sur elle (pour votre information, les outils de tests de Microsoft permettent de connaître précisément cette table). En conséquence, ceux d'entre vous qui seraient confrontés à des difficultés pour faire fonctionner l'ACPI seraient peut-être bien inspirés en réalisant des essais afin de modifier le mode d'obtention de la table de routage. Rien n'est garanti et je ne suis pas sûr qu'une nouvelle détection forcée de l'ACPI ne soit pas nécessaire. Elle sera de toute façon nécessairement réalisée du fait du changement de la table de routage encore que cette opération dépend en grand partie des éventuelles IRQ disponibles. A l'heure où nous utilisons de plus en plus de périphériques USB il n'est par ailleurs pas inutile d'aller directement dans le Bios et de désactiver par exemple les ports COM1 et COM2 s'ils ne vous servent plus à rien (c'est par exemple le cas si l'on utilise une souris USB et une carte ISDN).

Une dernière chose : la FAT32 n'est pas incompatible en soi avec l'ACPI. C'est le passage de la FAT16 à la FAT32 via le convertisseur de Windows 98 qui peut poser des problèmes. En effet, en mode hibernation, le système sauvegarde les informations du PC dans un fichier nommé par exemple HIBRN8.DAT (mais il existe d'autres noms). Ce fichier est effacé lors de la conversion en FAT32. Le Kit de Ressources Techniques précise : "To support Windows 98, systems that implement hibernate through the APM BIOS or through the Advanced Configuration and Power Interface (ACPI) S4/BIOS state must support FAT32." Les plus curieux d'entre vous m'objecteront que l'aide en ligne française de Windows dit ceci : "Si votre lecteur est de type FAT32, la mise en veille prolongée de votre ordinateur est impossible. Pour plus d'informations, cliquez sur Rubriques connexes", et quelques lignes plus loin on en revient à la mise en garde du passage en FAT32. Ce n'est pas la première fois qu'une version traduite de fichiers anglais aboutisse à dire exactement le contraire du fichier original.

ACPI.SYS (1er juillet 1999) : sur le site de Microsoft qui permet de télécharger des Kits de Test pour votre matériel, vous trouverez également un kit pour l'ACPI. Dans ce Kit, la version de acpi.sys et 4.10.2000 au lieu de 4.10.1998 ce qui signifie que cette version pourrait peut-être apporter une solution pour ceux qui éprouvent des difficultés avec l'ACPI sous Win98 (et ils sont nombreux). Il s'agit du fichier qui sera présent dans Windows 2000 (la version 5 de Windows NT) et également dans le Service pack 2 de Windows 98 (que certains appellent Windows 99). Il est vrai que Windows 2000 semble plus efficace dans la gestion de l'ACPI que la première version de Windows 98. La seconde version de Windows 98, soit Windows 98 SE possède un fichier ACPI.SYS ayant le numéro 4.10.2222. Toutefois, d'autres fichiers intervenant dans la gestion de l'ACPI, le mieux est encore de se procurer les pilotes des outils de tests. Ces fichiers pilotes et d'autres sont disponibles dans la quatrième section de cet article (ACPI - Erreurs).

Les quelques utilisateurs que j'ai pu rencontrer et qui avaient des difficultés avec le bouton d'hibernation ont résolu ce problème avec cette version de ACPI.SYS.

Quoiqu'il en soit, les outils de test de Microsoft sont ici, à la troisième section consacrée à l'ACPI.

(13 juin 2000) : J'ai recommencé les tests courant avril et mai 2000 avec Windows 98 SE sur deux cartes mères Abit VT6X4 et BF6. Configurations de base sans carte SCSI, avec des cartes graphiques GeForce et TnT 2, cartes son classiques du genre Fortissimo (Guillemot) ou SB Live 1024. L'ACPI fonctionne parfaitement en mode S1 et S3, ces dernières options étant disponibles via le Bios de la carte Abit VT6X4 qui est doté de chipsets VIA Apollo Pro 133A. Sur cette dernière carte, l'installation de Windows à partir d'un disque formaté (et sans le commutateur /PJ) a directement installé le mode ACPI. Il faut croire que les cartes mères fabriquées depuis 2000 intègrent mieux cette fonction.

Carte mère ASUS P2B (mai 2001) :

Un sympathique correspondant, Bernard, m'a fait part de ses soucis avec comme cause principale sa carte mère ASUSTEK P2B. Souhaitant ajouter un disque dur de plus grande capacité, il a du mettre à jour le Bios de sa carte mère (versions 1011 et 1012). Or, après cette opération, il s'est aperçu que Windows était fortement ralenti. Une tâche sous Windows occupait régulièrement 40 % de ses ressources au repos. Il a tenté la même expérience sur une autre carte mère sans rencontrer le problème. De nouveau sur la même carte mère, il a permuté son gros dique dur pa un plu spetit, et là non plus pas de problème ni de ralentissement. Il s'agit donc d'un cas spécifique, à ce jour, à l'ASUS P2B équipée d'un bios antérieur au 1011. Le fait que le nouveau disque dur était d'une capacité supérieure à 32 Go ne changeait rien : repartitionner et formater un ancien disque, mais "sous" le nouveau Bios reproduisait le problème.

Après de longues recherches, Bernard a abouti à la solution suivante : il faut lancer une installation de Windows avec le commutateur /p i. Littéralement, ce commutateur oblige l'installation de Windows à ne pas tenir compte du caractère Plug and Play du Bios de la machine. Mais alors, quel est le rapport avec l'ACPI ? Et bien, la prise en charge de l'ACPI, on le sait, peut être forcé à l'installation de Windows avec le commutateur /p j. Or, ce commutateur sert aussi à inverser ce qui a été fait avec le commutateur /p i. Concrètement, ce que l'on fait avec /p j, on le défait avec /p i. Une réinstallation apparaît nécessaire car les autres méthodes préconisées pour désactiver la gestion de l'ACPI sous Windows n'avaint pas donné de résultats (modification de la base de registre).


Mis en ligne le 26 janvier 1999 / Dernière modification : 06-05-2002