Depuis la version Hardy, si pratiquement tous les processeurs sur le marché sont supportés et gérés correctement, il arrive aussi que certains problèmes puissent surgir après une mise à jour majeure.
Pour suivre ces étapes, il faudra que vous adaptiez les chemins relatifs à chaque commande de cette page (ce tutoriel a été conçu avec un Intel Core Duo, mais aussi validé sur des processeurs AMD).
Depuis Hardy, les étapes de détermination des bons modules et l'étape de chargement sont inutiles, l'installation devrait s'en être occupée pour vous.
Par défaut le changement de fréquence du processeur ou du gouverneur n'est pas activé sous Ubuntu. L'usage de cette fonction étant en effet réservé à l'usage du super utilisateur (root), il demande une action volontaire de votre part.
Par ce biais, vous pouvez aussi tester votre installation en lançant la reconfiguration d'un paquet qui va activer la gestion avancé de votre processeur.
Ainsi vous pourrez ajouter à votre tableau de bord Gnome l'objet « Moniteur de fréquence CPU » qui vous indique en temps réel la fréquence sélectionnée.
Il est possible d'outrepasser cette mesure de sécurité pour activer ces fonctionnalités :
sudo dpkg-reconfigure gnome-applets
Répondez simplement « oui » (Entrée) et la modification de fréquence est immédiatement activée dans le moniteur : un menu apparaît en cliquant sur l'icône.
Si la configuration automatique n'a pas marché, nous allons tenter d'automatiser la gestion de la fréquence variable du ou des processeurs pour :
Enfin, lui indiquer dans le fichier de configuration de gérer les gouverneurs en fonction du type d'alimentation en cours (secteur ou batterie). Ouvrez ou créez avec les droits d'administration le fichier /etc/laptop-mode/conf.d/cpufreq.conf pour y insérer par exemple :
CONTROL_CPU_FREQUENCY=1 BATT_CPU_GOVERNOR=conservative LM_AC_CPU_GOVERNOR=ondemand NOLM_AC_CPU_GOVERNOR=ondemand
Vérifiez que dans votre BIOS, l'option Cool'n'Quiet pour AMD ou SpeedStep pour Intel est activée. Si votre BIOS ne propose pas cette option, elle est sûrement activée par défaut. En outre, certains Bios donnent un nom différent à ces options (L'Enhanced Intel SpeedStep Technologie™ ou EIST pour Intel). Jetez donc un coup d’œil si besoin dans la doc de votre carte mère.
Dans les cas de mises à jour qui ont tourné au cauchemar ou si votre matériel n'est pas configuré correctement (accès à certaines fonctions de gestions de fréquence).
Assurez-vous d'avoir installé les paquets suivants powernowd et cpufrequtils.
Tentons de reconfigurer ces paquets :
sudo dpkg-reconfigure powernowd cpufrequtils
Dans le cas où powernowd ne démarre pas (car « sysfs not found »), faites ceci sur les scripts loadcpufreq, cpufrequtils, sysfsutils et powenrnowd de init.d :
sed '/BEGIN/,/END/ ! d' fichier
et adapter avec update-rc.d (ne pas oublier de faire
update-rc.d -f remove
pour les 4 scripts). (ensuite cf man update-rc.d)
Insérer des liens dans les niveaux d'exécution par défaut quand B nécessite A update-rc.d script_A defaults 80 20 update-rc.d script_B defaults 90 10
Pour exemple j'ai fait un
update-rc.d loadcpufreq start 50 2 3 4 5 .
et respctivement 55, 60,65 pour cpufrequtils, sysfsutils et powenrnowd (avec 35 pour stop avec powernowd).
Commençons par désinstaller tous les programmes modulateurs de fréquence comme powernowd ou cpudyn.
sudo apt-get remove powernowd cpudyn cpufreqd cpufrequtils --purge
sudo apt-get install powernowd cpufrequtils
Si ça ne fonctionne pas désinstallez à nouveau ces même paquets
Pour connaître les specs de votre CPU, vous pouvez entrer la commande suivante:
cat /proc/cpuinfo
Si vous désirez juste le nom de votre ou vos CPU :
grep name /proc/cpuinfo
ou
sudo lshw -C cpu
ou encore
sudo dmidecode -t processor
Il existe plusieurs modules de modulation de fréquence selon les processeurs :
powernow-k7
pour les AMD Sempron/Athlon/MP (K7)powernow-k8
pour les AMD Duron/Sempron/Athlon/Phenom II/Opteron 64 (K8)p4-clockmod
pour les Intel Pentium 4 et pour les Intel Celeron Mspeedstep-centrino
pour les Intel Pentium M/Core Duo/Core 2 Duo (en 64 bits ou sous Edgy/Feisty/Gutsy le module n'existe plus et est remplacé par acpi-cpufreq
qui contient tout le support de la technologie Centrino)acpi-cpufreq
)…Les strategies de modulation de fréquence CPU sont appelé gouverneurs (gouvernor en anglais). Ils monitorent le système et ajustent la fréquence du CPU en conséquence.
La liste des gouverneurs peut etre obtenu avec la commande suivante :
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
Si plusieurs processeurs, remplacer le 0 par un autre numéro.
Les gouverneurs sont donc les suivant (du plus performant / plus énergivore au moins performant / plus économe) :
Le gouverneur userspace est particulier puisque c'est vous qui le programmerez :
Le but maintenant est de contrôler que tout fonctionne (bien) avant d'automatiser la procédure au démarrage. Pour commencer, charger les modules (vous aurez besoin des droits de superutilisateur):
sudo -s modprobe le_module_de_votre_processeur modprobe cpufreq_conservative modprobe cpufreq_ondemand modprobe cpufreq_powersave modprobe cpufreq_stats modprobe cpufreq_userspace
Repérez maintenant le(s) bon(s) chemin(s) qui mene(nt) à la gestion de vos processeurs:
/sys/devices/system/cpu/cpuX/cpufreq/
Avec X le numéro du processeur. Par exemple, dans le cas d'un Core Duo, X varie entre 0 et 1. Dans le cas d'un Pentium M classique, il n'y a qu'un dossier « cpu0 ».
Ces dossiers contiennent les fichiers de configuration du processeur. En voici la liste :
Fichier | À quoi sert-il ? |
---|---|
cpuinfo_cur_freq | la fréquence actuelle de votre proc |
cpuinfo_max_freq | la fréquence maximum |
cpuinfo_min_freq | la fréquence minimum |
scaling_available_frequencies | les fréquences disponibles |
scaling_available_governors | les gouverneurs disponibles |
scaling_cur_freq | |
scaling_driver | le pilote du processeur utilisé |
scaling_governor | le gouverneur en action |
scaling_max_freq | |
scaling_min_freq |
Ces fichiers sont visionnables (utilisez la commande cat nom_du_fichier
) et modifiables en mode superutilisateur. Après ce petit topo, nous allons maintenant vérifier que tout va fonctionner comme nous le désirons :
cat scaling_available_governors
: Nous donne les gouverneurs disponibles pour le processeur (répétez l'opération avec les autres proc si vous en avez)echo le_gouverneur_que_vous_avez_choisi > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
: vous permet de configurer la gestion de votre processeur avec le gouverneur que vous voulez (La commande echo
affiche du texte et le signe >
écrit l'output de la commande echo dans le fichier scaling_governor).cat cpuinfo_cur_freq, cat cpuinfo_max_freq, cat cpuinfo_min_freq
, etc.echo quelque_chose > fichier_de_config
pour paramétrer comme vous l'entendez (Si, et seulement si, quelque chose ne fonctionne pas, comme par exemple un processeur ne descendant pas en dessous de 2 MHz alors qu'il peut supporter 1 MHz…).Une fois que vos tests ont été concluants, entrez dans un terminal la commande suivante :
sudo nano /etc/modules
Dans le fichier ouvert, copiez les lignes suivantes :
cpufreq_conservative cpufreq_ondemand cpufreq_powersave cpufreq_stats cpufreq_userspace LE_MODULE_CORRESPONDANT_A_VOTRE_PROCESSEUR (voire partie 3)
Ici, le but est de pouvoir sauvegarder les paramètres que vous désirez concernant les modules. Ainsi, lorsque vous démarrerez l'ordinateur, les bons paramètres seront pris en considération. Pour réussir cela, installez le paquet sysfsutils. Ouvrez ensuite le fichier de configuration /etc/default/cpufrequtils. À l'intérieur de ce fichier, mettez :
# valid values: userspace conservative powersave ondemand performance cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors GOVERNOR="conservative" cat /sys/devices/system/cpu/cpu1/cpufreqscaling_available_governors GOVERNOR="conservative"
Remarques :
devices/system/cpu/cpu1/cpufreq/scaling_governor = LE_GOUVERNEUR_QUE_VOUS_VOULEZ
devices/system/cpu/cpu0/cpufreq/scaling_max_freq = FREQ_MAXIMALE_DE_MON_PROC
et devices/system/cpu/cpu1/cpufreq/scaling_max_freq = FREQ_MAXIMALE_DE_MON_PROC
devices/system/cpu/cpu0/cpufreq/scaling_min_freq = FREQ_MINIMALE_DU_PROC
, etc.
Vous pouvez bien sûr directement changer les fichiers /sys/devices/system/cpu/cpu*/cpufreq/{scaling_set_speed,governor}
. Néanmoins, le paquet cpufrequtils
vous simplifiera la tâche.
Le paquet cpufrequtils
vous donne accès à deux commandes :
cpufreq-info
pour afficher l'étatcpufreq-set
pour changer de féquence et/ou de gouverneur à la volée.Installez le paquet cpufrequtils.
Vérifiez que tout est paramétré comme vous l'entendez :
cpufreq-info
Exemples d'utilisation de cpufreq-set
:
sudo cpufreq-set -c 0 -g powersave
sudo cpufreq-set -c 1 -g performance -u 1600000.
man cpufreq-set
Et le must du must est de pouvoir ensuite gérer tout cela par interface graphique. Certains d'entre vous auront essayé de comprendre en haut pourquoi l'on indique pas le mode performance dans certains fichiers, mais rassurez-vous, cela est normal (le mode performance est géré automatiquement puisqu'il est déjà connu par l'os). Revenons-en donc à l'installation, il faut donc installer powersaved et kpowersave.
Lancez kpowersave, et là, magie, une icône apparait en bas à droite dans le systray, double cliquez vous aurez les informations, et clic droit vous aurez la possibilité de changer de profil de performance à la volée, puis de modifier les options de chaque profil avec aisance (temps de veille en mode économique, etc.).
Ensuite, le plus pratique serait que ce programme se lance automatiquement au démarrage. Pour les utilisateurs de KDE, il suffit d'ajouter un raccourci pointant vers kpowersave dans ~/.kde/Autostart/ ou si tout comme moi vous n'avez pas pu résister et installé KDE4 alors faites de même dans ~/.kde4/Autostart/
Et le tour est joué !