Le royaume de Eric Buist >> Informatique >> Configuration informatique >> Le Nightmare, second du Salvator
Me contacter Plan du site
<< Disque dur qui claque Ventilateur qui ne tourne pas suffisamment Tests de performance >>

Ventilateur qui ne tourne pas suffisamment

Depuis mai 2008, mon portable a commencé à mener la vie dure à son disque dur. Je le soupçonne en effet de m'en avoir fait sauter deux et peut-être endommagé un troisième, sans le mettre en panne pour le moment. Voir la page sur mon bogue de disque dur pour plus d'informations. Dans la section précédente, j'ai expliqué comment j'ai tenté de stabiliser les choses en contrôlant les parquages de tête et les accès répétés au disque par le système. Par contre, je ressentais toujours de l'inquiétude après avoir lu un relevé de sudo smartctl -a /dev/sda indiquant que le taux d'erreurs de lecture sur le disque était élevé. Je sentais qu'il y avait possibilité d'une troisième panne! Cette inquiétude était d'autant plus grande que l'approche d'une conférence à Miami (départ le 6 décembre 2008) à l'occasion de laquelle ce portable me serait bien utile.

Je jonglai longuement, cherchant en vain une explication scientifique à ces pannes répétées. L'hypothèse du courant électrique fut vite écartée, car sous celle-ci, il y aurait arrêt du moteur par court-circuit et plus rien ne fonctionnerait! Tout ce qu'il me restait, c'était le fait que la température du disque était constamment à 45 degrés tandis qu'elle est à 31 degrés sur mon ordinateur de bureau. L'étroitesse du boîtier me semblait la seule explication à ce phénomène, mais je ne savais pas comment faire descendre la température.

C'est samedi soir, 29 novembre 2008, que j'eus un flash. Depuis quelques temps, me rendis-je compte, le ventilateur de mon portable était beaucoup moins actif qu'auparavant. Par exemple, je pouvais démarrer deux processus yes à fond la caisse et voir la température de mon processeur friser les 60 degrés sans aucune réaction du ventilateur! Par chance, la machine ne plantait pas, mais la haute température du processeur pouvait faire grimper celle du disque dur dans un boîtier étroit. Ce constat intégré, mon inquiétude s'amplifia, car il fallait à première vue désassembler tout l'ordinateur pour tenter un plus qu'hasardeux nettoyage du ventilateur, le remplacement de la pâte thermoconductrice unissant processeur et dissipateur de chaleur puis peut-être, au final, le remplacement intégral du dissipateur et du ventilateur. Cette drenière opération ne me semblait pas aisée vu la spécificité des pièces de portables. Je ne pourrais pas procéder à de telles manipulations avant mon retour de Miami, raisonnai-je, car elles exposeraient mon portable à des risques substantiels de dommages sérieux et permanents! Mais il faudrait le faire, un jour, oui il faudrait le faire.

Mais avant de tenter cela, pensai-je, je pouvais essayer de savoir si un meilleur fonctionnement du ventilateur pouvait réellement réduire la température du disque dur. Pour ce faire, songeai-je, il me faudrait un outil permettant de jouer avec la vitesse du ventilateur. Mais je me doutais que de tels outils seraient difficiles à trouver, encore à cause de la spécificité des portables. Au mieux, me dis-je, je trouverais quelque chose pour Windows seulement. Cette solution me semblait donc peu prometteuse, mais je l'explorai tout de même puisque cela ne coûtait rien et ne risquait pas d'endommager la machine, si je procédais de façon intelligente bien évidemment. Cela signifiait en particulier de ne pas laisser le programme faire fluctuer la vitesse du ventilateur ou l'arrêter complètement même si la température grimpait sans fin.

Ma première trouvaille fut i8kfanGUI, un petit logiciel permettant justement de contrôler la vitesse du ventilateur... sous Windows. Comme je pensais... Heureusement, j'eus la patience de parcourir la page et je trouvai un lien me menant à un équivalent pour Linux: dellfand. Je le testai et il fonctionna!

Je dus d'abord télécharger l'archive et la décompacter. Je compilai l'outil avec make sans aucune difficulté puis tentai un appel de base: sudo ./dellfand. J'obtins un relevé de la vitesse du ventilateur, la température du processeur, etc. Le ventilateur était inactif. Je démarrai deux processus pour faire grimper la température à 60 degrés, fis un nouveau relevé et validai qu'effectivement, le ventilateur ne tournait pas. Enfin, je démarrai le programme en mode démon avec des paramètres précis et finis par trouver des réglages permettant un comportement stable. Pendant plusieurs minutes, la température du disque stabilisa à 38 degrés puis grimpai à 42 degrés sans redescendre. C'est tout de même déjà mieux que 45.

Pour faire en sorte que dellfand démarre automatiquement, j'ai copié l'exécutable dellfand dans /usr/sbin, etc.default.dellfand dans /etc/default/dellfand et etc.init.d.dellfand dans /etc/init.d/dellfand. J'ai modifié le second fichier pour que son contenu soit le suivant:

# This is a configuration file for /etc/init.d/dellfand

# Interval (seconds) between polls of the CPU temperature and
# adjustment of the fan speed accordingly
SLEEP_TIME="10"

# When the fan is on, at what temparature or below to turn it off
FAN_OFF="35"

# When the fan is off, at what temparature to turn it to the low
# speed setting
FAN_LOW="45"

# When the fan is on low, at what temparature to turn it to the
# higher setting
FAN_HIGH="65"

Enfin, j'ai créé un lien symbolique vers /etc/init.d/dellfand dans /etc/rc3.d et /etc/rc5.d pour que l'utilitaire soit mis en marche au démarrage de la machine.

Il se peut que le BIOS de ma machine, ne connaissant pas cet étrange disque dur avec lequel je l'ai mis en contact, n'en tienne aucun compte dans sa régulation thermique. Ainsi, même si sa température monte au-delà de 45 ou même de 50 degrés, aucune réaction ne se produit. Mais dellfand me permit d'ajuster les seuils de température de façon à ce que le ventilateur tourne plus souvent, pour contrôler la température du processeur et indirectement affecter celle du disque dur.

Un raffinement possible à cette solution serait de modifier dellfand pour qu'il tienne compte de la température du disque dur dans son calcul. Mais ceci risque de demander du temps et je ne suis pas certain que ça en vaille vraiment le coup.

Une autre possibilité est que ce soit Ubuntu 8.04 et 8.10 qui aient fait quelque chose de bizarre affectant le contrôle du ventilateur appliqué par le BIOS. J'ai en effet lu plusieurs sujets de forums parlant de surchauffe avec Ubuntu 8.04 qui ne se manifestaient pas dans Ubuntu 7.10. Le logiciel dellfand semblait aider à arranger les choses de ce côté-là.