Tutoriel : FanCtl, contrôlez le ventilateur du DNS-323

Tutoriel : FanCtl, contrôlez le ventilateur du DNS-323

FanCtl : Améliorez la gestion du ventilateur

Grâce à Fun-Plug, il est possible d'outrepasser le système de gestion du ventilateur d'origine. L'utilisateur peut ainsi modifier l'algorithme de contrôle du ventilateur pour réduire le bruit, optimiser la consommation et réduire son usure.

Non compatible Hardware rev C1

Veillez à bien vérifier la version hardware de votre DNS-323 !

Sommaire :

1. Remplacement du logiciel de contrôle du ventilateur par défaut

1.1. Le contrôle standard du ventilateur

Par défaut, le ventilateur est commandé par un programme intégré dans le NAS appelé fancontrol. Ce programme ajuste la vitesse du ventilateur en fonction de la température mesurée à l'intérieur du boîtier.

Conceptronic fournit également deux autres utilitaires utiles au contrôle du ventilateur:

  • temperature – affiche la température actuelle (sur certains appareils en degrés Fahrenheit et sur les autres en degrés Celsius) en entrant la commande "temperature g 0"
  • fanspeed – affiche la vitesse actuelle du ventilateur lorsque vous entrez "fanspeed g".
    Il peut également définir une nouvelle vitesse du ventilateur en tapant la commande "fanspeed w VotreVitesse" (où VotreVitesse est la vitesse désirée en rotations par minute).

1.2. Utilisation de scripts shell au lieu d'utiliser les binaires

Il existe différentes façons de contrôler le ventilateur. Dans tous les tout cas, le nouveau logiciel doit arrêter ("kill") le programme fancontrol d'origine fournit par Conceptronic avant d'en prendre le contrôle.

Une approche consiste à utiliser les programmes temperature et fanspeed dans un simple script bash qui va répétitivement mesurer la température et ajuster la vitesse du ventilateur en conséquence. Un tel script peut même choisir de désactiver le ventilateur entièrement en dessous d'une certaine température. Mais une approche fondée sur les scripts, comparé à un programme C compilé, utilise plus de (précieuse) mémoire et cycles CPU.

Heureusement Fonz, l'auteur de fun_plug, a écrit un petit programme efficace nommé fanctl. Il contrôle le ventilateur, sans compter sur les programmes temperature et fanspeed, sans utiliser de bash shell. Cette efficacité est appréciable grâce à ce programme tant que le NAS est sous tension. Par défaut, fanctl ajuste la vitesse du ventilateur toutes les 30 secondes si nécessaire.

2. Installation

2.1. Installation de fanctl

Uli a créé un package pour simplifier l'installation de fanctl.

Dans ce tutoriel, nous présumons que le fun_plug est déjà installé sur le NAS et que vous avez synchronisé le repository de Uli (voir ici pour les instructions sur la façon de le faire). Ensuite, installez le package (voir les instructions détaillées ici) :

Code:
funpkg -i /ffp/pkg/additional/ffp-misc/fanctl-*.tgz
cp /ffp/etc/examples/fanctl.conf /ffp/etc/fanctl.conf

L'étape finale copie les paramètres de configuration par défaut dans le répertoire approprié.

2.2. Activation de fanctl

Assurez-vous qu'aucun autre script excepté celui de Fancontroller original n'est actif! Vous pouvez le vérifier par:

Code:
ps aux|grep fan

