Petit guide sur l'conomie d'nergie d'un processeur Athlon

  Version franaise du Athlon Powersaving HOWTO

  Daniel Nofftz

   <daniel CHEZ nofftz POINT net>

   Adaptation franaise : Fanny Schertzer

   <fanny SOULIGN schertzer CHEZ yahoo POINT fr>

   Premire adaptation franaise : Mathieu Pillard

   <mat CHEZ nekeme POINT net>

   Relecture de la version franaise : Alice Martin

   <alice CHEZ ouebe POINT org>

   Prparation de la publication de la v.f. : Jean-Philippe Gurard

   <jean TIRET philippe POINT guerard CHEZ tigreraye POINT org>

   2003-10-04

   +------------------------------------------------------------------------+
   | Historique des versions                                                |
   |------------------------------------------------------------------------|
   | Version 1.1.0.fr.1.0  | 2004-01-07  | FS, initiales_du_relecteur, JPG  |
   |------------------------------------------------------------------------|
   | Adaptation franaise de la version publie, base sur le travail       |
   | prliminaire de Mathieu Pillard                                        |
   |------------------------------------------------------------------------|
   | Version 1.1.0         | 2003-10-04  | DN                               |
   |------------------------------------------------------------------------|
   | Des tas de nouveaux liens et informations                              |
   |------------------------------------------------------------------------|
   | Version 1.02          | 2003-08-29  | DN                               |
   |------------------------------------------------------------------------|
   | Nouveau site, nouvelle adresse mail -> mise  jour des liens !         |
   |------------------------------------------------------------------------|
   | Version 1.01          | 2003-07-09  | DN                               |
   |------------------------------------------------------------------------|
   | Correction de bug ! le bidouillage en ligne de commande du jeu de      |
   | composants AMD tait faux !                                            |
   |------------------------------------------------------------------------|
   | Version 0.08.fr.1.0   | 2003-01-23  | MP                               |
   |------------------------------------------------------------------------|
   | Adaptation franaise d'une version prliminaire de ce document         |
   +------------------------------------------------------------------------+

   Rsum

   Comment configurer la fonction d'conomie d'nergie des processeurs
   Athlon, Duron et Athlon XP sur certains jeux de composants et cartes
   mres.

   --------------------------------------------------------------------------

   Table des matires

   1. Introduction

                1.1. Bases du mode conomie d'nergie de l'Athlon

                1.2. Copyright et licence

                1.3. Disclaimer

                1.4. Commentaires

                1.5. Nouvelles versions de ce document

   2. Les diffrentes approches

                2.1. Le bidouillage en ligne de commande

                2.2. Le logiciel Athcool

                2.3. Mise  jour du BIOS

                2.4. Mon correctif noyau

                2.5. La solution LVCool

                2.6. Le programme FVCool

                2.7. conomie d'nergie AMD 760MP

   3. Quoi d'autre ?

                3.1. Comment tester le bon fonctionnement

                3.2. Bugs et problmes connus

                3.3.  faire

                3.4. Traductions

