David Madore's WebLog: Suspend, ventilateurs, et petites crottes de ragondin

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]

↓Entry #2031 [older| permalink|newer] / ↓Entrée #2031 [précédente| permalien|suivante] ↓

(mardi)

Suspend, ventilateurs, et petites crottes de ragondin

Un des buts de toutes mes mésaventures (finalement heureusement résolues) avec mon DreamPlug (entrées précédentes ici, , et ) était de pouvoir éteindre mon PC la nuit ou, plus exactement, le mettre en hibernation, pour qu'il ne fasse plus de bruit.

Hibernation, ce qui peut désigner deux choses, le suspend-to-RAM où la machine n'est pas vraiment éteinte mais seulement arrêtée et maintient sa mémoire vivante, ou le suspend-to-disk où la machine est techniquement éteinte et a recopié sa mémoire sur disque de manière à pouvoir redémarrer dans le même état. Ces deux modes d'hibernation sont censés être supportés par Linux mais, comme d'habitude, le support peut être aléatoire selon le type de matériel, d'autant plus qu'on parle ici d'un PC fixe et que l'hibernation est surtout testée sur des portables. Mon poussinet, par exemple, n'arrive pas à faire marcher le suspend-to-RAM sur sa machine, probablement à cause d'un problème dans la gestion de la carte graphique (le suspend-to-disk, en revanche, marche bien).

Initialement, j'ai trouvé que j'avais de la chance : le suspend-to-RAM semblait marcher parfaitement (le plus gros problème observé étant que l'horloge système se décale d'environ une seconde lors de l'opération, ce qui fait négligé mais est facile à corriger en reprenant l'heure correcte sur le réseau) ; le suspend-to-disk, lui, perd le contrôle du disque externe, ce qui est pénible mais pas catastrophique (il suffit de couper ce disque avant hibernation et le remettre après : comme ce disque ne me sert qu'à stocker des choses comme des musiques ou des films, pas à faire tourner des programmes, ce n'est pas trop gravement gênant), et il y a aussi un petit couac mineur avec le clavier (il faut refaire le mapping, c'est un bug bizarre, mais ça ne fait qu'une commande à taper).

Indépendamment de ça, je trouvais que le ventilateur de mon PC était devenu plus bruyant que d'habitude au redémarrage de l'hibernation : soit que ce soit le contraste avec le silence précédent qui cause cette illusion, soit que le ventilateur vieillisse et que le fait de l'allumer et de l'éteindre le rende plus bruyant. C'est là que j'ai commencé à regarder de plus près les réglages du BIOS parce que, après tout, mon ventilateur est censé être un modèle super silencieux et on ne pouvait pas dire qu'il le fût. Or il existe, dans ces réglages, deux modes de contrôle des ventilateurs : un mode PWM, c'est-à-dire Pulse Width Modulation, où le ventilateur est contrôlé par un signal spécial, et un mode DC où le ventilateur est bêtement contrôlé par la tension appliquée ; apparemment mon ventilateur ne supporte pas le contrôle PWM, et changer vers le mode DC a eu un effet énorme : au lieu de tourner constamment à 2400tr/min, il s'est mis à descendre à 1800tr/min lorsque la machine ne fait rien, ce qui peut ne pas sembler une différence énorme, mais ce qui représente pourtant une diminution considérable du bruit. Presque au point que l'hibernation n'ait plus d'intérêt.

Presque. Mais c'est là que le bât blesse : lorsque je configure les ventilateurs en mode silencieux (et avec le bon type de contrôle), c'est effectivement très confortable pour les oreilles, mais si jamais je mets l'ordinateur en suspend-to-RAM, au redémarrage, les ventilateurs reprennent leur profil de base (bruyant). Autrement dit, je ne peux pas avoir à la fois le réglage relativement silencieux des ventilateurs et le silence total du suspend-to-RAM de temps en temps. Bon, je peux encore faire un suspend-to-disk si je veux le silence complet sans perdre le silence relatif au réveil, mais outre les problèmes mineurs avec le disque externe et avec le clavier que j'ai signalés ci-dessus, le suspend-to-disk est lent (parce que j'ai 8Go de RAM) : quand je fais de l'insomnie et que je veux regarder un truc ou deux sur Internet avant de me recoucher, je n'ai pas envie d'attendre plusieurs minutes que la machine daigne se réveiller.

Je ne sais même pas si je dois attribuer ça à un bug (de l'ACPI) de ma carte mère (une Asus P5W64 WS Pro) ou de Linux. La carte mère et le BIOS doivent bien avoir des bugs puisqu'un suspend-to-RAM non seulement met les ventilateurs en mode bruyant, mais meme ce mode persiste après un reboot, il faut une extinction complète pour revenir en mode silencieux. Sinon, ce qui est sûr, c'est que Linux devrait être capable de régler lui-même la vitesse des ventilos, mais qu'il n'y arrive pas : il devrait même y avoir deux approches possibles, l'une passant par l'ACPI (module noyau asus-atk0110) et l'autre en parlant directement au matériel (module noyau w83627ehf), et qu'aucune des deux ne marche, dans les deux cas c'est apparemment la faute d'Asus : d'un côté je crois comprendre qu'il manque des interfaces dans l'ACPI, de l'autre je crois comprendre qu'ils n'ont pas publié les specs d'une puce utilisée sur cette carte mère. (J'avoue que l'idée de garder secrètes les spécifications détaillées de quelque chose d'aussi high-tech qu'une puce qui contrôle des putains de ventilos, ça m'échappe un peu : pensez à me rappeler de ranter contre les compagnies qui ont la culture du secret, comme ça, pour des trucs totalement débiles. Mais peut-être que j'ai mal compris.) Ou peut-être que Linux ne sait gérer que les ventilateurs utilisant le contrôle PWM, mais je ne vois pas pourquoi le BIOS arriverait à faire mieux, alors.

On est censé pouvoir désassembler le code de l'ACPI avec des outils comme acpidump, acpixtract et iasl, mais c'est assez chinois et je ne sais pas si je veux passer des heures à essayer d'y comprendre quelque chose, d'autant plus que le problème n'est peut-être même pas là.

J'ai parfois un peu tendance à penser que c'est encore plus frustrant quand l'informatique marche à 99% que quand elle marche à 0%, parce qu'à 99% on a l'impression qu'on pourrait y être, on a la vision du monde parfait qui nous nargue et qui reste cependant inaccessible, alors qu'à 0% au moins les choses sont claires. Le chemin de l'enfer est pavé de petites crottes de ragondin.

↑Entry #2031 [older| permalink|newer] / ↑Entrée #2031 [précédente| permalien|suivante] ↑

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]