Ubuntu: températures, ventilateurs et s.m.a.r.t.
![]()
« La température est en général l’ennemi de l’électronique, à plus ou moins grande échelle. La température des composants dépendra directement de la chaleur dissipée du fait de leur rendement, de l’importance de la ventilation, de la qualité des contacts, des radiateurs et de la température de l’air qu’on aspire [...]. Plus l’alimentation a un rendement global élevé, moins la température devient un problème. Dans ce cas, on pourra même ventiler moins pour garder une température acceptable sans avoir des nuisances sonores élevées. La température a aussi une incidence sur la durée de vie des composants. Plus l’alimentation sera chaude, plus sa durée de vie et ses performances diminueront. » Influence de la température – Présence PC/Tom’s Hardware
Les utilisateur d’Ubuntu Linux disposent d’un ensemble d’applications permettant la surveillance des températures, le contrôle de la vitesse des ventilateurs, le refroidissement de certains processeurs AMD ainsi que la surveillance de l’état des disques utilisant la technologie S.M.A.R.T.
Nous allons passer en revue ce jeu complet d’utilitaires incluant l’installation, les caractéristiques et l’utilisation de ces applications. Mais tout d’abord il faut permettre à Ubuntu de détecter quelles sont les sondes ou capteurs et c’est la première étape pour installer nos application de ‘monitorage’ matériel.

Capteurs et sondes
Installer
Il faut tout d’abord installer le paquet lm-sensors via l’interface graphique ou en ligne de commande: Système / Administration / Gestionnaire de paquets Synaptic ou avec sudo apt-get install lm-sensors
Parmi les fichiers installés pour lm-sensors ceux-ci sont à remarquer:
Des exécutables du répertoire /sbin (system binaries):
/usr/sbin/fancontrol
/usr/sbin/pwmconfig
/usr/sbin/sensors-detect
Le programme sensors du répertoire /bin (binairies)
/usr/bin/sensors
Les shell scripts du répertoire /etc/init.d
/etc/init.d/lm-sensors permet de démarrer, arrêter ou redémarrer le programme /usr/bin/sensors
/etc/init.d/fancontrol permet de démarrer, arrêter, redémarrer le daemon /usr/sbin/fancontrol. Notez que le fichier de configuration est ici: /etc/fancontrol et la variable de l’identificateur de processus (pidfile) là: /var/run/fancontrol.pid
Détecter
Une fois le paquet lm-sensors installé la prochaine étape consiste à détecter quels sont les capteurs en utilisant la commande sudo sensors-detect qui va générer l’information sur les capteurs dans le fichier /etc/modules telle que celle-ci avec une sonde Winbond w83627hf :
# Generated by sensors-detect on Thu May 14 10:27:31 2008
# Chip drivers
w83627hf
Utiliser
Il suffit simplement d’entrer la commande sensors pour obtenir les résultats:

Nous verrons plus loin comment ‘monitorer’ ces données en permanence et avec une interface graphique mais pour le moment voyons ce que nous pouvons faire avec les ventilateurs.
Ventilateurs

