Petit guide sur l'économie d'énergie d'un processeur Athlon
Version française du Athlon Powersaving
HOWTO
Daniel
Nofftz
daniel CHEZ nofftz POINT net
Fanny
Schertzer
fanny SOULIGNÉ schertzer CHEZ yahoo POINT fr
Adaptation française
Mathieu
Pillard
mat CHEZ nekeme POINT net
Première adaptation française
Alice
Martin
alice CHEZ ouebe POINT org
Relecture de la version française
Jean-Philippe
Guérard
jean TIRET philippe POINT guerard CHEZ tigreraye POINT org
Préparation de la publication de la v.f.
2003-10-04
1.1.0.fr.1.0
2004-01-07
FS, initiales_du_relecteur, JPG
Adaptation française de la version publiée, basée sur le
travail préliminaire de Mathieu Pillard
1.1.0
2003-10-04
DN
Des tas de nouveaux liens et informations
1.02
2003-08-29
DN
Nouveau site, nouvelle adresse mail -> mise à jour des liens !
1.01
2003-07-09
DN
Correction de bug ! le bidouillage en ligne de commande du jeu de composants AMD était faux !
0.08.fr.1.0
2003-01-23
MP
Adaptation française d'une version préliminaire de ce
document
Comment configurer la fonction d'économie d'énergie des
processeurs Athlon, Duron et Athlon XP sur certains jeux
de composants et cartes mères.
Introduction
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 (désigné ci-après par « processeurs
Athlon »). Pour obtenir une réelle économie d'énergie sur un
processeur Athlon, vous devez passer le processeur en mode STPGNT
(Stop Grant Mode). Dans ce mode, le processeur est déconnecté du bus
frontal (FSB) et peut couper certaines parties du processeur ainsi
que réduire la vitesse d'horloge pour économiser de l'énergie.
Certaines cartes-mères récentes supportent également une fonction permettant de passer en STPGNT lorsqu'un signal
HLT est émis.
Copyright et licence
Ce document, Petit guide sur l'économie d'énergie du processeur Athlon,
est sous copyright © 2003 par Daniel Nofftz.
Permission est donnée 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 publiée postérieurement par
la Free Software Foundation.
La licence peut être consultée à
.
Linux est une marque déposée par Linus Torvalds.
Disclaimer
L'auteur n'engage en aucune manière sa responsabilité vis-à-vis du contenu de ce document.
Si vous décidez d'en appliquer les concepts, exemples et informations, c'est à vos propres risques.
Des erreurs et imprécisions peuvent subsister, ce qui pourrait endommager votre système. Soyez prudent.
Sauf mention contraire, tous les copyrights appartiennent à leurs propriétaires respectifs.
Aucun terme de ce document ne doit affecter la validité d'une quelconque marque déposée.
Naming of particular products or
brands should not be seen as endorsements.
Nouvelles versions de ce document
La dernière version de ce guide pratique est toujours disponible sur
.
Les différentes approches
Dans ce chapitre, j'exposerai différentes manières de parvenir au
même but : économiser de l'énergie sur votre système Athlon.
L'approche que je recommande actuellement est d'employer le
bidouillage en ligne de commande
, car le correctif
noyau est obsolète et ne sera plus développé à 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 exposées vont configurer le bit
Disconnect enable when STPGNT detected
sur le pont nord de la carte-mère.
Tout le reste du travail est fait par le sous-système 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 SetupACPI.
Il vous faudra au moins activer les options suivantes : ACPI Bus Manager,
System et Processor.
Ou, pour le nouveau noyau 2.4.22 : General SetupACPI Support.
Vous devez au moins activer l'option suivante : Processor.
Certains jeux de composants supportent également un STPGNT si un
signal HLT est détecté. Ces cartes mères ne nécessitent pas
d'activer l'ACPI ! Je cherche d'ailleurs des informations sur
les cartes-mères nécessitant ou non l'ACPI. Si vous l'avez l'avez
testé sur votre propre carte-mère, merci de m'envoyer un courrier
électronique (voir ).
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
déjà le cas. Il n'est pas nécessaire de redémarrer pour activer
l'économie d'énergie. Vous pouvez l'activer/désactiver depuis un
terminal, grâce aux commandes suivantes :
sur les cartes KT133/133A, KX133, KL/KLE133, KM/KN133, … : (nécessitent d'activer l'ACPI)
activer : setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) | 0x80)))
désactiver : setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) & 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)))
désactiver :
setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0 92) & 0x7f)))
setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0 95) & 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)))
désactiver :
setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D2) & 0x7f)))
setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D5) & 0xfd)))
sur les cartes SIS730/733 : (expérimental ! 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)))
désactiver : setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6B) & 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)))
désactiver : setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) & 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)))
désactiver :
setpci -v -H1 -s 0:0.0 E4=$(printf %x $((0x$(setpci -H1 -s 0:0.0 E7) & 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)))
désactiver : setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6F) & 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)))
désactiver : setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s 0:0.0 62) & 0xf9)))
Le logiciel Athcool
Athcool est un petit logiciel qui effectue les mêmes tâches
que les commandes setpci ci-dessus. Il supporte les mêmes cartes-mères
et détecte votre jeu de composants pour passer les bonnes commandes à la carte et activer l'économie d'énergie.
Vous pouvez en savoir plus (et le télécharger)ici.
Mise à jour du BIOS
Sur certaines cartes récentes, le fabriquant fournit une mise à
jour du BIOS qui configure les bits nécessaires sur le jeu de
composants de la carte (ou vous laisse choisir dans le menu de
configuration du BIOS si la fonction doit être activée ou non).
Référez-vous au site web du fabriquant de votre carte-mère pour
voir si une telle mise à jour du BIOS est disponible.
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 même travail que le bidouillage en ligne de
commande, la seule différence est que cela se passe à présent à
l'intérieur du noyau. C'est pour cela que je conseille la ligne de
commande, car c'est vraiment simple à réaliser.
Bon… maintenant, voilà comment appliquer le correctif étape par étape :
D'abord, vous devez télécharger le correctif :
Correctif pour le noyau 2.4.17
Correctif pour le noyau 2.4.21 (merci à Thomas Reinhardt d'avoir réalisé le portage pour le noyau 2.4.21)
Connectez-vous en root
cd /usr/src
Appliquez le correctif :
cat $chemin-du-correctif/amd_cool.diff | patch -p0
cd linux
Compilez votre nouveau noyau.
Redémarrez en prenant soin d'entrer amd_disconnect=yes au prompt de démarrage.
C'est nécessaire à cause de bugs connu du processeur Athlon qui peuvent causer des problèmes sur plusieurs cartes.
Testez le correctif. S'il fonctionne, ajoutez l'option amd_disconnect=yes au fichier /etc/lilo.conf.
La solution LVCool
LVCool est un portage du programme Windows
VCool. Il ne supporte que les jeux de composants KT133/133A et KX133. Je ne peux
pas fournir de support sur LVCool. Vous pouvez le télécharger
ici. Cette solution nécessite de compiler l'ACPI dans le noyau.
Le programme FVCool
Vous trouverez ici
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 supplémentaire est fourni en même temps pour employer les senseurs
de certaines cartes-mères (comme le paquetage lm-sensors).
É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.
Je ne sais pas s'il fonctionne bien, mais j'ai reçu au moins un mail d'une personne me confirmant
son bon fonctionnement chez lui. Essayez.
Quoi d'autre ?
Comment tester le bon fonctionnement
Bon… Vous appliquez l'une des méthodes décrites et vous voulez vérifier si ça marche.
Il y a deux moyens de le savoir :
Si vous avez un ventilateur contrôlé par la température sur votre CPU-Heatsink, vous pouvez mesurer le niveau de bruit
produit par le ventilateur. Après quelques minutes, donnez du travail à votre processeur.
En général, je m'y prends comme suit :
je me connecte en root
cd /usr/src/linux
et je donne du travail à la machine : while true; do make clean; make bzImage; done
Après 20 ou 30 secondes, vous devriez remarquer que le ventilateur produit davantage de bruit en même temps que sa vitesse augmente.
N'oubliez pas de couper la boucle while après quelque minutes avec la commande STRG-C.
La même procédure que ci-dessus fonctionne avec un programme de monitoring de la température du processeur
(comme lm-sensors ou xmbmon).
Bugs et problèmes connus
Les processeurs Athlon/Duron sont affectés de deux bugs connus. Ils portent les numéros
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 problèmes suivants :
sauts durant la lecture de musique
sauts et ralentissements durant la lecture de video
ralentissement des transferts du disque dur ultra-DMA
arrêts du système
problèmes avec l'USB
quelqu'un a parlé d'un grésillement important
Une mise à jour du BIOS peut parfois résoudre des problèmes (en particulier concernant
le bug 11, qui pourrait être causé par le BIOS). Mais d'après 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
résout la plupart des problèmes lorsqu'elle est activée. Vérifiez si votre BIOS dispose d'une telle fonction.
Il est également connu que sur certaines cartes, l'option du BIOS
résout certains problèmes. Vous pouvez tenter le coup sur votre matériel.
Sur les cartes équipée de KT133A, cela pourrait activer le fameux
bug VIA-Southbridge !
Vu sur Newsnet à propos de la carte Asus A7V :
sans : le son et la réception TV sautent
avec : le son ne saute pas, les problèmes TV sont plus rares
avec et : presque pas de problème
TV, le son ne saute pas du tout
Il y a d'autres sources de problèmes :
le branchement n'est pas assez fort pour gérer les fluctuations de la consommation d'énergie
de la carte-mère et du processeur
certains régulateurs de voltage sur la carte-mère peuvent
avoir le même problème que le branchement ;)
vous avez une K7S5A (d'après ce que j'en sais, cette carte peut vraiment devenir problèmatique lorsque
l'économie d'énergie est activée)
Si vous rencontrez des problèmes mineurs en activant l'économie
d'énergie, mais désirez tout de même l'utiliser, un bon compromis
est de l'activer par défaut et de le désactiver lorsque vous voulez
écouter de la musique, regarder la télévision, …
À faire
Ajouter des jeux de composants et davantage d'informations dans ce document.
Éventuellement, une liste de cartes-mères avec des coches fonctionne
et ne fonctionne pas
.
Traductions
Il existe des traductions dans différentes langues. Pour l'instant, la plupart sont des traduction de la version pre-XML de ce document.
Espagnol par Carlos Mayo
Français par Mathieu Pillard
Italien par Maurizio Fantino
Allemand (traduction partielle) par Fabian Mohren
Japonais par Seiji Kaneko