Adaptation française : Fanny Schertzer
Première adaptation française : Mathieu Pillard
Relecture de la version française : Alice Martin
Préparation de la publication de la v.f. : Jean-Philippe Guérard
2003-10-04
Historique des versions | ||
---|---|---|
Version 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 | ||
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 française d'une version préliminaire de ce document |
Résumé
Comment configurer la fonction d'économie d'énergie des processeurs Athlon, Duron et Athlon XP sur certains jeux de composants et cartes mères.
Table des matières
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.
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 à http://www.gnu.org/copyleft/fdl.html.
Linux est une marque déposée par Linus Torvalds.
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.
Vos commentaires sont essentiels à ce document. En particulier, de
nouvelles solutions adaptées aux derniers jeux de composants sont
nécessaires. J'ai également besoin de savoir si les différentes
solutions proposées fonctionnent ou non. Envoyez vos informations
complémentaires, commentaires et critiques en anglais à l'adresse
suivante : <daniel CHEZ nofftz POINT net>
.
Vous pouvez m'écrire en allemand ou en anglais.
La dernière version de ce guide pratique est toujours disponible sur http://www.daniel.nofftz.net/linux/.
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
+ → . Il vous faudra au moins activer les options suivantes : , etOu, pour le nouveau noyau 2.4.22 :
+ . Vous devez au moins activer l'option suivante : .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 Section 3.1, « Comment tester le bon fonctionnement »).
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 :
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)))
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)))
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)))
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)))
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)))
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)))
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)))
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)))
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.
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 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.
Procédure 1. 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
.
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.
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).
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.
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.
Procédure 2. 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).
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 PCI master read caching
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 Delayed Transaction
résout certains problèmes. Vous pouvez tenter le coup sur votre matériel.
Attention | |
---|---|
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 delayed transaction
: le son et la réception TV sautent
avec delayed transaction
: le son ne saute pas, les problèmes TV sont plus rares
avec delayed transcation
et master read caching
: 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, …
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 ».
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