1. Introduction

  1.1. Bases du mode conomie d'nergie de l'Athlon

   Le signal HLT, utilis par la boucle idle normale du noyau linux ne permet
   pas d'conomie d'nergie significative sur les processeurs de la famille
   Athlon/Duron (dsign ci-aprs par  processeurs Athlon ). Pour obtenir
   une relle conomie d'nergie sur un processeur Athlon, vous devez passer
   le processeur en mode STPGNT (Stop Grant Mode). Dans ce mode, le
   processeur est dconnect du bus frontal (FSB) et peut couper certaines
   parties du processeur ainsi que rduire la vitesse d'horloge pour
   conomiser de l'nergie.

   Certaines cartes-mres rcentes supportent galement une fonction
   permettant de passer en STPGNT lorsqu'un signal HLT est mis.

  1.2. Copyright et licence

   Ce document, Petit guide sur l'conomie d'nergie du processeur Athlon,
   est sous copyright  2003 par Daniel Nofftz.

   Permission est donne de copier, redistribuer et/ou modifier ce document
   selon les termes de la licence de documentation libre GNU FDL, version 1.2
   ou tout autre version publie postrieurement par la Free Software
   Foundation. La licence peut tre consulte 
   http://www.gnu.org/copyleft/fdl.html
   [http://www.gnu.org/copyleft/fdl.html].

   Linux est une marque dpose par Linus Torvalds.

  1.3. Disclaimer

   L'auteur n'engage en aucune manire sa responsabilit vis--vis du contenu
   de ce document. Si vous dcidez d'en appliquer les concepts, exemples et
   informations, c'est  vos propres risques. Des erreurs et imprcisions
   peuvent subsister, ce qui pourrait endommager votre systme. Soyez
   prudent.

   Sauf mention contraire, tous les copyrights appartiennent  leurs
   propritaires respectifs. Aucun terme de ce document ne doit affecter la
   validit d'une quelconque marque dpose. Naming of particular products or
   brands should not be seen as endorsements.

  1.4. Commentaires

   Vos commentaires sont essentiels  ce document. En particulier, de
   nouvelles solutions adaptes aux derniers jeux de composants sont
   ncessaires. J'ai galement besoin de savoir si les diffrentes solutions
   proposes fonctionnent ou non. Envoyez vos informations complmentaires,
   commentaires et critiques en anglais  l'adresse suivante : <daniel CHEZ
   nofftz POINT net>.

   Vous pouvez m'crire en allemand ou en anglais.

  1.5. Nouvelles versions de ce document

   La dernire version de ce guide pratique est toujours disponible sur
   http://www.daniel.nofftz.net/linux/ [http://www.daniel.nofftz.net/linux/].

2. Les diffrentes approches

   Dans ce chapitre, j'exposerai diffrentes manires de parvenir au mme
   but : conomiser de l'nergie sur votre systme Athlon. L'approche que je
   recommande actuellement est d'employer le  bidouillage en ligne de
   commande , car le correctif noyau est obsolte et ne sera plus dvelopp
    l'avenir et le correctif  LVCool  ne supporte qu'une seule famille de
   jeux de composants. Le programme athcool semble bon, mais je ne l'ai pas
   test personnellement.

   Presque toutes les approches exposes vont configurer le bit   Disconnect
   enable when STPGNT detected  sur le pont nord de la carte-mre. Tout le
   reste du travail est fait par le sous-systme ACPI du noyau qui envoie un
   signal STPGNT au processeur lorsqu'il entre en mode acpi-c2 idle.

   Si votre noyau est compil sans support de l'ACPI, vous devez activer
   cette option dans le menu de configuration du noyau et recompiler votre
   nouveau noyau. Les option ACPI se trouvent sous General Setup+Power
   Management Setup -> ACPI. Il vous faudra au moins activer les options
   suivantes : ACPI Bus Manager, System et Processor.

   Ou, pour le nouveau noyau 2.4.22 : General Setup+ACPI Support. Vous devez
   au moins activer l'option suivante : Processor.

   Certains jeux de composants supportent galement un STPGNT si un signal
   HLT est dtect. Ces cartes mres ne ncessitent pas d'activer l'ACPI ! Je
   cherche d'ailleurs des informations sur les cartes-mres ncessitant ou
   non l'ACPI. Si vous l'avez l'avez test sur votre propre carte-mre, merci
   de m'envoyer un courrier lectronique (voir Section 3.1,  Comment tester
   le bon fonctionnement ).

  2.1. Le bidouillage en ligne de commande

   Pour utiliser le bidouillage en ligne de commande, vous devez normalement
   activer l'ACPI dans le noyau,  moins que ce ne soit dj le cas. Il n'est
   pas ncessaire de redmarrer pour activer l'conomie d'nergie. Vous
   pouvez l'activer/dsactiver depuis un terminal, grce aux commandes
   suivantes :

   sur les cartes KT133/133A, KX133, KL/KLE133, KM/KN133, ... : (ncessitent
   d'activer l'ACPI)

           activer : setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1
           -s 0:0.0 52) | 0x80)))

           dsactiver : setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci
           -H1 -s 0:0.0 52) &amp; 0x7f)))

   sur les cartes KT266/266A/333, KM266/333, ... :

           activer :

           setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           92) | 0x80)))

           setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           95) | 0x02)))

           dsactiver :

           setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           92) &amp; 0x7f)))

           setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           95) &amp; 0xfd)))

   sur la carte KT400 :

           activer :

           setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           D2) | 0x80)))

           setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           D5) | 0x02)))

           dsactiver :

           setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           D2) &amp; 0x7f)))

           setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           D5) &amp; 0xfd)))

   sur les cartes SIS730/733 : (exprimental ! merci de m'indiquer si cela
   fonctionne chez vous)

           activer : setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1
           -s 0:0.0 6B) | 0x01)))

           dsactiver : setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci
           -H1 -s 0:0.0 6B) &amp; 0xfe)))

   sur les cartes SIS735/740/745/746/755 :

           activer : setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1
           -s 0:0.0 6A) | 0x0001)))

           dsactiver : setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci
           -H1 -s 0:0.0 6A) &amp; 0xfffe)))

   sur Nforce :

           activer :

           setpci -v -H1 -s 0:0.0 E7=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           E7) | 0x06)))

           setpci -v -H1 -s 0:0.0 6D=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           6D) | 0x80)))

           dsactiver :

           setpci -v -H1 -s 0:0.0 E4=$(printf %x $((0x$(setpci -H1 -s 0:0.0
           E7) &amp 0xf9)))

   sur Nforce2 : (fonctionne sans activer l'acpi)

           activer : setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1
           -s 0:0.0 6F) | 0x10)))

           dsactiver : setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci
           -H1 -s 0:0.0 6F) &amp; 0xef)))

   sur AMD751 et AMD760/761 :(works without acpi enabled)

           activer : setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s
           0:0.0 62) | 0x06)))

           dsactiver : setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1
           -s 0:0.0 62) &amp; 0xf9)))

  2.2. Le logiciel Athcool

   Athcool est un petit logiciel qui effectue les mmes tches que les
   commandes setpci ci-dessus. Il supporte les mmes cartes-mres et dtecte
   votre jeu de composants pour passer les bonnes commandes  la carte et
   activer l'conomie d'nergie.

   Vous pouvez en savoir plus (et le tlcharger)ici
   [http://members.jcom.home.ne.jp/jacobi/linux/softwares.html].

  2.3. Mise  jour du BIOS

   Sur certaines cartes rcentes, le fabriquant fournit une mise  jour du
   BIOS qui configure les bits ncessaires sur le jeu de composants de la
   carte (ou vous laisse choisir dans le menu de configuration du BIOS si la
   fonction doit tre active ou non). Rfrez-vous au site web du fabriquant
   de votre carte-mre pour voir si une telle mise  jour du BIOS est
   disponible.

  2.4. Mon correctif noyau

   Mon correctif est bas sur un autre correctif (de Jan Niehusmann) que j'ai
   trouv sur Newsnet. Je l'ai modifi pour qu'il supporte galement le jeu
   de composants KT266/266A. D'ailleurs, mon correctif fait le mme travail
   que le bidouillage en ligne de commande, la seule diffrence est que cela
   se passe  prsent  l'intrieur du noyau. C'est pour cela que je
   conseille la ligne de commande, car c'est vraiment simple  raliser.

   Procdure 1. Bon... maintenant, voil comment appliquer le correctif tape
   par tape :

    1. D'abord, vous devez tlcharger le correctif :

       Correctif pour le noyau 2.4.17
       [http://www.daniel.nofftz.net/linux/amd_cool.diff]

       Correctif pour le noyau 2.4.21
       [http://www.daniel.nofftz.net/linux/amd_cool.linux-2.4.21.diff] (merci
        Thomas Reinhardt d'avoir ralis le portage pour le noyau 2.4.21)

    2. Connectez-vous en root

    3. cd /usr/src

    4. Appliquez le correctif : cat $chemin-du-correctif/amd_cool.diff |
       patch -p0

    5. cd linux

    6. Compilez votre nouveau noyau.

    7. Redmarrez en prenant soin d'entrer amd_disconnect=yes au prompt de
       dmarrage. C'est ncessaire  cause de bugs connu du processeur Athlon
       qui peuvent causer des problmes sur plusieurs cartes. Testez le
       correctif. S'il fonctionne, ajoutez l'option amd_disconnect=yes au
       fichier /etc/lilo.conf.

  2.5. La solution LVCool

   LVCool est un portage du programme Windows VCool
   [http://vcool.occludo.net/]. Il ne supporte que les jeux de composants
   KT133/133A et KX133. Je ne peux pas fournir de support sur LVCool. Vous
   pouvez le tlcharger ici [http://vcool.occludo.net/VC_Linux.html]. Cette
   solution ncessite de compiler l'ACPI dans le noyau.

  2.6. Le programme FVCool

   Vous trouverez ici
   [http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/download.html] un
   autre programme d'conomie d'nergie qui supporte plusieurs jeux de
   composants. Je ne l'ai pas test mais j'ai entendu dire qu'il fonctionne.
   Essayez... Un logiciel supplmentaire est fourni en mme temps pour
   employer les senseurs de certaines cartes-mres (comme le paquetage
   lm-sensors).

  2.7. conomie d'nergie AMD 760MP

   Il existe un module du noyau qui active l'conomie d'nergie du jeu de
   composants multiprocesseur 760MP. Vous pouvez le trouver ici
   [http://www.muru.com/linux/amd-smp-idle/]. Je ne sais pas s'il fonctionne
   bien, mais j'ai reu au moins un mail d'une personne me confirmant son bon
   fonctionnement chez lui. Essayez.

3. Quoi d'autre ?

  3.1. Comment tester le bon fonctionnement

   Bon... Vous appliquez l'une des mthodes dcrites et vous voulez vrifier
   si a marche. Il y a deux moyens de le savoir :

   Si vous avez un ventilateur contrl par la temprature sur votre
   CPU-Heatsink, vous pouvez mesurer le niveau de bruit produit par le
   ventilateur. Aprs quelques minutes, donnez du travail  votre processeur.

   Procdure 2. En gnral, je m'y prends comme suit :

    1. je me connecte en root

    2. cd /usr/src/linux

    3. et je donne du travail  la machine : while true; do make clean; make
       bzImage; done

   Aprs 20 ou 30 secondes, vous devriez remarquer que le ventilateur produit
   davantage de bruit en mme temps que sa vitesse augmente. N'oubliez pas de
   couper la boucle while aprs quelque minutes avec la commande STRG-C.

   La mme procdure que ci-dessus fonctionne avec un programme de monitoring
   de la temprature du processeur (comme lm-sensors ou xmbmon).

  3.2. Bugs et problmes connus

   Les processeurs Athlon/Duron sont affects de deux bugs connus. Ils
   portent les numros 11 et 14 dans le AMD Athlon Processor Revision Guide.
   Il semble que l'Athlon XP est sensiblement moins affect par ces bugs.
   Donc, si vous avez un Athlon XP, vous faites partie des veinards (comme
   moi).

   Les bugs peuvent causer les problmes suivants :

     * sauts durant la lecture de musique

     * sauts et ralentissements durant la lecture de video

     * ralentissement des transferts du disque dur ultra-DMA

     * arrts du systme

     * problmes avec l'USB

     * quelqu'un a parl d'un grsillement important

   Une mise  jour du BIOS peut parfois rsoudre des problmes (en
   particulier concernant le bug 11, qui pourrait tre caus par le BIOS).
   Mais d'aprs ce que j'en sais, cela ne concerne que peu de cartes.

   Pour la carte Asus A7V133-C, il est connu que l'option du BIOS PCI master
   read caching rsout la plupart des problmes lorsqu'elle est active.
   Vrifiez si votre BIOS dispose d'une telle fonction.

   Il est galement connu que sur certaines cartes, l'option du BIOS Delayed
   Transaction rsout certains problmes. Vous pouvez tenter le coup sur
   votre matriel.

   [1][Attention] Attention
                  Sur les cartes quipe de KT133A, cela pourrait activer le
                  fameux bug VIA-Southbridge !

   Vu sur Newsnet  propos de la carte Asus A7V :

     * sans delayed transaction : le son et la rception TV sautent

     * avec delayed transaction : le son ne saute pas, les problmes TV sont
       plus rares

     * avec delayed transcation et master read caching : presque pas de
       problme TV, le son ne saute pas du tout

   Il y a d'autres sources de problmes :

     * le branchement n'est pas assez fort pour grer les fluctuations de la
       consommation d'nergie de la carte-mre et du processeur

     * certains rgulateurs de voltage sur la carte-mre peuvent avoir le
       mme problme que le branchement ;)

     * vous avez une K7S5A (d'aprs ce que j'en sais, cette carte peut
       vraiment devenir problmatique lorsque l'conomie d'nergie est
       active)

   Si vous rencontrez des problmes mineurs en activant l'conomie d'nergie,
   mais dsirez tout de mme l'utiliser, un bon compromis est de l'activer
   par dfaut et de le dsactiver lorsque vous voulez couter de la musique,
   regarder la tlvision, ...

  3.3.  faire

   Ajouter des jeux de composants et davantage d'informations dans ce
   document.

   ventuellement, une liste de cartes-mres avec des coches  fonctionne 
   et  ne fonctionne pas .

  3.4. Traductions

   Il existe des traductions dans diffrentes langues. Pour l'instant, la
   plupart sont des traduction de la version pre-XML de ce document.

   Espagnol
   [http://perso.wanadoo.es/cmayo/docs/Athlon-Powersaving-HOWTO-es.html] par
   Carlos Mayo

   Franais
   [http://www.daniel.nofftz.net/linux/Athlon-Powersaving-HOWTO-fr.html] par
   Mathieu Pillard

   Italien
   [http://www.daniel.nofftz.net/linux/Athlon-Powersaving-HOWTO-it.html] par
   Maurizio Fantino

   Allemand (traduction partielle) [http://www.linuxwiki.de/PowersavingHowto]
   par Fabian Mohren

   Japonais
   [http://www.linux.or.jp/JF/JFdocs/Athlon-Powersaving-HOWTO/index.html] par
   Seiji Kaneko