Il est possible de configurer l’utilisation automatique des ventilateurs avec pwmconfig (pulse width modulation configuration.) Cette commande vous permet de déterminer interactivement la valeur des variables qui seront utilisées pour démarrer, arrêter, augmenter ou diminuer la vitesse des ventilateurs.
Notez: Convention d’écriture
Les messages ’système’ en italique, les entrées en gras et les commentaires entre {accolades en gras}:
Comme ceci: Messages - entrées - {commentaires}
Entrez la commande pwmconfig dans un terminal puis:
Première étape: pwmconfig recherche les capteurs modulation de largeur d’impulsions. Par exemple:
Found the following devices:
hwmon0/device is w83697hf
Found the following PWM controls:
hwmon0/device/pwm1
hwmon0/device/pwm2
Giving the fans some time to reach full speed…
Found the following fan sensors:
hwmon0/device/fan1_input current speed: 0 … skipping!
hwmon0/device/fan2_input current speed: 4326 RPM
Deuxième étape: pwmconfig vérifie s’il y a une corrélation entre un contrôle PWM et un ventilateur en essayant d’arrêter le ventilateur. En indiquant si c’est le cas ou non à pwmconfig, le programme pourra associer tel ‘PWM’ avec tel ventilateur. Par exemple:
{Ici pwmconfig vérifie si un des contrôles pwm est lié au ventilateur en essayant de l’arrêter }
Testing pwm control hwmon0/device/pwm1 …
hwmon0/device/fan2_input … speed was 4326 now 4326
no correlation
{Ici pwmconfig ne détecte pas un tel lien et vous demande de confirmer…}
No correlations were detected.
There is either no fan connected to the output of hwmon0/device/pwm1,
or the connected fan has no rpm-signal connected to one of the tested fan sensors.
Did you see/hear a fan stopping during the above test (n)? n
{Ici pwmconfig vérifie avec le prochain contrôle pwm …}
Testing pwm control hwmon0/device/pwm2 …
hwmon0/device/fan2_input … speed was 4326 now 0
It appears that fan hwmon0/device/fan2_input
is controlled by pwm hwmon0/device/pwm2
{Ici pwmconfig a trouvé la corrélation et la conserve dans le fichier de configuration /etc/fancontrol }
Troisième étape: il est possible d’aller plus loin en adaptant les variables de la configuration de pwmconfig telles que:
Température minimale détectée par la sonde: MINTEMP
Température maximale détectée par la sonde: MAXTEMP
Température minimale de démarrage du ventilateur: MINSTART
Température minimale d’arrêt du ventilateur: MINSTOP
Notez: Pour pouvoir utiliser pwmconfig, il faut d’abord arrêter fancontrol si celui-ci est démarré. Si c’est le cas pwmconfig vous le signale par un message tel que celui-ci:
File /var/run/fancontrol.pid exists.
his typically means that the fancontrol deamon is running.You should stop it before running pwmconfig. If you are certain that fancontrol is not running, then you can delete /var/run/fancontrol.pid manually.
Quatrième étape: Il suffit de lancer la commande suivante: fancontrol stop puis ensuite pwmconfig qui se présente comme ceci:
Select fan output to configure, or other action:
1) hwmon0/device/pwm2 3) Just quit 5) Show configuration
2) Change INTERVAL 4) Save and quit
select (1-n): 1
4.1 {Ici nous choisissons 1: le contrôle pwm correspondant à la sonde en usage. }
Devices:
hwmon0/device is w83697hf
Current temperature readings are as follows:
hwmon0/device/temp1_input 30
hwmon0/device/temp2_input 57
Select a temperature sensor as source for hwmon0/device/pwm2:
1) hwmon0/device/temp1_input
2) hwmon0/device/temp2_input
3) None (Do not affect this PWM output)
select (1-n): 2
4.2 {Ici nous choisissons 2: le contrôle pwm correspondant à la sonde active. }
Enter the low temperature (degree C)
below which the fan should spin at minimum speed (0): 38
4.3 {Ici nous choisissons 38: la + basse température sous laquelle la vitesse du ventilateur est minimale }
Enter the high temperature (degree C)
over which the fan should spin at maximum speed (60): 48
4.5 {Ici nous choisissons 48: la température au-dessus de laquelle la vitesse du ventilateur est maximale }
Enter the minimum PWM value (0-255)
at which the fan STARTS spinning (press t to test) (150): t
4.6 {Ici choisir t: pour essayer et entrer y quand la valeur pwm maximale = départ du ventilateur }
Now we increase the PWM value in 10-unit-steps.
Let the fan stop completely, then press return until the
fan starts spinning. Then enter ‘y’.
We will use this value +20 as the starting speed.
Setting hwmon0/device/pwm2 to 10…
Setting hwmon0/device/pwm2 to 20…
Setting hwmon0/device/pwm2 to 30…
Setting hwmon0/device/pwm2 to 40…
Setting hwmon0/device/pwm2 to 50…
Setting hwmon0/device/pwm2 to 60… y
OK, using 60
Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100): t
4.7 {Ici choisir t: pour essayer et entrer y quand la valeur pwm minimale = arrêt du ventilateur}
Now we decrease the PWM value in 10-unit-steps.
Let the fan reach full speed, then press return until the
fan stops spinning. Then enter ‘y’.
We will use this value +20 as the minimum speed.
Setting hwmon0/device/pwm2 to 245…
Setting hwmon0/device/pwm2 to 235…
Setting hwmon0/device/pwm2 to 225…
Setting hwmon0/device/pwm2 to 215…
Setting hwmon0/device/pwm2 to 205…
Setting hwmon0/device/pwm2 to 195…
Setting hwmon0/device/pwm2 to 185…
Setting hwmon0/device/pwm2 to 175…
Setting hwmon0/device/pwm2 to 165…
Setting hwmon0/device/pwm2 to 155…
Setting hwmon0/device/pwm2 to 145…
Setting hwmon0/device/pwm2 to 135…
Setting hwmon0/device/pwm2 to 125…
Setting hwmon0/device/pwm2 to 115…
Setting hwmon0/device/pwm2 to 105…
Setting hwmon0/device/pwm2 to 95…
Setting hwmon0/device/pwm2 to 85…
Setting hwmon0/device/pwm2 to 75…
Setting hwmon0/device/pwm2 to 65…
Setting hwmon0/device/pwm2 to 55…
Setting hwmon0/device/pwm2 to 45… y
OK, using 45
4.8 {Finalement entrez les valeurs limites minimale et maximale de pwm… }
Enter the PWM value (0-45) to use when the temperature
is below the low temperature limit (0): 24
Enter the PWM value (45-255) to use when the temperature
is over the high temperature limit (255): 255
Notez: ces tests peuvent être refaits et les valeurs modifiées pour ajuster la vitesse des ventilateurs aux particularités de votre matériel et de vos habitudes d’utilisation.
Notez: ne pas oublier de sauvegarder la configuration!
Select fan output to configure, or other action:
1) hwmon0/device/pwm2 3) Just quit 5) Show configuration
2) Change INTERVAL 4) Save and quit
select (1-n): 4

