Ubuntu: températures, ventilateurs et s.m.a.r.t.

TempMonit

« 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.

Outils

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:

sensors exemple

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

Monitorage

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

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…

préférences des capteurs

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

Wikipedia: Computer cooling

important

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 Attributes

Berlios.de

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?

Wikipédia: S.M.A.R.T.

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