Cpufrequtils permettent de modifier selon ses besoins la vitesse du processeur, outil en ligne de commande il contient deux utilitaires pour inspecter et configurer la fréquence du processeur via les interfaces noyau sysfs
et procfs
de CPUFreq.
Cela est particulièrement intéressant pour :
Il existe également TLP, une solution sans interface graphique qui travaille en tâche de fond et estime lui-même la façon idéale de gérer votre consommation d'énergie.
Il peut être utile d'apporter quelques modifications à votre BIOS si celui-ci le permet. Vérifiez que 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). Au besoin reportez-vous à la documentation de votre carte mère.
Il suffit d'installer le paquet cpufrequtils.
En premier lieu il peut être utile de connaître son matériel. Pour cela voici quelques commandes à cette fin.
Pour connaître les spécifications 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 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 Macpi-cpufreq
pour les Intel Pentium M/Core Duo/Core 2 Duoamd_freq_sensitivity
speedstep-lib
Pour voir les noms des modules :
ls -1 /lib/modules/$(uname -r)/kernel/drivers/cpufreq/
(à vérifier : )
Les stratégies de modulation de fréquence CPU sont appelées gouverneurs (gouvernor en anglais). Ils contrôlent le système et ajustent la fréquence du CPU en conséquence.
La liste des gouverneurs peut être obtenue 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 avant d'automatiser la procédure au démarrage. Pour commencer, charger les modules avec les commandes suivantes : comment connaître le nom du module??
sudo -s modprobe le_module_de_votre_processeur modprobe cpufreq_conservative modprobe cpufreq_ondemand modprobe cpufreq_powersave modprobe cpufreq_stats modprobe cpufreq_userspace
Le bon chemin qui mène à la gestion de vos processeurs est /sys/devices/system/cpu/cpuX/cpufreq/ avec X comme numéro du processeur.
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 processeur (en kHz) |
cpuinfo_max_freq | la fréquence maximum (en kHz) |
cpuinfo_min_freq | la fréquence minimum (en kHz) |
scaling_available_frequencies | les fréquences disponibles (en kHz) |
scaling_available_governors | les gouverneurs disponibles |
scaling_cur_freq | la fréquence actuelle (en kHz) |
scaling_driver | le pilote du processeur utilisé |
scaling_governor | le gouverneur en action |
scaling_max_freq | |
scaling_min_freq |
Ces fichiers sont lisibles (utilisez la commande cat nom_du_fichier
) et modifiables en mode superutilisateur:
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 les opérations précédents ont été concluantes,ouvrez le fichier /etc/modules avec les droits d'administration et copiez les lignes suivantes :
cpufreq_conservative cpufreq_ondemand cpufreq_powersave cpufreq_stats cpufreq_userspace LE_MODULE_CORRESPONDANT_A_VOTRE_PROCESSEUR
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_governors GOVERNOR="conservative" cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governors GOVERNOR="conservative"
Vérifiez bien que le chemin correspond et que le dossier cpu0 existe réellement. En outre, si vous avez un deuxième cœur, il faut aussi le mentionner ici. Ex: /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = LE_GOUVERNEUR_QUE_VOUS_VOULEZ
.
Il peut arriver que la fréquence maximale des processeurs soit mal reconnue, il faudra donc rajouter au fichier: /sys/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
.
Si votre fréquence minimale était mal reconnue, pensez à aussi la définir ici avec : /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq = FREQ_MINIMALE_DU_PROC
, etc.
Vous pouvez changer directement les fichiers /sys/devices/system/cpu/cpu*/cpufreq/{scaling_setspeed,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.Vérifiez que tout est paramétré comme vous l'entendez avec la commande :
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
L'initialisation se passe dans ce fichier : /etc/init.d/cpufrequtils
Pour changer les paramètres de manière permanente, il suffit d'éditer ce fichier. Par ex, vous pouvez changer le gouverneur qui est normalement par défaut :
GOVERNOR="ondemand"
par :
GOVERNOR="powersave"
En ligne de commande, ça donne :
sudo sed -i 's/^GOVERNOR=.*/GOVERNOR="powersave"/' /etc/init.d/cpufrequtils
—-
Contributeur : Vicks, Zaide, dolmen, L'Africain