Cela devrait afficher le résultat suivant (les numéros d'identification de processus peuvent varier):

Code:
1431 root fancontrol
12620 root grep fan

Ce sont tous les processus en cours (ps) qui sont filtrés (grep) si elles comprennent le terme fan dans leur nom. Malgré les apparences, aux n'est pas une commande ou un nom, mais 3 options distinctes pour ps sans le "-" cette fois.

Maintenant, testez la premier lancement du script fanctl en tapant la commande suivante sur la ligne de commande:

Code:
sh /ffp/start/fanctl.sh start

Après avoir entré la commande ci-dessus, le ventilateur tourne avec un bruit audible pendant quelques secondes. Vous pouvez maintenant vérifier le fonctionnement correcte de fanctl:

Code:
ps aux|grep fan

Cela devrait afficher le résultat suivant (encore une fois les numéros de PID peut varier):

Code:
12628 root /ffp/sbin/fanctl /ffp/etc/fanctl.conf
12635 root grep fan

Cela montre que le processus fancontrol a disparu et a été remplacé par le processus fanctl (avec son fichier de configuration).

En dernière étape, vous pouvez activer le deamon de façon permanente:

Code:
chmod a+x /ffp/start/fanctl.sh

3. Comment fonctionne fanctl

Pour comprendre ou ajuster le comportement de fanctl, vous pouvez consulter son fichier de configuration /ffp/etc/fanctl.conf. Si vous utilisez l'éditeur nano:

Code:
nano /ffp/etc/fanctl.conf

Dans des circonstances normales les valeurs par défaut devrait être suffisantes.

3.1. Attention!

Ne pas modifier ces valeurs tant que vous n'en avez pas compris toutes les conséquences.
Des disques durs surchauffé peuvent entraîner la perte de données ou une panne prématurée de disque dur. Donc, si vous voulez changer les paramètres dans le fichier de configuration, veuillez s'il vous plaît étudier attentivement les documents suivants et tester avec soin toutes modifications apportées.

3.2. Le graphique

Le graphique (par Uli) explique comment le logiciel ajuste la vitesse du ventilateur. Il tient compte des paramètres par défaut (que vous ne changerez que si cela est nécessaire tout en sachant ce que vous faites, n'est-ce pas?). La température ambiante d'une pièce est généralement d'environ 20 degrés Celsius (68 degrés Fahrenheit).

Graphique fanctl

Lorsque vous démarrez le NAS, mais utilisez intensément les disques, la température devrait augmenter de quelques degrés, mais restent bien en dessous de 40 degrés. Dans ce cas, le ventilateur suit la ligne bleue: il reste éteint car il n'y a pas de réel besoin de déjà refroidir le NAS. Toutefois, lorsque vous utilisez beaucoup les disques, la température peut s'élever au-dessus de 40 degrés. Surtout si la température ambiante est également élevé. Cela entraîne la mise en marche du ventilateur. La vitesse du ventilateur (en tr/min) suit la pente incurvée (partie d'une courbe parabolique). La vitesse maximale du ventilateur est limitée par défaut à 6300 tr/min (appelé pwm_hi). Tout comme le logiciel d'origine, il y a un seuil de sécurité: au-dessus de 51 degrés, le NAS s'éteint. Ceci-ci ne devrait normalement pas se produire sauf cas exceptionnel (comme un disque endommagé, ou utiliser le NAS dans un sauna).

Supposons maintenant que le NAS est devenu relativement chaud (par exemple 45 degrés Celsius), mais que les disques entrent maintenant dans une période sans accès. Cela provoque l'arrêt automatique des moteurs des disques, ce qui réduit la production de chaleur et provoque une baisse de température. Toutes les 30 secondes, une baisse de la température entraînera le ralentissement du ventilateur. Lorsque la température descend en dessous de 40 degrés (appelé temp_hi), la vitesse du ventilateur se stabilise pendant un certain temps. Lorsque la température chute ensuite en dessous de 37 degrés (appelé temp_lo), le ventilateur s'éteint.

Notez que la mise en marche et l'arrêt du ventilateur survient à des températures différentes. C'est ce qu'on appelle (hystérésis). Cela réduit le risque qu'à une certaine température le ventilateur fonctionne de façon répétée pendant 30 secondes, puis s'éteint pendant 30 secondes, puis redémarrre à nouveau.

3.3. Températures

Si vous souhaitez modifier la température (par exemple si le ventilateur se s'éteint jamais complètement (NAS trop chaud) ou si vous voulez refroidir à un certain niveau), il existe différentes valeurs dans le script de configuration à utiliser. Toutes les valeurs doivent être mises en Celsius*1000 ! Par exemple, 40°C serait 40000

Il ya quatre valeurs différentes:

  • temp_stop : Si la température descend en dessous de cette valeur, le ventilateur est réglé à la vitesse qui est configuré en tant que variable pwm_stop (normalement, ce sera zéro et arrête donc le ventilateur). Si la température monte à cette température, rien ne se passe (hystérésis). Par défaut 37 degrés Celsius.
  • temp_lo : Si la température monte au-dessus de cette température, pwm_start sera mis pendant une seconde (démarre le ventilateur) Après cela, la vitesse du ventilateur sera réglée quelque part entre pwm_lo et pwm_hi - en fonction de la température mesurée. Si la température descend en dessous de cette température, le ventilateur tourne à pwm_lo (hystérésis). Par défaut 40 degrés Celsius.
  • temp_hi : Si la température s'élève au-dessus de cette valeur, pwm_hi est défini comme vitesse du ventilateur. Par défaut 50 degrés Celsius.
  • temp_crit : Si la température s'élève au-dessus de cette valeur, le NAS est arrêté afin de prévenir tout dommage. Par défaut 51 degrés Celsius. Soyez très prudent avec cette valeur.

3.4. Vitesse du ventilateur

Si vous voulez changer la vitesse du ventilateur (par exemple, si vous pensez que le ventilateur tourne trop lentement ou si vous voulez que le ventilateur tourne au ralenti sans s'arrêter), il existe différentes valeurs dans le script de configuration pour cela.

  • pwm_stop : C'est la vitesse qui est définie sous temp_stop. Si la valeur est à zéro, le ventilateur s'arrêtera. Il ne serait pas une bonne idée d'utiliser vraiment des valeurs basses ici (difficile de faire fonctionner le ventilateur en douceur à ces vitesses).
  • pwm_start : C'est la vitesse qui est réglé pour une seconde si pwm_stop a été programmée et que la température s'élève au-dessus temp_lo nouveau. (Par défaut: 3200 tr/min)
  • pwm_lo : C'est la vitesse qui est fixé à temp_lo. (Par défaut: 2700 tr/min)
  • pwm_hi : C'est la vitesse qui est fixé à temp_hi. (Par défaut: 6300 tr/min)

Entre pwm_lo et pwm_hi la vitesse du ventilateur sera interpolée selon la formule suivante:

Code:
RPM = (pwm_hi - pwm_lo) * (temp - temp_lo) / (temp_hi - temp_lo) * (temp - temp_lo) / (temp_hi - temp_lo) + pwm_lo

3.5. Modification de fanctl.conf

Encore une fois, éditer fanctl.conf devrait être fait avec soin. Éditez seulement le fichier ne provoquera pas l'utilisation immédiate des nouvelles valeurs parce que le programme lit le fichier qu'une fois à son lancement. Un moyen sûr de recharger une modification /ffp/etc/fanctl.conf fichier est de simplement redémarrer le NAS. Lorsque le programme est lancé, il chargera le fichier modifié /ffp/etc/fanctl.conf. Une autre façon consiste à utiliser

Code:
cd /ffp/start
sh fanctl.sh status
sh fanctl.sh restart
sh fanctl.sh status

Le sh fanctl.sh retart arrête et redémarre le ventilateur. En fait, entre l'arrêt et le redémarrage, fancontrol est exécuté brièvement.

4. Notes

4.1. Un NAS dans une pièce chaude

Selon le graphique, si vous mettez le NAS dans un environnement très chaud (par exemple 38 degrés Celsius), le ventilateur se met en marche - même si les disques durs ne sont pas utilisés. Activer le ventilateur n'aidera pas à réduire la température de l'appareil: cela n'approchera la température de l'appareil qu'à la température ambiante. Actuellement le logiciel ne peut pas distinguer cette condition (mais cela s'applique évidemment aussi à la valeur par défaut fancontrol logiciel qui n'arrête jamais le ventilateur).

4.2. Arrêt en cas de surchauffe

Dans des conditions exceptionnelles, le NAS s'arrêtera s'il approche temp_crit (typiquement 51 degrés Celsius). Quand il s'arrête, il va créer un fichier nommé OVERHEAT dans le répertoire racine. En consultant ce fichier et sa création ou son heure de modification, vous pouvez obtenir une confirmation de la cause de l'arrêt.

Voir le fichier /ffp/etc/fanctl.conf pour plus de détails sur son fonctionnement.

4.3. Loguer la température

D'un échange par e-mail avec fonz (cela n'a pas été testé):

PeterH> D'autres fonctionnalités seraient plus plaisantes(ex. journal de la température?).
C'est assez facile. Il suffit de modifier /ffp/start/fanctl.sh et remplacer

Code:
/ffp/sbin/fanctl $fanctl_config >/dev/null 2>/dev/null </dev/null &

avec

Code:
/ffp/sbin/fanctl $fanctl_config >/mnt/HD_a2/fan.log 2>&1 </dev/null &

Vous pouvez tracer de sympathiques graphiques à partir du fichier log en utilisant gnuplot

Code:
gnuplot> set timefmt "%Y-%m-%d %H:%M:%S"
gnuplot> set xdata time
gnuplot> plot '< grep fan /path/to/fan.log' u 1:4 w st, '' u 1:8 w st

4.4. Désinstallation

Désinstallez fanctl en utilisant

Code:
funpkg -r /ffp/pkg/additional/fanctl-2-1.tgz

et redémarrez votre NAS, vous trouverez en utilisant

Code:
ps aux|grep fan

que l'application original fancontrol réapparaît automatiquement. C'est parce que fanctl est activé via un script (/ffp/start/fanctl.sh) qui arrête le processus par défaut fancontrol avant de lancer le programme fanctl.

Cela implique que désinstaller funplug et redémarrer ramènera le comportement du ventilateur à son fonctionnement par défaut et les mécanismes par défaut fournis par Conceptronic.

Source (en Anglais) : NAS-Tweaks.net

Les commentaires sont clos.