Gérer la fréquence du processeur avec cpufrequtils


Diminuer la fréquence du processeur peut s'avérer très utile surtout pour les ordinateurs portables. En effet, cela permet d'une part de réduire la consommation de la batterie, mais aussi de faire en sorte que le processeur dégage moins de chaleur. De manière générale, cela influe sur la durée de vie du matériel.

Pour ce faire, nous allons utiliser l'utilitaire cpufrequtils et le processeur sera un Intel Core 2 Duo T5800.
Avant toute chose il est important de faire la différence entre Cpufreq qui est une fonctionnalité proposée par le noyau Linux et cpufrequtils qui est un outil permettant de l'exploiter.


Installation des paquets :


Nous allons installer les paquets nécessaires au bon fonctionnement de cette fonction, à savoir cpufrequtils, sysfsutils ainsi que le démon cpufreqd.
# aptitude install cpufrequtils sysfsutils cpufreqd

Choix du processeur :


Avant d'aller plus loin, une sélection s'impose parmi les divers types de processeurs existant et leurs modules. Vous devez donc connaître le type de processeur présent sur la machine et ceci se fait à l'aide de cette commande à taper en tant que simple utilisateur :
$ cat /proc/cpuinfo | grep 'model name'
model name : Intel(R) Core(TM)2 Duo CPU T5800 @ 2.00Ghz (coeur 1)
model name : Intel(R) Core(TM)2 Duo CPU T5800 @ 2.00Ghz (coeur 2)

Marque Architecture Module
AMD K6 powernow_k6
K7 powernow_k7
K8 powernow_k8
Intel Pentium 4 p4_clockmod
Pentium M speedstep_centrino
Core 2 Duo speedstep_centrino ou acpi_cpufreq
Autres Autres acpi_cpufreq

Dans cet exemple, nous devons utiliser acpi_cpufreq, car pour ce processeur le module speedstep_centrino ne fonctionne pas.
Nous allons donc charger celui-ci en tant qu'utilisateur root :
# modprobe acpi_cpufreq

Choix du gouverneur :


Il existe plusieurs "gouverneurs", c'est-à-dire plusieurs profils concernant la fréquence du processeur dont voici la liste :

Performance est le profil par défaut dans le noyau Linux le processeur tourne continuellement à sa fréquence max.

ondemand permet de diminuer lentement la fréquence du processeur si celui-ci n'est pas ou peu utilisé. Cette fréquence est rapidement augmentée si besoin est.

conservative fonctionne de la même manière que ondemand sauf que lorsque la fréquence est augmentée en cas de besoin, ce n'est pas fait brusquement mais par paliers.

powersave consiste à trouver la fréquence minimum du processeur et l'utiliser le plus possible, le processeur aura donc par défaut une fréquence basse qui augmentera en fonction des tâches qu'il doit réaliser.

userspace permet quant à lui de gérer manuellement la fréquence du processeur.

Ici, c'est le profil powersave qui nous intéresse. En effet, c'est sans doute le plus adapté pour un ordinateur portable, de plus il est bien plus sûr d'opter pour un profil augmentant la fréquence peu à peu. Nous allons donc charger ce gouverneur-là :
# modprobe cpufreq_powersave

Configuration et finalisation :


Il faut désormais configurer le processeur pour que celui-ci utilise le profil choisi auparavant. Pour cela, tapez ceci dans un interpréteur de commandes en tant que root :
# echo ondemand | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Si votre processeur possède deux coeurs voir plus (ce qui est fort probable aujourd'hui), refaites la même chose mais en changeant /cpu0/ par /cpu1/, ainsi de suite suivant le nombre de coeurs.

Il ne reste plus qu'à faire en sorte que les modules soient chargés automatiquement au démarrage du système :
# echo 'acpi-cpufreq' >> /etc/modules
# echo 'cpufreq_ondemand' >> /etc/modules
Pour vérifier que tout fonctionne bien il suffit de taper la commande cpufreq-info pour obtenir un résultat similaire :



NB : S'il s'agit d'un ordinateur portable, lorsque celui-ci est branché sur secteur, cpufreq choisi la fréquence la plus haute possible.