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.