software
5. softwareFaites-le vous-même
Contenu de cette section
Ce chapitre est spécifiquement destiné au contrôle des onduleurs bêtes.
Néammoins, une grande partie du processus est à peu près identique pour
les onduleurs intelligents.
La principale différence réside dans la manière dont le daemon (typiquement
powerd) de surveilance communique avec l'onduleur.
Avant de faire quoi que ce soit, je suggère l'algorithme suivant :
- parcourir ce document ;
- télécharger et étudier tous les paquetages qui semblent
adaptés spécifiquement à son onduleur ;
- télécharger et étudier les paquetages plus génériques.
Notes que certains d'entre eux sont en fait plus puissants, mieux documentés
et plus faciles d'emploi que leurs équivalents spécifiques ;
- si les choses ne se passent pas bien ou si certains points
restent obscurs, lire le présent document avec attention et bidouiller avec
ardeur et précaution...
5.1 Que faut-il faire (sommairement) ?
- brancher l'ordinateur sur l'onduleur ;
- connecter le port série de l'ordinateur à l'onduleur avec
un câble spécial ;
- lancer powerd (ou un de ses équivalents) sur l'ordinateur ;
- configurer init pour réaliser quelque chose de raisonnable
sur les événements powerfail et powerok (comme lancer un
shutdown et tuer tout shutdown en cours respectivement, par
exemple).
5.2 Comment est-ce supposé fonctionner ?
- Travail de l'onduleur
Lorsque le courant s'arrête, l'onduleur continue d'alimenter le PC et signale
l'arrêt du courant par bascule d'un relais ou d'un optocoupleur sur son port
de contrôle.
- Travail du câble
Le câble est conçu de telle manière que lorsque l'onduleur bascule ledit
relais, cela monte un signal de contrôle particulier de la ligne série
(typiquement DCD, détection de porteuse)
- Travail de powerd
Le daemon powerd contrôle le port série.
Il maintient levés/baissés les signaux de contrôle du port série dont
l'onduleur a besoin (typiquement DTR, Terminal de Données Prêt,
doit rester levé, et touts les signaux qui coupent l'onduleur
doivent être maintenus baissés).
Lorsque powerd voit le signal de contrôle de l'onduleur monter,
il écrit FAIL dans /etc/powerstatus et envoie un signal
SIGPWR au process init (les anciennes versions de powerd
et init écrivent dans /etc/powerfail ).
Lorsque le signal de contrôle redescend, il écrit OK dans
/etc/powerstatus et envoie un signal SIGPWR à init.
- Travail de init (en plus de tout ce qu'il fait par ailleurs)
Lorsqu'il reçoit un signal SIGPWR , il regarde dans /etc/powerstatus .
Si celui-ci contient FAIL , il exécute l'entrée powerfail du fichier
/etc/inittab .
S'il contient OK , il exécute l'entrée powerokwait de inittab .
5.3 Comment configurer tout ça ?
Ce qui suit présuppose que vous disposez d'un câble qui fonctionne correctement
avec powerd.
Si vous n'en êtes pas sûr, voyez la section :
Analyse de câbles et modification de powerd.c
pour toute information sur les câbles mal décrits et la reconfiguration de
powerd.
Les sections
Assignement des broches du port série
et
Correspondance entre ioctl et RS232
seront aussi utiles.
Si vous devez fabriquer un câble, voyez la section :
Comment réaliser un câble ?
pour les détails généraux, et la sous-section de :
Informations sur un certain nombre d'onduleurs
qui se rapporte à votre onduleur.
Cette dernière peut aussi contenir des informations sur les câbles fournis
par le constructeur.
Vous voudrez probablement parcourir toute la section
Informations sur un certain nombre d'onduleurs
car chaque section contient quelques détails supplémentaires généralement
utiles.
- Editez
/etc/inittab . Placez-y quelque chose de ce genre :
- Ecrivez les scripts
/etc/powerfailscript et
/etc/powerokscript pour arrêter le système après cinq minutes, ou
mener toute action appropriée, et tuer le shutdown en cours, respectivement.
En fonction de votre version de shutdown, cela sera, soit si trivial que vous
n'aurez même pas à écrire de script, soit un script d'une ligne bash,
quelque chose du genre :
et vous conserverez les scripts (au cas où cela ne vous arriverait pas dans un
parfait état, la première apostrophe sur la ligne ci-dessus est une quote inversée,
la seconde et la troisième sont des apostrophes, et la dernière est aussi une
quote inversée).
- Dites à init de relire le fichier
inittab avec :
- Editez rc.local pour lancer powerd lors du lancement.
Syntaxe :
Remplacez <ligne> par le port série modem sur lequel sera
connecté l'onduleur, comme dans : /dev/cua1 .
- Connectez le port série du PC à celui de l'onduleur.
NE BRANCHEZ PAS ENCORE LE PC SUR L'ONDULEUR.
- Branchez une lampe sur l'onduleur.
- Allumez l'onduleur et la lampe.
- Lancez powerd.
- Testez la configuration :
- Débranchez l'onduleur.
- Contrôlez que la lampe reste allumée,
- Contrôlez que
/etc/powerfailscript est lancé,
- Contrôlez que le shutdown est lancé.
- Rebranchez l'onduleur.
- Contrôlez que la lampe reste allumée,
- Contrôlez que
/etc/powerokscript est lancé,
- Contrôlez que
/etc/powerfailscript n'est pas lancé,
- Contrôlez que le shutdown est bien arrêté.
- Redébranchez l'onduleur. Laissez-le débranché et vérifiez que le
PC s'arrête proprement dans un délai correct.
- La Partie Délicate.
Une fois que tout semble correct, arrêtez le PC et branchez-le sur l'onduleur.
Lancez un script qui synchronise le disque dur toutes les secondes ou à peu
près (sync).
Simultanément, lancez un second script qui exécute un find sur votre disque
entier.
Le premier sert à rendre l'opération plus sûre, et le second, à consommer
le maximum de puissance.
Maintenant, tirez sur la prise de l'onduleur, vérifiez une fois de plus que
le PC est lancé, et attendez.
Assurez-vous que le PC s'arrête correctement avant que la batterie soit vide.
C'est dangereux, car si la batterie n'assure pas le délai d'arrêt du PC,
vous pouvez vous retrouver avec un système de fichiers corrompu, et
peut-être même la perte de tous vos fichiers.
Vous devriez probablement réaliser une sauvegarde complète avant ce test, et
positionner un délai de shutdown très court pour commencer.
Félicitations !
Vous avez maintenant un PC sous Linux protégé par onduleur qui
va s'arrêter proprement lors d'une coupure de courant !
5.4 Améliorations Utilisateur
- Bidouillez
powerd.c pour surveiller la ligne indiquant un faible
niveau de batterie.
Dans ce cas, exécutez un shutdown immediate ;
- Modifiez la procédure de shutdown, afin que lorsqu'elle
s'exécute dans des conditions de coupure de courant, elle éteigne l'onduleur
après avoir effectué tout le nécessaire.
Chapitre suivant,
Chapitre Précédent
Table des matières de ce chapitre,
Table des matières générale
Début du document,
Début de ce chapitre
[22 février 2002, JDNet]
|