Disque: température
Installer
Il faut tout d’abord installer le paquet hddtemp via l’interface graphique ou en ligne de commande: Système / Administration / Gestionnaire de paquets Synaptic ou avec sudo apt-get install hddtemp
Utiliser
Parmi les fichiers installés on peut noter ceux-ci:
/usr/sbin/hddtemp, le fichier exécutable avec plusieurs options:
Utilisation: hddtemp [OPTIONS] DISQUE1 [DISQUE2]…
-d –daemon : lance hddtemp en mode démon TCP/IP (port 7634 par défaut).
-F –foreground : ne pas démoniser, rester au premier plan.
-n –numeric : affiche seulement la température.
etc.
Plus de détails avec la commande hddtemp -h
/etc/init.d/hddtemp, le shell script permettant d’utiliser l’exécutable pour l’arrêter, le démarrer ou le redémarrer tel que:
/etc/init.d/hddtemp start ou tout simplement hddtemp start…
Moniteur graphique
Ubuntu vous permet de ‘monitorer’ en permanence les températures, vitesse des ventilateurs et voltages dans le tableau de bord inférieur de Gnome avec Gnome sensors applet qui s’installe d’un simple clic droit + ajouter au tableau de bord… Le réglage se fait via les préférences de l’applet: clic droit sur le tableau de bord inférieur de Gnome / + Ajouter au tableau de bord / pour ajouter l’applet. Clic droit sur l’applet / Préférences pour ajuster le Moniteur matériel…

Refroidissement des processeurs
Athcool est un utilitaire activant/désactivant le mode économie d’énergie des processeurs Athlon/Duron. En activant le mode “économie d’énergie” vous réduisez la consommation électrique du processeur et de ce fait la température du CPU en mode “idle”.
Athcool se démarre ainsi: sudo athcool on
D’autre méthodes de refroidissement sont possibles. (logicielles ou matérielles veuillez vous référer à la documentation du processeur, aux articles de Wikipédia ou à des sites reconnus pour les informations sur le matériel informatique tel que Tom’s Hardware par exemple.)
Wikipédia: Méthodes de refroidissement pour ordinateur

Disque: S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology)
La technologie s.m.a.r.t. permet de surveiller l’état des disques pour détecter des défaillances prévisibles en se basant sur des données telles que le taux d’erreur de lecture, les secteur défectueux, la réallocation de ces secteurs, la température, etc.
Notez: que cette technologie ne permet pas de prévoir toutes les pannes, n’est pas implantée de la même façon par tous les fabricants et que les données ne sont pas fiables à 100%. On doit prendre les résultats des analyses comme une indication mais non la seule indication certaine de l’état correct ou non du disque… [Je vais revenir sur cette question dans un prochain article....]
Ces précisions étant données, voici les outils à votre disposition pour Ubuntu:
smartmontools
Ce paquet contient deux utilitaires (smartctl et smartd) pour contrôler et surveiller les données s.m.a.r.t.
Il s’installe soit via le gestionnaire de paquets synaptic ou en ligne de commande comme d’habitude et s’utilisent en ligne de commande. Par contre l’interface graphique de ces utilitaires est GsmartControl.
GSmartControl
GSmartControl est une interface graphique pour les utilitaires précédents qui donne les informations complètes sur les données s.m.a.r.t. et permet aussi de réaliser certains tests. Ce ‘GUI’ n’est pas (encore) disponible dans les dépôts d’Ubuntu Jaunty et doit être téléchargée sur le site du développeur.

GsmartControl pour Ubuntu Jaunty
Quelques Références:
What is S.M.A.R.T. and how can we use it to avoid data disaster?
What is PWM and how is it used to control fan speeds?
Dans un prochain article, je vais revenir sur la question du S.M.A.R.T., incluant une méthode de calcul pour évaluer les données brutes … Restez branchés!
À bientôt.
Posted in Comment faire, Linux / Unix / Ubuntu Tagged: AMD, Athcool, Capteurs, Déclencheur, Disque, Gnome sensor applet, GSmartControl, hddtemp, lm-sensors, Moniteur, Processeur, Pulse Width Modulation, PWM, pwmconfig, Refroidissement, S.M.A.R.T., sensors, sensors-detect, smartctl, smartmontools, Sondes, Température, Ubuntu, Ventilateurs, Voltage
