  Le HOWTO des onduleurs (UPS)
  Harvey  J.  Stein, hjstein@math.huji.ac.il, Berger Financial
  Research, Ltd.
  v1.3, 16 April 1995 adaptation francaise B.Choppy, 8 juillet
  1995

  Ce  document  vous  aidera  a  connecter  un  onduleur sur une machine
  Linux...  si vous avez de la chance ...  Copyright (c) 1994 by  Harvey
  J. Stein. Vous pouvez utiliser ce document comme vous l'entendez, tant
  qu'il reste intact. En particulier, cette note (ainsi que les  contri-
  butions  ci-dessous) doit rester intouchee.  NdT : La traduction de ce
  HOWTO est particulierement delicate, en ce qu'il integre  de  nombreux
  messages  echanges  sur InterNet reproduits a l'identique.  Autant que
  possible, on aura conserve la presentation generale de  ces  messages,
  ainsi  que  leur  signification (y compris parfois une tournure inele-
  gante ou un mot-a-mot desagreable),  au  detriment  de  la  traduction
  integrale et de l'utilisation de tournures plus courantes en Francais.
  Dans certains cas, une partie en anglais est conservee, en particulier
  dans  les en-tetes de messages. Les noms de signaux et broches de con-
  nexion ont ete traduits, mais  leur  abreviation  originelle  conserve
  (par  exemple,  DCD  :  Detection de porteuse). Une copie de la notice
  originale de copyright est conservee.  Le traducteur prie les lecteurs
  de  bien  vouloir  l'excuser  de ces desagrements.  (version originale
  conservee volontairement) You may use this document as you see fit, as
  long as it remains intact.  In particular, this notice (along with the
  contributions below) must remain untouched.

  11..  IInnttrroodduuccttiioonn

  Ce HOWTO concerne la connexion d'un onduleur sur  un  PC  sous  Linux.
  L'idee  est  d'etablir  la  connexion  de telle sorte que Linux puisse
  s'arreter proprement lorsque  le  courant  s'arrete.  Dans  une  large
  mesure, ce document est redondant, car toutes les informations de base
  sont contenues dans la page de man powerd  livree  avec  le  paquetage
  SysVinit.  De  tout  facon,  il  semble  qu'il y ait periodiquement de
  nombreuses discussions sur le Net concernant la connexion de PC  Linux
  a  des  onduleurs  (et  les  versions  de Linux que j'ai installees ne
  comportaient pas de page de man powerd).  J'ai  pense  qu'il  pourrait
  etre une bonne idee de faire un HOWTO, car :

  +o  Une  seconde source d'informations peut aider a la comprehension de
     la methode de connexion de Linux a un onduleur,  meme  s'il  s'agit
     simplement de la meme information, ecrite differemment.

  +o  Le HOWTO peut servir de repository pour les donnees specifiques des
     onduleurs.

  +o  Le HOWTO contient des details supplementaires qui  ne  se  trouvent
     pas dans la page de man de powerd.

  Quoi  qu'il  arrive,  ceci  ne  remplace pas la page de man de powerd.
  Esperons qu'apres avoir lu les deux, les gens  seront  a  meme  de  se
  debrouiller avec les onduleurs.

  11..11..  CCoonnttrriibbuutteeuurrss

  Je  suis  debiteur  a  vie  de  ceux  dont  j'ai  recu  de l'aide, des
  suggestions, ainsi que des donnees specifiques d'onduleurs.  La  liste
  inclut, dans l'ordre d'apparition dans ce document :

  +o  Miquel van Smoorenburg (miquels@cistron.nl.mugnet.org)

  +o  Danny ter Haar (danny@caution.cistron.nl.mugnet.org)

  +o  Hennus Bergman (hennus@sky.nl.mugnet.org)

  +o  Tom Webster (webster@kaiwan.com)

  +o  Marek Michalkiewicz (ind43@sun1000.ci.pwr.wroc.pl)

  +o  Christian G. Holtje (docwhat@uiuc.edu)

  +o  Ben Galliart (bgallia@orion.it.luc.edu)

  +o  Lam Dang (angit@netcom.com)

  11..22..  AAvveerrttiisssseemmeenntt iimmppoorrttaanntt

  Je  ne  peux  reellement  pas  garantir  que  quelque  partie  de ceci
  fonctionne pour vous. Connecter un onduleur a un ordinateur peut  etre
  un  travail  d'astuce.  L'un  ou  l'autre, ou les deux peuvent bruler,
  exploser, mettre le feu, ou commencer la Troisieme Guerre Mondiale. De
  plus,  j'ai  seulement  une  experience  directe  de l'onduleur Advice
  1200 A, et je n'ai pas eu a fabriquer de cable. Donc,  _S_O_Y_E_Z  _P_R_U_D_E_N_T_,
  _R_A_S_S_E_M_B_L_E_Z   _T_O_U_T_E   _L_'_I_N_F_O_R_M_A_T_I_O_N   _P_O_S_S_I_B_L_E   _S_U_R   _V_O_T_R_E  _O_N_D_U_L_E_U_R_.
  _R_E_F_L_E_C_H_I_S_S_E_Z _D_'_A_B_O_R_D_, _N_E _C_R_O_Y_E_Z _P_A_S _A _P_R_I_O_R_I _C_E _Q_U_E _V_O_U_S _L_I_S_E_Z _I_C_I.

  Par ailleurs, j'ai fait en sorte de tout faire  fonctionner  avec  mes
  onduleurs,  sans  beaucoup  d'informations  des constructeurs, et sans
  faire fumer quoi que ce soit, donc c'est possible.

  11..33..  AAuuttrreess ddooccuummeennttss

  Ce document ne traite pas des fonctions et possibilites generales  des
  onduleurs.  Pour ce genre d'informations, voyez la Foire Aux Questions
  UPS.faq,  disponible  en  FTP   anonyme   sur   navigator.jpl.nasa.gov
  (128.149.23.82)  dans  pub/doc/faq/UPS.faq,  et  qui peut probablement
  atre trouvee quelque part sur rtfm.mit.edu.  Elle  est  maintenue  par
  Nick  Christenson (npc@minotaur.jpl.nasa.gov). Par E-mail avec lui, il
  souhaiterait  qu'apparaisse  UPS  ou  UPS  FAQ  ou  quelque  chose  de
  similaire dans la ligne Subject de votre message.

  22..  QQuuee ddeevveezz--vvoouuss ffaaiirree ((ssoommmmaaiirreemmeenntt)) ??

  +o  Branchez le PC sur l'onduleur.

  +o  Connectez le port serie du PC a l'onduleur avec un cable special.

  +o  Lancez powerd sur le PC.

  +o  Configurez votre initd pour faire quelque chose de raisonnable lors
     des evenements powerfail et powerok (comme demarrer un shutdown  et
     tuer tous les shutdown en cours, respectivement, par exemple).

  33..  CCoommmmeenntt eesstt--ccee ssuuppppoossee ffoonnccttiioonnnneerr ??

     TTrraavvaaiill ddee ll''oonndduulleeuurr
        Lorsque  le courant s'arrete, l'onduleur continue d'alimenter le
        PC et signale l'arret du courant par bascule d'un relais ou d'un
        optocoupleur sur son port de controle.

     TTrraavvaaiill dduu ccaabbllee
        Le  cable  est  concu  de  telle  maniere que lorsque l'onduleur
        bascule  ledit  relais,  cela  monte  un  signal   de   controle
        particulier  de  la  ligne serie (typiquement, DCD, Detection de
        Porteuse)

     TTrraavvaaiill ddee ppoowweerrdd
        Powerd controle le port serie. Il  maintient  leves/baisses  les
        signaux  de  controle  du  port  serie  dont l'onduleur a besoin
        (typiquement, DTR, Terminal de Donnees Pret, doit  rester  leve,
        et  touts  les  signaux  qui  coupent  l'onduleur  doivent  etre
        maintenues baisses). Lorsque powerd voit le signal  de  controle
        de  l'onduleur  monter,  il  ecrit  FAIL  dans /etc/powerfail et
        envoie un signal SIGPWR au process initd. Lorsque le  signal  de
        controle redescend, il ecrit OK dans /etc/powerfail et envoie un
        signal SIGPWR a initd.

     TTrraavvaaiill ddee iinniittdd ((eenn pplluuss ddee ttoouutt ccee qquu''iill ffaaiitt ppaarr aaiilllleeuurrss))
        Lorsqu'il   recoit   un   signal   SIGPWR,   il   regarde   dans
        /etc/powerfail.   Si celui-ci contient FAIL, il execute l'entree
        powerfail du fichier /etc/inittab. S'il contient OK, il  execute
        l'entree powerokwait de inittab.

  44..  OOuu oobbtteenniirr llee llooggiicciieell aapppprroopprriiee ??

  La  derniere  fois  que  j'ai  regarde,  le  paquetage a prendre etait
  /pub/Linux/system/Daemons/SysVinit-2.50.tgz sur sunsite.unc.edu ou  un
  miroir.  Il  inclut  une  copie  de  powerd.c, shutdown.c et initd qui
  comprend le signal  SIGPWR  et  interprete  correctement  les  entrees
  powerfail et powerokwait du fichier inittab.

  Evidemment,  maintenant,  je  suis  sur que de nouvelles versions sont
  disponibles.  Quoi que vous  ayez  peut  differer  de  la  description
  presentee ici, mais adherera probablement a la philosophie generale du
  systeme.

  55..  CCoommmmeenntt ccoonnffiigguurreerr ttoouutt ccaa ??

  Ce qui suit presuppose que vous disposez  d'un  cable  qui  fonctionne
  correctement  avec  powerd.c. Si vous n'etes pas sur de cela, voyez la
  section : id="hacking" name="Analyse  de  cables  et  modification  de
  powerd.c">  pour  toute  information  sur les cables mal decrits et la
  reconfiguration de wtt/powerd/. Les sections ``Assignement des broches
  du  port  serie''  et  ``Correspondance  entre ioctl et RS232'' seront
  aussi utiles.

  Si vous devez  fabriquer  un  cable,  voyez  la  section  :  ``Comment
  realiser  un  cable~?''  pour les details generaux, et la sous-section
  de :  ``Informations  sur  un  certain  nombre  d'onduleurs''  qui  se
  rapporte  a  votre  onduleur.  Cette  derniere peut aussi contenir des
  informations sur les cables fournis par le constructeur. Vous  voudrez
  probablement  lire  toute  la  section  ``Informations  sur un certain
  nombre d'onduleurs'' car  chaque  section  contient  quelques  details
  supplementaires generalement utiles.

  +o  Editez /etc/inittab. Placez-y quelque chose de ce genre :

     # Que faire si le courant s'arrete (arreter le systeme et vider la batterie)
     pf::powerfail:/etc/powerfailscript +5

     # Si le courant revient avant la fin du shutdown, arreter celui-ci
     pg:0123456:powerokwait:/etc/powerokscript

  +o  Ecrivez les scripts /etc/powerfailscript et /etc/powerokscript pour
     arreter le systeme  apres  cinq  minutes,  ou  mener  toute  action
     appropriee,  et  tuer  le  shutdown  en  cours, respectivement.  En
     fonction de votre version de shutdown, cela sera, soit  si  trivial
     que  vous n'aurez meme pas a ecrire de script, soit un script d'une
     ligne bash, quelque chose du genre :

         kill `ps -aux | grep "shutdown" | grep -v grep | awk '{print $2}'`

  et vous conserverez les scripts (au cas ou cela ne vous arriverait pas
  dans  un  parfait  etat, la premiere apostrophe sur la ligne ci-dessus
  est une quote inversee, la seconde et la troisieme sont  des  apostro-
  phes, et la derniere est aussi une quote inversee).

  +o  Dites a initd de relire le fichier inittab avec :

         telinit q

  +o  Editez rc.local pour lancer powerd lors du lancement. Syntaxe :

         powerd <ligne>

  Remplacez  <ligne>  par  le  port serie modem sur lequel sera connecte
  l'onduleur, comme : /dev/cua1.

  +o  Connectez le port serie du PC a celui de  l'onduleur.  NE  BRANCHEZ
     PAS ENCORE LE PC SUR L'ONDULEUR.

  +o  Branchez une lampe sur l'onduleur.

  +o  Allumez l'onduleur et la lampe.

  +o  Lancez powerd.

  +o  Testez la configuration :

  +o  Debranchez l'onduleur.

  +o  Controlez que la lampe reste allumee.

  +o  Controlez que /etc/powerfailscript est lance.

  +o  Controlez que le shutdown est lance.

  +o  Rebranchez l'onduleur.

  +o  Controlez que la lampe reste allumee.

  +o  Controlez que /etc/powerokscript est lance.

  +o  Controlez que /etc/powerfailscript n'est pas lance

  +o  Controlez que le shutdown est bien arrete.

  +o  Redebranchez l'onduleur. Laissez-le debranche et verifiez que le PC
     s'arrete proprement dans un delai correct.

  +o  LLaa PPaarrttiiee DDeelliiccaattee.. Une fois que tout semble correct, arretez le PC
     et  branchez-le sur l'onduleur. Lancez un script qui synchronise le
     disque dur toutes les secondes ou a peu pres (sync). Simultanement,
     lancez  un  second  script  qui  execute  un  find sur votre disque
     entier. Le premier sert a  rendre  l'operation  plus  sure,  et  le
     second, a consommer le maximum de puissance.  Maintenant, tirez sur
     la prise de l'onduleur, verifiez une fois de plus  que  le  PC  est
     lance,  et  attendez.  Assurez-vous que le PC s'arrete correctement
     avant que la  batterie  soit  vide.  C'est  dangereux,  car  si  la
     batterie  n'assure  pas  le  delai  d'arret du PC, vous pouvez vous
     retrouver avec un systeme de fichiers corrompu, et  peut-etre  meme
     la  perte  de tous vos fichiers. Vous voudrez probablement realiser
     une sauvegarde complete avant ce test, et positionner le  delai  de
     shutdown tres court pour commencer.

  Felicitations  !  Vous  avez  maintenant  un PC sous Linux protege par
  onduleur qui va s'arreter proprement lors d'une coupure de courant !

  66..  AAmmeelliioorraattiioonnss UUttiilliissaatteeuurr

  +o  Trifouillez powerd.c pour  suivre  la  ligne  indiquant  un  faible
     niveau de batteries. Dans ce cas, executez un shutdown iimmmmeeddiiaatt.

  +o  Modifiez la procedure de shutdown, afinq que, lorsqu'elle s'execute
     dans des conditions de coupure de courant, elle eteigne  l'onduleur
     apres avoir effectue tout le necessaire.

  77..  CCoommmmeenntt rreeaalliisseerr uunn ccaabbllee ??

  Cette  section est juste composee de messages que j'ai vus sur le Net.
  Je ne l'ai pas realise,  donc  je  ne  peux  parler  d'experience.  Si
  quelqu'un  le peut, qu'il ecrive cette section pour moi :). Voir aussi
  le  message  concernant  le  GPS1000   dans   la   section   ``GPS1000
  d'ACCODATA''

     >From miquels@caution.cistron.nl.mugnet.org Wed Jul 21 14:26:33 1993
     Newsgroups: comp.os.linux
     Subject: Re: Interface onduleur pour Linux~?
     From: miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg)
     Date: Sat, 17 Jul 93 18:03:37
     Distribution: world
     Organization: Cistron Electronics.

     Dans l'article <1993Jul15.184450.5193@excaliber.uucp>
     joel@rac1.wam.umd.edu (Joel M. Hoffman) ecrit~:
     >Je ne vais pas tarder a acheter un onduleur, et ai remarque que certains
     >d'entre eux ont des interfaces reseau pour prevenir celui-ci lorsque le
     >courant est coupe.
     >
     >Y a-t-il une telle interface pour Linux~?
     >
     >Merci..
     >
     >-Joel
     >(joel@wam.umd.edu)
     >

     Lorsque je travaillais sur la derniere version de SysVinit (2.4
     actuellement), j'ai eu temporairement un onduleur sur mon ordinateur,
     donc j'ai ajoute le support de celui-ci. Vous l'avez peut-etre vu que dans
     le dernier fichier d'en-tete <signal.h>, il y a maintenant un #define
     SIGPWR 30 :-). Malgre tout, je n'avais pas une telle interface speciale,
     mais la sortie de nombreux onduleurs est juste un relais qui s'ouvre ou se
     ferme en cas de coupure de courant. J'ai reflechi a une methode simple pour
     connecter ca sur la ligne DCD du port serie. Dans le paquetage SysVinit, il
     y a un demon appele "powerd" qui garde un oeil sur cette ligne serie et
     envoie SIGPWR a init lorsque l'etat change, pour qu'init puisse faire
     quelque chose (comme arreter le systeme dans les 5 minutes).
     La methode de connexion de l'onduleur a la ligne serie est decrite dans le
     source "powerd.c", mais je vais le dessiner ici pour explications~:

                          +------------------------o  DTR
                          |
                        +---+
                        |   | resistance
                        |   | 10 kilo-Ohm
                        |   |
                        +---+                              Vers le port serie
                          |
            +-----o-------+------------------------o  DCD
            |             |
            o  relais     |
          \     de l'     |
           \   onduleur   |
            |             |
            +-----o-------+------------------------o  GND

     Joli dessin, hein~?

     J'espere que cela peut etre utile.
     SysVinit peut etre trouve sur sunsite (et tsx-11 probablement) dans
     SysVinit2.4.tar.z

     Mike.

     --

     Miquel van Smoorenburg, <miquels@cistron.nl.mugnet.org>
     Ibmio.com: cannot open CONFIG.SYS: file handle broke off.

     >From danny@caution.cistron.nl.mugnet.org Wed Jul 21 14:27:04 1993
     Newsgroups: comp.os.linux
     Subject: Re: Interface onduleur pour Linux~?
     From: danny@caution.cistron.nl.mugnet.org (Danny ter Haar)
     Date: Mon, 19 Jul 93 11:02:14
     Distribution: world
     Organization: Cistron Electronics.

     Dans l'article <9307174330@caution.cistron.nl.mugnet.org>
     miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg) ecrit :
     >La methode de connexion de l'onduleur a la ligne serie est decrite dans le
     >source "powerd.c", mais je vais le dessiner ici pour explications~:

     Le dessin n'etait pas vraiment claire, utilisez plutot celui-ci~!
     >
     >                     +------------------------o  DTR
     >                     |
     >                   +---+
     >                   |   | resistance
     >                   |   | 10 kilo-Ohm
     >                   |   |
     >                   +---+                                Vers le port serie
     >                     |
     >       +-----o-------+------------------------o  DCD
     >       |
     >       o  relais
     >     \     de l'
     >      \   onduleur
     >       |
     >       +-----o--------------------------------o  GND
     >

     Le DTR est maintenu haut. Lorsque le courant de l'onduleur s'arrete, le
     relais se ferme. L'ordinateur controle la descente de la ligne DCD.
     Lorsque cela arrive, il lance une sequence shutdown...

     _____
     Danny

     --
     <=====================================================================>
     Danny ter Haar  <dannyth@hacktic.nl> or <danny@cistron.nl.mugnet.org>
     Robins law #103: 'a couple of lightyears can't part good friends'

  88..  AAnnaallyyssee ddee ccaabblleess eett mmooddiiffiiccaattiioonn ddee ppoowweerrdd..cc

  Essayez  d'obtenir  la  documentation  des  cables que votre revendeur
  d'onduleurs fournit. En particulier, recherchez :

  +o  Quelles lignes doivent etre maintenues hautes.

  +o  Quelle(s) ligne(s) eteint(gnent) l'onduleur.

  +o  Quelles lignes l'onduleur modifie pour indiquer que :

  +o  Le courant est coupe.

  +o  La batterie est faible.

  Il vous faut ensuite modifier powerd.c en consequence.

  Si vous avez des problemes pour obtenir les informations precitees, ou
  si  vous  voulez  juste  les  controler (une _b_o_n_n_e idee), le programme
  suivant peut vous y aider. C'est une version inversee de powerd.c.  Il
  vous  permet  de  positionner  les  signaux du port depuis la ligne de
  commande, puis il controle le port, en affichant  l'etat  des  signaux
  chaque  seconde.  Je  l'ai  utilise  en  "upscheck  /dev/cua1  2" (par
  exemple) pour monter le deuxieme bit (DTR) et descendre les autres. Le
  nombre  en  base  2  indique les bits a monter, ainsi par exemple pour
  monter les bits 1, 2 et 3 (et descendre les autres), utilisez 7.  Voir
  le code pour les details.

  Voici le programme (non teste) upscheck.c. Il n'est pas teste car j'ai
  modifie la version que j'avais utilisee au depart pour le rendre  plus
  clair, et que je ne peux tester la nouvelle version pour le moment.

  ______________________________________________________________________
  /*
   * upscheck     Controle comment l'ordinateur et l'onduleur communiquent
   *
   * Usage:       upscheck <device> <bits a monter>
   *              Par exemple, upscheck /dev/cua4 4 pour monter le bit 3 et
   *              controler /dev/cua4.
   *
   * Author:      Harvey J. Stein <hjstein@math.huji.ac.il>
   *              (mais en realite juste une modification mineure de Miquel van
   *              Smoorenburg's <miquels@drinkel.nl.mugnet.org> powerd.c
   *
   * Version:     1.0 19940802
   *
   */
  #include <sys/types.h>
  #include <sys/ioctl.h>
  #include <fcntl.h>
  #include <errno.h>
  #include <stdlib.h>
  #include <unistd.h>
  #include <stdio.h>
  #include <signal.h>

  /* Programme principal. */
  int main(int argc, char **argv)
  {
    int fd;

  /*  Ces parametres TIOCM_* sont definis dans <linux/termios.h>, qui  */
  /*  est inclus indirectement ici.                                    */
    int dtr_bit = TIOCM_DTR;
    int rts_bit = TIOCM_RTS;
    int set_bits;
    int flags;
    int status, oldstat = -1;
    int count = 0;
    int pc;

    if (argc < 2) {
          fprintf(stderr, "Usage: upscheck <device> <bits-a-positionner>\n");
          exit(1);
    }

    /* Ouvre le device a controler. */
    if ((fd = open(argv[1], O_RDWR | O_NDELAY)) < 0) {
      fprintf(stderr, "upscheck: %s: %s\n", argv[1], sys_errlist[errno]);
      exit(1);}

    /* Recupere les bits a positionner sur la ligne de commande */
    sscanf(argv[2], "%d", &set_bits);

    while (1) {
      /* Positionne les bits specifies sur la ligne de commande (et */
      /* seulement eux).                                            */
      ioctl(fd, TIOCMSET, &set_bits);
      fprintf(stderr, "Positionnement de %o.\n", set_bits);

      sleep(1);

      /* Recupere les bits actuellement positionnes */
      ioctl(fd, TIOCMGET, &flags);
      fprintf(stderr, "Les signaux sont %o.\n", flags);

  /*  Piochez ici en changeant TIOM_CTS par un autre TIOCM jusqu'a   */
  /*  ce que le programme detecte que le courant est coupe lorsque   */
  /*  vous debranchez l'onduleur. Ensuite, vous saurez comment       */
  /*  modifier powerd.c                                              */
      if (flags & TIOCM_CTS)
        {
          pc = 0 ;
          fprintf(stderr, "Le courant est la.\n");
        }
      else
        {
          pc = pc + 1 ;
          fprintf(stderr, "Le courant est coupe.\n");
        }
      }

    close(fd);
  }
  ______________________________________________________________________

  99..  AAssssiiggnneemmeenntt ddeess bbrroocchheess dduu ppoorrtt sseerriiee

  La section qui precede presuppose la connaissance de la correspondance
  entre les signaux de terminal et les broches du port serie. Voici  une
  reference  de cette correspondance, reprise du document de David Tal :
  <GSRGAAO@TECHNION.BITNET>   ``Cables   et   connecteurs    frequemment
  utilises''.   J'inclus un diagramme illustrant les connecteurs, et une
  table donnant la corresopondance entre les numeros de broches  et  les
  signaux de ligne de terminal.

  |       |         |        |       |         |          |                                           |
  |DB-25  |  DB-9   |  Nom   |  EIA  |  CCITT  |  DTE-DCE |  Description                              |
  |Broche |  Broche |        |       |         |          |                                           |
  +-------+---------+--------+-------+---------+----------+-------------------------------------------+
  |1      |         |  FG    |  AA   |  101    |  ---     | Masse de chassis GND                      |
  |2      |  3      |  TD    |  BA   |  103    |  --->    | Donnees transmises, TxD                   |
  |3      |  2      |  RD    |  BB   |  104    |  <---    |  Donnees recues, RxD                      |
  |4      |  7      |  RTS   |  CA   |  105    |  --->    | Requete pour envoyer                      |
  |5      |  8      |  CTS   |  CB   |  106    |  <---    |  Pret a envoyer                           |
  |6      |  6      |  DSR   |  CC   |  107    |  <---    |  Jeu de donnees pret                      |
  |7      |  5      |  SG    |  AB   |  102    |  ----    | Masse de signal, GND                      |
  |8      |  1      |  DCD   |  CF   |  109    |  <---    |  Detection de porteuse                    |
  |9      |         |  --    |  --   |  -      |  -       | Tension positive continue de test         |
  |10     |         |  --    |  --   |  -      |  -       | Tension negative continue de test         |
  |11     |         |  QM    |  --   |  -      |  <---    |  Mode d'egalisation                       |
  |12     |         |  SDCD  |  SCF  |  122    |  <---    |  Detection de porteuse secondaire         |
  |13     |         |  SCTS  |  SCB  |  121    |  <---    |  Pret a envoyer secondaire                |
  |14     |         |  STD   |  SBA  |  118    |  --->    | Donnees transmise secondaires             |
  |15     |         |  TC    |  DB   |  114    |  <---    |  Signal d'horloge de l'emetteur           |
  |16     |         |  SRD   |  SBB  |  119    |  <---    |  Signal d'horloge secondaire du recepteur |
  |17     |         |  RC    |  DD   |  115    |  --->    | Signal d'horloge du recepteur             |
  |18     |         |  DCR   |  --   |  -      |  <---    |  Horloge divisee du recepteur             |
  |19     |         |  SRTS  |  SCA  |  120    |  --->    | Requete pour emettre secondaire           |
  |20     |  4      |  DTR   |  CD   |  108.2  |  --->    | Terminal de donnees pret                  |
  |21     |         |  SQ    |  CG   |  110    |  <---    |  Detection de qualite de signal           |
  |22     |  9      |  RI    |  CE   |  125    |  <---    |  Indicateur de sonnerie                   |
  |23     |         |  --    |  CH   |  111    |  --->    | Selecteur de vitesse de donnees           |
  |24     |         |  --    |  CI   |  112    |  <---    |  Selecteur de vitesse de donnees          |
  |25     |         |  TC    |  DA   |  113    |  <---    |  Horloge transmise                        |

      Assignement des broches de port serie (RS-232C), DB-25 et DB-9

  ______________________________________________________________________

          1                         13         1         5
        _______________________________      _______________
        \  . . . . . . . . . . . . .  /      \  . . . . .  /    Connecteurs
         \  . . . . . . . . . . . .  /        \  . . . .  /     RS-232 vus de
          ---------------------------          -----------      l'arriere de
          14                      25            6       9       l'ordinateur

     DTE : Equipement terminal de donnees (i.e. ordinateur)
     DCE : Equipement de communication de donnees (i.e. modem)
     RxD : Donnees recues; 1 est transmis "bas", 0 "haut"
     TxD : Donnees envoyees; 1 est transmis "bas", 0 "haut"
     DTR : DTE annonce qu'il est alimente et pret a communiquer
     DSR : DCE annonce qu'il est pret a communiquer; "bas" raccroche le modem
     RTS : DTE demande a DCE la permission d'envoyer des donnees
     CTS : DCE agree la RTS
     RI  : DCE indique au DTE qu'il tente d'etablir une connexion
     DCD : DCE annonce qu'une connexion est etablie
  ______________________________________________________________________

  1100..  CCoorrrreessppoonnddaannccee eennttrree iiooccttll eett RRSS223322

  Puisque  vous  pouvez  aussi  devoir  modifier powerd.c pour monter et
  descendre les signaux corrects, vous pouvez  aussi  avoir  besoin  des
  valeurs  numeriques  des  differents  signaux de terminal. Ils peuvent
  etre trouves dans /usr/include/linux/termios.h, mais  sont  reproduits
  ici  comme  reference.  Puisqu'ils  peuvent etre sujets a changements,
  vous auriez avantage a les verifier avec ledit fichier.

       ______________________________________________________________________
       /* lignes modem */
       #define TIOCM_LE        0x001
       #define TIOCM_DTR       0x002
       #define TIOCM_RTS       0x004
       #define TIOCM_ST        0x008
       #define TIOCM_SR        0x010
       #define TIOCM_CTS       0x020
       #define TIOCM_CAR       0x040
       #define TIOCM_RNG       0x080
       #define TIOCM_DSR       0x100
       #define TIOCM_CD        TIOCM_CAR
       #define TIOCM_RI        TIOCM_RNG
       ______________________________________________________________________

  Notez que la troisieme colonne est en hexadecimal.

  1111..  IInnffoorrmmaattiioonnss ssuurr uunn cceerrttaaiinn nnoommbbrree dd''oonndduulleeuurrss

  Cette  section  contient  des  informations  specifiques  de  certains
  onduleurs.  Ce que je souhaiterais serait de disposer des informations
  sur le port de controle de l'onduleur (ce que fait chaque broche et ce
  qu'elle attend qui soit fait), sur le cable fourni par le constructeur
  (ce qu'il connecte et ou), ainsi qu'une version modifiee  de  powerd.c
  qui  fonctionne  avec  l'onduleur.   Ce  que j'ai actuellement est une
  description a peu  pres  complete  de  chaque  onduleur.  Je  voudrais
  essayer  d'affiner  chaque  information,  mais comme je ne peux tester
  chaque onduleur, il est difficile de decider exactement de ce qui  est
  necessaire.  De  plus,  chaque  onduleur  semble  avoir quelques trucs
  supplementaires qui sont  bien  decrits  par  les  auteurs  de  chaque
  section.   Ainsi,  pour l'heure, je laisse tout en place. Tout pour un
  HOWTO epais.

  VVeeuuiilllleezz mm''eennvvooyyeerr vvooss eexxppeerriieenncceess ppoouurr lleess iinncclluurree iiccii..

  1111..11..  EExxppeerriieenncceess ggeenneerraalleess..

  J'ai conserve les commentaires des gens, mais n'ai pas  encore  obtenu
  la  permission de les inclure ici. Voici un sommaire general de ce que
  j'ai entendu dire.

  APC: Ne donneront pas d'informations sur leur mode "intelligent"  sans
  votre  signature  d'un  accord  de non-diffusion.  Donc, les gens sont
  forces d'utiliser leurs  onduleurs  "intelligents"  en  mode  "idiot",
  comme souligne plus bas.

  Tripp  Lite:  Une personne a dit que Tripp ne diffuserait pas non plus
  d'information.

  Upsonic: Quelqu'un a dit qu'Upsonic a discute de details techniques au
  telephone,  repondu aux questions par fax et est serviable en general.

  1111..22..  AAddvviiccee 11220000 AA

  Onduleurs d'Advice Electronics, Tel Aviv, Israel (Tout  leur  materiel
  porte une etiquette a leur nom).

  Specification des broches du port de controle.

  +o  2 - Coupure de courant.

  +o  5 - Batterie faible.

  +o  6 - Extinction de l'onduleur.

  +o  4 - Masse commune des broches 2, 5 et 6.

  Ils  m'ont aussi donne le dessin suivant qui ne m'a servi a rien, mais
  peut vous etre utile si vous souhaitez fabriquer vous-meme un cable :

  ______________________________________________________________________
           2 ----------+
                       |
                       \
                        \|
                         |--------------
                        /|
                      \/      <--- Le "\/" indique le type de ce
                      |            transistor. J'ai oublie ce que
                      |            cela veut dire, mais ce n'est
                   +-----+         pas fondamental.
                  /  /  /

           5 ----------+
                       |
                       \
                        \|
                         |--------------
                        /|
                      \/
                      |
                      |
                   +-----+
                  /  /  /

                         +-------------
                         |
                         /
                10K    |/
           6 --\/\/\/--|
                       |\
                         \/
                         |
                         |
                      +-----+
                     /  /  /

           4 ----------+
                       |
                       |
                    +-----+
                   /  /  /

  ______________________________________________________________________

  Cable fourni

  Ils m'ont d'abord donne un cable qui appartenait a un paquetage DOS de
  controle  de  l'onduleur  appele RUPS. Je l'ai utilise pour les tests.
  Une fois ceux-ci  satisfaisants,  ils  m'ont  donne  un  cable  qu'ils
  utilisent  pour  les  serveurs  Netware  connectes a des onduleurs. Il
  fonctionnait a l'identique. Voici les details :

  +o  DTR - Alimentation du cable (powerd.c doit le monter).

  +o  CTS - Courant present (descend quand le courant est coupe).

  +o  DSR - Batterie faible (descend lorsque la batterie faiblit).

  +o  RTS - Extinction de l'onduleur (a monter pour eteindre).

  (Le powerd.c inclus dans SysVinit place ou laisse  RTS  haut,  causant
  l'arret de l'onduleur immediatement lors du lancement de powerd !)

  1111..33..  GGPPSS11000000 dd''AACCCCOODDAATTAA

     >From hennus@sky.nl.mugnet.org Thu Mar 10 15:10:22 1994
     Newsgroups: comp.os.linux.help
     Subject: Re: auto-shutdown avec un onduleur
     From: hennus@sky.nl.mugnet.org (Hennus Bergman)
     Date: Tue, 1 Mar 1994 22:17:45 GMT
     Distribution: world
     Organization: The Organization For Removal Of On-Screen Logos

     Dans l'article <CRAFFERT.94Feb28125452@nostril.lehman.com>,
     Colin Owen Rafferty <craffert@nostril.lehman.com> ecrit :
     >Je suis pret a acheter un onduleur pour ma machine, et j'en
     >voudrais un qui sache faire un "auto-shutdown".
     >
     Je viens d'en acheter un vraiment pas cher :-)
     C'est un GPS1000 d'ACCODATA. Tout le monde connait la bonne qualite
     de leur production (je n'ai pas d'actions chez eux :-() ?

     >Je suppose que tous ont une sorte de connexion serie qui previent le
     >systeme de cela.
     >
     Je l'ai pris a part pour trouver comment il fonctionnait. Il y avait
     trois optocoupleurs (deux sorties, une entree) connectes sur un connecteur
     a 9 broches a l'arriere. L'un s'allume lorsque le courant est coupe, et
     s'eteint lorsque ce dernier revient. Durant ce temps, on peut utiliser
     l'"entree" pour arreter la batterie (il relache le relais de puissance).
     Le troisieme est une sorte d'acquittement de la commande d'arret. Je
     pense que l'interface de mon onduleur a ete concue pour etre connectee
     a des niveaux TTL, mais avec quelques resistances il peut etre connecte a
     un port serie. Il est branche de telle sorte qu'avec un port RS-232 on
     ne puisse utiliser les deux optocoupleurs de sortie; mais l'acquittement
     de la commande d'arret n'est pas vraiment necessaire. On peut se conten-
     ter de celui qui est important (Notez qu'il est possible de faire fumer
     la partie transistor des optocoupleurs avec des niveaux RS-232 si on
     le branche mal). ;-)

     J'esperais etre capable de le connecter a mon port de jeux inutilise,
     mais ce dernier n'a pas de sortie, n'est-ce pas~?
     Je vais probablement finir par mettre un port parallele supplementaire
     pour ca.

     Tous les onduleurs n'utilisent pas d'optocoupleurs, certains se contentent
     de simple relais, qui sont moins difficiles a connecter, mais bien sur,
     pas aussi `elegants'.

     >Quelqu'un a-t-il ecrit un paquetage qui surveille l'onduleur et effectue
     >un shutdown (ou similaire) lorsque le courant s'arrete ?
     SysVinit-2.4 (et probablement 2.5 aussi bien) a un demon `powerd' qui
     surveille le port serie en continu et previent init quand CD (Detection
     de porteuse) tombe. Init active ensuite un shutdown avec un delai. Si le
     courant revient apres quelques minutes, le shutdown est arrete. Tres beau.
     Le seul probleme que j'aie eu avec est qu'il ne dit pas a l'onduleur de
     s'arreter lorsque le shutdown est fini. Il attend simplement la avec une
     invite root. Je vais probablement ecrire un petit program pour l'arreter
     >depuis /etc/brc. RSN.

     >    Colin Rafferty, Lehman Brothers <craffert@lehman.com>

     Hennus Bergman

  1111..44..  TTrriippppLLiittee BBCC775500LLAANN ((SSttaannddbbyy UUPPSS))

  From: Tom Webster <webster@kaiwan.com>
  To: hjstein@MATH.HUJI.AC.IL (Harvey J. Stein)
  Subject: Re: SOS - Powerd & onduleurs - SOS
  Date: Mon, 8 Aug 1994 12:26:09 -0700 (PDT)

  Harvey,

  Tout d'abord, laisse-moi dire que la lecture de ton HOWTO m'a beaucoup plu.
  C'est a peu pres ce que j'esperais voir devenir mon document. J'ai ecrit
  mon pseudo-HOWTO tard dans la nuit, car je continuais a voir le message
  "Puis-je connecter un onduleur a Linux...", a peu pres une fois par mois
  dans c.o.l.*. Le mien traite specifiquement de la connexion d'un modele
  particulier d'onduleur (series TrippLite BCxxx/LAN) sur une machine Linux
  et de l'adaptation de powerd a ce cas.

  Il necessite quelques ameliorations, les choses etant un peu bidouillees.
  Maintenant que je l'ai poste trois ou quatre fois en reponse aux question,
  je recois finalement quelques feedback (qui trouvent ces erreurs). Les
  problemes que je lui connais jusqu'a present sont :

  La version correcte de SysVinit est 2.4 et non 2.04.

  Il y a certains arguments concernant la necessite d'une ou plusieurs
  resistances dans mon cable. Le seul endroit ou j'aie vu que ce serait
  necessaire est sur l'extinction de l'inverseur, pour etre sur de ne pas
  envoyer une trop forte tension dans l'onduleur. Pour le circuit de
  detection, je ne vous pas pourquoi un equipement DTE ne peut admettre
  de voir son signal boucle vers lui-meme. Tout ce que je fais est de
  connecter une ligne qui est maintenue haute sur le signal Detection de
  porteuse.

  Je dois etre un peu plus clair sur le fonctionnement de l'onduleur lorsqu'il
  entre en mode coupure de courant. Les TrippLite fournissent _et_ un circuit
  ouvert _et_ un circuit ferme en cas de coupure de courant, deux broches
  differentes et une broche de masse commune. Ainsi tout ce que j'ai a faire
  est de brancher une broche maintenue haute sur la ligne Detection de porteuse
  et de la router sur le circuit ouvert sur coupure de l'onduleur, pour faire
  tomber la detection de porteuse. Je pense que cela trompe quelque personnes
  qui ont lu la description de Miquel van Smoorenburg d'un onduleur qui fournit
  seulement un circuit ferme sur coupure de courant, et necessite un cable
  beaucoup plus complique.

  Voila, c'est tout ce a quoi je pense pour l'instant. Je prevois de regarder si
  mon cable continue a fonctionner si j'insere des resistance dans tous les
  circuits. Si c'est le cas, je ferai les modifications dans mon document, que
  tu devrais trouver ce week-end.

  Tom

  ----------------

  De Linux et les onduleurs
  [ou comment connecter un onduleur TrippLite BCXXXLAN]

  par Tom Webster <webster@kaiwan.com>
     05/20/94 (Version 1.0)

  1.0 Introduction
  J'ai bataille sur la connexion d'un TrippLite BC750LAN (onduleur autonome)
  sur ma machine Linux il y a a peu pres six mois. Puisque j'ai vu differentes
  demandes sur ce sujet, je le mets sous un format relativement stable afin de
  n'avoir qu'a l'envoyer lorsque la question reapparait.

  1.1 Les Resultats
  Lorsque le courant est coupe dans mon appartement, les choses suivantes se
  passent :

     1.  L'onduleur bascule son inverseur et l'ordinateur commence a
         fonctionner sur l'onduleur. L'alarme de l'onduleur commence a
         retentir. Si le courant revient, l'onduleur re-bascule son
         inverseur et retourne sur le secteur. Rien d'autre n'arrive,
         sauf que l'alarme s'arrete.

     2.  Si le courant est coupe depuis 15 a 30 secondes, le systeme
         envoie en message aux utilisateurs (par wall) et commence un
         shutdown (pour arreter) dans les cinq minutes. Si le courant
         revient, le shutdown est abandonne, et un message explicatif
         est envoye aux utilisateurs (par wall).

     3.  Pendant que le systeme est en phase de shutdown, son dernier
         acte doit etre d'eteindre l'onduleur, pour couper le courant
         du systeme. Cela est fait apres le umount des disques, et est
         realise pour eviter que le systeme arrete consomme de la
         puissance de l'onduleur.

     4.  Quand le courant secteur revient, le systeme redemarre
         normalement.

  Le BC750 a suffisamment de jus pour maintenir mon systeme en fonction
  un certain temps, donc pourquoi l'eteins-je apres seulement cinq
  minutes ? La reponse se trouve dans quelques regles pifometriques
  (elles peuvent varier chez vous) :

     a.  Si le courant baisse ou s'arrete, 90% des fois ce sera pour
         0 a 2 minutes.

     b.  Si cela dure plus longtemps, c'est que ca durera entre une
         demi-heure et cinq heures.

     c.  Si cela dure un moment (voir b), le courant va revenir et
         repartir au moins une fois pendant que l'entreprise d'electricite
         travaille sur la ligne (le courant reviendra pour 5 a 45 secondes,
         puis s'arretera a nouveau).

  Donc, j'ai configure mon systeme pour couvrir la majorite des coupures
  que j'ai, sans tenter de tenir celles qui durent vraiment longtemps.
  J'ai aussi garde une grosse reserve dans l'onduleur pour gerer les
  situations d'aller-retour.

  1.2  Avertissement
  Je ne fait aucune garantie d'aucune sorte sur la fiabilite ou la securite
  induites par mon avis. C'est ainsi que mon systeme est configure, et
  autant que je puisse le dire, il fonctionne bien pour moi. Votre
  configuration peut necessiter des differrences pour correspondre a vos
  besoins, en particulier si vous utilisez differents types d'onduleurs.

  2.0  Materiel
  Dans le cas de mon onduleur, j'ai pense que l'interface RS-232 etait,
  quelque part, mal nommee. Je pensais que l'onduleur envoyait et
  recevait des donnees, comme lorsque l'on communique avec un modem avec
  les commandes "AT". Ce n'etait pas le cas. Il semble qu'elle s'appelle
  RS-232 parce qu'elle est batie dans les limites des specifications
  RS-232 en termes de tension et de limites de signaux. Pour communiquer
  avec l'onduleur, vous devez pouvoir detecter les changements d'etat de
  certaines lignes et changer l'etat de certaines autres. Le fait que ces
  lignes puissent n'avoir rien en commun avec les lignes que votre
  systeme puisse s'attendre a utiliser, s'il communiquait avec un modem ou
  une imprimante, explique probablement pourquoi votre onduleur necessite
  des cables speciaux pour permettre aux logiciels (y compris ceux du
  constructeur) de communiquer avec l'onduleur.

  Au travers d'essais et d'erreurs avec un boitier de brassage RS-232, j'ai
  pu definir un diagramme de cable pour relier l'onduleur a l'ordinateur.
  Veuillez noter que je l'ai realise sans regarder le cable officiel
  TrippLite et que celui-ci peut etre different.

         Onduleur              Systeme
           DB-25               DB-25
             1 <-------------->  1       Masse

             2 <-------------->  4       Coupure de secteur
             8 <-------------->  8       Circuit de detection

             3 <-------------->  2       Inverseur d'arret
            20 <--------------> 22       Circuit

  Une fois le cable broche ainsi, branchez simplement le cote onduleur
  sur celui-ci et le cote systeme sur un port serie libre de votre
  machine. Vous aurez vraisemblablement a vous debrouiller avec des
  adaptateurs 9->25 et 25->9 pour faire aller votre cable, mais vous
  devriez pouvoir gerer cela avec un bon magasin d'informatique.

  3.0 Logiciel
  Le logiciel que j'utilise est disponible pour les utilisateurs de
  Linux et se trouve sur de nombreuses distributions (SLS et Slackware
  au minimum). Cette configuration a fonctionne pour moi sur les noyaux
  0.99.9, 0.99.14 et 1.0.

  3.1 Init System V
  Ce paquetage est necessaire pour faire fonctionner le tout. Si vous
  utilisez encore le paquetage "Init simple", il est peut-etre temps
  d'envisager la mise a jour. La version que j'utilise est 2.04, et je
  crois que Miquel van Smoorenburg est l'auteur du paquetage.

  3.2 powerd
  powerd est le demon du courant, par defaut il surveille le changement
  d'etat de la ligne DCD et indique ces changements au systeme par le
  mecanisme du signal. Le source de powerd est fourni dans le paquetage
  Init System V. Compilez-le, deplacez-le dans un repertoire de binaires
  (je l'ai mis dans /sbin sur mon systeme), et modifiez votre script
  rc.local pour lancer le demon. La partie correspondante de mon rc.local
  a l'allure suivante :

      ----- couper ici -----
      # Ajoute le support de l'onduleur
      echo "Demarrage du demon powerd..."
      if [ -x /sbin/powerd ]; then
         /sbin/powerd /dev/cua4
      fi
      ----- couper ici -----

  3.3 inittab
  Votre inittab doit etre modifie pour gerer correctement les signaux que
  powerd enverra s'il y a une coupure secteur. Les lignes correspondantes
  de mon inittab ont l'allure suivante :

     ----- couper ici -----
     # Quoi faire si le courant est coupe (passer en mono-utilisateur)
     pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"

     # Si le courant revient, abandonner le shutdown en cours.
     pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK"

     # Si le courant revient en mono-utilisateur, passer en multi-utilisateur.
     ps:S:powerokwait:/sbin/init 2
     ----- couper ici -----

  3.4 rc.0 (brc)
  En fonction de la configuration de votre systeme, l'un des scripts
  rc.0 ou brc est execute immediatement avant le shutdown. Ces scripts
  prennent soin de diverses choses, comme demonter les disques ou autre
  nettoyage de derniere minute.

  Le circuit de l'inverseur de shutdown est concu pour signaler un
  shutdown a un inverseur lorsque des donnees sont envoyees sur la ligne
  DTR. Dans mon cas, j'ai juste transmis un court fichier sur le port
  serie (/etc/passwd car j'etais sur de toujours le trouver la). Mon
  rc.0 est comme ci-dessous, notez qu'il est surtout conservateur, le
  sync peut etre supprime et les delais de sleep peuvent probablement
  etre affines, mais cela fonctionne, donc je ne m'y suis pas plus
  interesse.

    ----- couper ici -----
    #! /bin/sh
    #
    # brc       Ce fichier est execute par init(8) lors du shutdown du
    #           systeme (i.e. place en niveau de fonctionnement 0).
    #           Habituellement, il s'occupe de demonter tous les systemes
    #           de fichiers non indispensables.
    #
    # Version:  @(#)/etc/brc            2.01    02/17/93
    #
    # Auteurs:  Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
    #           Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
    #
    # Modifie : 01/15/94 - Ajout du support de shutdown d'inverseur
    #           Tom Webster <webster@kaiwan.com>

    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    echo Descente des systemes de fichiers...
    sync
    umount -a
    sleep 2
    cat /etc/passwd > /dev/cua4
    sleep 5
    echo Done.
    ----- couper ici -----

  (Sur mon onduleur, l'inverseur fonctionne seulement lorsque le courant est
  coupe, donc cela ne pose pas de probleme d'envoyer le signal d'arret a
  chaque shutdown)

  4.0 Conclusion
  Bien, c'est ainsi que j'ai branche mon onduleur TrippLite sur mon Linux.
  N'hesitez pas a m'envoyer un mot avec le resultat de vos tentatives, en
  particulier si vous avez des ameliorations. :->

  From: Tom Webster <webster@kaiwan.com>
  To: hjstein@MATH.HUJI.AC.IL (Harvey J. Stein)
  Subject: Re: SOS - Powerd & onduleurs - SOS
  Date: Thu, 11 Aug 1994 12:20:50 -0700 (PDT)

  Harvey,

  > Comme j'essayais de le dire, powerd peut simplement lancer shutdown
  > directement dans un evenement de baisse de batterie, de telle sorte
  > qu'init n'ait pas besoin de s'en occuper ni d'etre modifie - pas de
  > nouveau signal necessaire. Bien que cela viole la belle separation
  > des taches de powerd et init, c'est plus facile que d'ajouter un
  > nouveau signal. Ou penses-tu seulement a une autre commande ? Quelque
  > chose comme avoir powerok/powerfail/powerfailnow en tant que commandes
  > d'inittab qui s'executent lorsque SIGPWR est recu et que /etc/powerfail
  > contient OK/FAIL/LOWBATT (respectivement). Cela serait plsu propre,
  > mais de faire executer shutdown -r now a powerd est evident a faire,
  > et peut aussi bien etre fait - la logique serait la meme quelle que
  > soit l'action prise par powerd lors de la baisse de batterie. Pour
  > l'instant, il peut simplement lancer shutdown, et lorsqu'init sera
  > modifie, il pourra ecrire LOWBATT dans /etc/powerfail (ou quel que soit
  > le nom de ce fichier) et envoyer SIGPWR a init.

  Je voudrais ajouter la commande LOWBATT, ce serait plus propre ainsi.
  J'ai juste besoin de jeter un coup d'oeil au code et de voir quelle
  serait la difficulte de l'ajouter. Je dois aussi regarder mon branchement,
  je pense que cela pourrait vouloir dire que j'aie a faire passer mon
  systeme par la procedure entiere de descente pour un test final (une fois
  que je penserai qu'il fonctionne).

  Tom

  From: Tom Webster <webster@kaiwan.com>
  To: hjstein@MATH.HUJI.AC.IL (Harvey J. Stein)
  Subject: Re: SOS - Powerd & onduleurs - SOS
  Date: Mon, 15 Aug 1994 09:46:06 -0700 (PDT)

  Harvey,

  Eh bien, j'ai passe a peu pres tout mon week-end a prendre des
  mesures au multimetre pour les comparer a la documentation de mon
  onduleur. Les seules conclusions auxquelles je sois arrivee sont :

  1.  Mon systeme a fonctionne 8 a 9 mois maintenant. S'il avait du
  faire fumer quelque chose, ce serait deja fait.

  2.  Si mon succes est fonde sur les defauts de mon port serie (j'ai
  une carte STB 4COM), je n'ai aucun moyen de le verifier sur mon
  systeme. Je devrai laisser le probleme a quelque pauvre ame du Net.

  3.  Autant que je puisse dire, la seule justification de la resistance
  de 10 kohm dans le diagramme de Miquel etait de maintenir la ligne plus
  haut que DCD, meme apres la mise a la masse du circuit.

  4.  Le seul circuit qui doive faire autre chose que d'etre change par
  l'onduleur (le circuit de shutdown de l'inverseur) contient une
  resistance de 40 kohm (a l'interieur de l'onduleur). Cela doit eviter
  tout probleme.

  5.  Le circuit de Miquel fonctionne pour une detection de coupure de
  courant, et peut etre extrapole pour inclure le circuit de batterie
  faible. Si mon circuit s'avere inutilisable pour d'autres, il
  necessitera plus de soudures que je ne voudrais en faire dans un cable.

  Par ailleurs, j'en ai eu assez ce matin et ai commande un cable chez
  TrippLite. J'ai commande le cable LanTastic/LAN Manager/Win NT, c'est
  juste un cable (9M-9F) sans logiciel. Cela va m'economiser environ 40
  dollars (le cable PC Unix (avec logiciel) est a environ 140 dollars).
  La motivation de cela etait triple :

  (1)  Sous un an, je vais probablement utiliser Windows 4.0 ou Windows
  NT 3.50 (j'ai ete beta-site 3.1) et les deux supporteront le controle
  d'onduleur (je sais que NT le fait et j'ai vu l'icone de gestion de
  l'energie sur un bureau Windows 4.0 dans un magazine d'informatique).

  (2)  Mon cable actuel ne sera compatible avec aucun autre logiciel de
  gestion pour d'autres OS (sauf chance extraordinaire), et travailler
  avec un cable connu (et j'espere qu'il sera bientot standard ?) sur un
  powerd modifie peut elargir l'audience.

  (3)  Je peux toujours analyser le cable pour voir si TrippLite inclut
  une certaine securite dans ses cables.

  Il devrait etre la d'ici une semaine ou a peu pres. En attendant, je
  vais commencer a regarder dans powerd pour inclure LOWBATT.

  Tom

  1111..55..  AAPPCC BBaacckkuupp--UUPPSS

  Il  semble  qu'il  y ait une certaine controverse sur la fiabilite des
  informations indiquees ici sur les APC Back-UPS. Donc, soyez  prudent.
  Je  preface  cette  section  avec  un message d'avertissement que j'ai
  recu.  Il peut ne pas prendre tout son sens tant que le  reste  de  la
  section  n'est  pas lu, mais ainsi, au moins vous aves plus de chances
  de le voir.  Et, a nouveau, comme je n'ai aucun onduleur  APC,  je  ne
  peux verifier la fiabilite d'aucun de ces messages.

  1111..55..11..  UUnn mmeessssaaggee dd''aavveerrttiisssseemmeenntt

       From ind43@sun1000.ci.pwr.wroc.pl Sun Oct  9 11:00:42 1994
       Newsgroups: comp.os.linux.admin
       Subject: BUPS-HOWTO warning
       From: ind43@sun1000.ci.pwr.wroc.pl (Marek Michalkiewicz)
       Date: 6 Oct 1994 18:38:15 GMT
       Organization: Technical Univeristy of Wroclaw
       NNTP-Posting-Host: ci3ux.ci.pwr.wroc.pl
       X-Newsreader: TIN [version 1.2 PL2]

       Si vous voulez connecter un onduleur APC Back-UPS sur votre Linux, ce
       qui suit peut vous interesser.

       Il y a un bon BUPS-HOWTO qui decrit comment le faire. Mais il a un "bug".

       Le signal RTS du port serie est utilise pour arreter l'onduleur. Celui-ci
       ne s'arretera que s'il travaille sur sa batterie. Le manuel indique que le
       le signal d'arret doit durer au moins 0,5ms. Mais un temps inferieur est
       suffisant, au moins pour mon APC Back-UPS 600.

       L'utilisation de RTS est dangereux, car ce dernier est monte a l'ouverture
       du device. Le programme backupsd le redescend ensuite, mais il reste haut
       un moment. Cela coupe le courant lors du premier lancement de backupsd
       s'il y a une coupure secteur a ce moment. Cela peut arriver par exemple
       lorsque l'onduleur est eteint, et que le courant revient pour un moment.

       Soit il faut lancer backupsd avant de monter les systemes de fichiers en
       lecture/ecriture, soit (mieux) utiliser TX (broche 3) plutot que RTS
       (broche 7) pour eteindre l'onduleur (la numerotation est pour un DB-9).
       Utilisez ioctl(fd, TCSBRKP, 10); pour monter TX pendant une seconde, par
       exemple. L'utilisation de TX doit etre sure. Je posterai peut-etre les
       diff si le temps me le permet...

       -- Marek Michalkiewicz
       ind43@ci3ux.ci.pwr.wroc.pl

  1111..55..22..  BBUUPPSS--HHOOWWTTOO

  Luminated Software Group Presente

  HOWTO  utilisation d'onduleurs de secours (d'APC) (pour proteger votre
  Linux)

  Version: 1.01  BETA

  Document de : Christian G. Holtje  <docwhat@uiuc.edu>  Information  de
  cablage et aide : Ben Galliart <bgallia@orion.it.luc.edu> Traduction :
  Bernard Choppy <bernard.choppy@alias.fdn.fr>

  Ce document est place dans le Domaine Public a une condition. Celle-ci
  est  que  ce  qui  appartient  a Cesar revienne a Cesar. Modifiez ceci
  autant que vous  voulez,  rappelez  juste  que  nous  avons  travaille
  dessus.

  *******************************************************************************
  Attention !  Ni moi, ni aucun de ceux  qui  on  ecrit  ou  aide  a  ce
  document,    ne    garantissons    quoi   que   ce   soit   pour   ces
  textes/sources/indications. Si quoi que ce soit  est  endommage,  nous
  n'y  sommes  POUR  RIEN  !  Cela  fonctionne  POUR  AUTANT QUE NOUS LE
  SACHIONS, mais nous  pouvons  avoir  fait  des  erreurs.  Donc,  soyez
  prudent                                                              !
  *******************************************************************************

  NdT  :  Ce document contient des references de pieces detachees Radio-
  Shack, qui etaient vendues par le reseau Tandy en  France.  Ce  reseau
  n'existe plus, mais la reference peut tout de meme etre utile.

  Ok,  vous  venez  juste d'acheter (ou vous allez le faire) un Back-UPS
  d'APC  (d'autres  pourront  peut-etre  tirer  quelque  chose  de   ces
  informations,  avec  peu  ou pas de modifications, mais nous ne savons
  pas). Vous avez jete un coup d'oeil au prix du  couple  logiciel/cable
  Power-Chute,  et  n'etes  pas  sur  que le jeu en vaille la chandelle.
  Bien, j'ai fait mon propre cable, et mon propre  logiciel  et  je  les
  utilise  pour  eteindre  automatiquement  mon Linux lors d'une coupure
  secteur. Vous savez quoi ? vous pouvez aussi !

  *** Le Cable ***

  C'etait la partie la plus difficile a imaginer (je m'y connais peu  en
  hardware,  donc Ben a fait le plus gros du travail). Pour en fabriquer
  un, vous devez acheter ce qui suit chez votre marchand  d'electronique
  local :

       1 connecteur a souder subminiature male DB-9
               [Radio Shack cat. no. 276-1537c]
       1 connecteur a souder subminiature femelle DB-9
               [Radio Shack cat. no. 276-1538c]
       2 boitiers pour les connecteurs ci-dessus (vendus separement en general)
       Du cable multi-brins (pas mono-brin)

  Il vous faut aussi, mais vous pourrez peut-etre l'emprunter :

       1 fer a souder
       de la soudure

  Ok... voici comment connecter le tout !

  Ces  diagrammes  montrent  le  cote  ARRIERE (celui ou vous soudez les
  cables sur les broches). Les  lettres  V,  R  et  B  representent  les
  couleurs  des  cables  que j'ai utilises, et facilitent la distinction
  des lignes (Note : j'utilise la  numerotation  standard  RS-232  (pour
  autant  qu'on puisse dire). Le livre de l'APC utilise une numerotation
  differente. Ignorez-la ! Utilisez la notre...  Je  l'ai  deja  changee
  pour vous !).

          ---------------------     Cote Male (vers l'onduleur) !
           \  B   R  *  *  * /
             \  *  *  *  V  /
               ------------

          ---------------------     Cote femelle (vers le port COM) !
           \  R   *  *  *  V /
             \  *  B  *  *  /
               ------------

  Pour ceux qui preferent les chiffres :

               Male            Femelle
       ---------------------------------------
               1               7               Bleu
               2               1               Rouge
               9               5               Vert

  ---------  Complement  :  Utilisation des broches RS-232 ! -----------
  Puisque nous avons eu a trouver cette information :

  >Depuis l'ARRIERE (cote soudure), les broches sont numerotees ainsi :

          ---------------------
           \  1   2  3  4  5 /
             \  6  7  8  9  /
               ------------

  Les broches signifient

               Numero  Nom                     Abreviation (parfois prefixee par D)
               1       Detection de porteuse           CD
               2       Reception de donnees            RD
               3       Transmission de donnees         TD(?)
               4       Terminal de donnees pret        DTR
               5       Masse de signal                 Gnd
               6       Jeu de donnees pret             DSR
               7       Demande pour envoyer            RTS(?)
               8       Pret a envoyer                  CS
               9       Indicateur de sonnerie          RI

  Ce que nous avons fait etait  la  connexion  de  la  ligne  RS-232  de
  l'onduleur  "Fail Output" sur CD, le chassis de l'onduleur sur Gnd, et
  l'entree "Shut Down" sur RTS. Facile, maintenant qu'on  vous  le  dit,
  non ?

  Je  n'ai  aucune idee du bon fonctionnement du logiciel ci-dessous, si
  vous achetez le cable d'APC. Il peut fonctionner, ou non.

  *** Le Logiciel ***

  Ok, j'utilise le paquetage SysVInit de  Miquel  van  Smoorenburg  pour
  Linux  (voir  a  la  fin pour emplacements, remerciements, adresses E-
  mail, etc.).  Je ne sais ce qui doit etre changer pour utiliser l'init
  de  quelqu'un  d'autre, mais je sais que ce code (qui suit) fonctionne
  avec celui de Miquel.  Simplement ainsi je remercie comme je le  dois.
  J'ai  regarde  dans  le code de Miquel pour comprendre comment ioctl()
  fonctionnait. Si je n'avais  pas  eu  cet  exemple,  j'aurais  eu  des
  problemes.  J'ai  aussi utilise la routine powerfail() (a l'identique,
  je crois), puisqu'elle doit interagir  avec  init,  j'ai  pense  qu'il
  devait  savoir  ca  mieux  que  moi.  Le fichier .c est a la fin de ce
  document,  et  necessite  seulement  d'etre  copie/colle.  Pour  cela,
  supprimez  simplement  tout ce qui n'est pas du code. Ce document doit
  se terminer par la ligne /* Fin de Fichier */...  coupez le reste.

  Ce programme peut, soit etre lance comme demon pour  controler  l'etat
  de  l'onduleur  et  l'indiquer a init, soit etre lance pour envoyer la
  commande   "kill-power"   (coupure   d'alimentation)   a   l'onduleur.
  L'alimentation  ne sera coupee que s'il y a un probleme secteur et que
  l'onduleur est sur batteries.  Une  fois  le  courant  revenu,  il  se
  rallume.

  Pour le lancer comme demon, entrez simplement : backupsd /dev/backups

  /dev/backups  est  un  lien  vers /dev/cua0 (COM 1, pour les DOSseurs)
  actuellement.  La beaute du lien est que je n'ai qu'a le refaire si je
  passe sur COM 2 ou COM 3.

  Ensuite,  si  le  secteur  s'arrete,  init  lancera  les  commandes de
  powerwait.  Un exemple (qui vient de mon /etc/inittab) :

       #Voici les actions de coupure de courant
       pf::powerwait:/etc/rc.d/rc.power start
       po::powerokwait:/etc/rc.d/rc.power stop

  Powerwait sera  lance  si  le  courant  baisse,  et  powerokwait  s'il
  revient.
  Voici mon rc.power complet :

       ______________________________________________________________________
       #! /bin/sh
       #
       # rc.power      Ce fichier est execute par init en cas de coupure de courant
       #
       # Version :     @(#)/etc/rc.d/rc.power   1.50    1994-08-10
       #
       # Auteur :      Christian Holtje, <docwhat@uiuc.edu>
       #

         # Definit le chemin
         PATH=/sbin:/etc:/bin:/usr/bin:/sbin/dangerous

         # Regarde comment nous avons ete appele
         case "$1" in
               start)
                       echo "Attention - probleme d'alimentation secteur." | wall
                       # Sauvegarde le niveau de fonctionnement actuel
                       ps | gawk '{ if (($5 == "init") && ($1 == "1")) print $6 }' \
                                | cut -f2 -d[ | cut -f1 -d] \
                                > /tmp/run.level.power
                       /sbin/shutdown -h +1m
                       ;;
               stop)
                       echo "Alimentation secteur revenue." | wall
                       echo "Tentative d'arret du shutdown." | wall
                       shutdown -c
                       ;;
               *)
                       echo "Usage:  $0 [start|stop]"
                       exit 1
                       ;;
         esac
       ______________________________________________________________________

  Pas mal, non ? En fait, il y a un petit probleme, la... Je n'ai pas eu
  le temps de le trouver... S'il y a un gourou "sh" par ici...

  J'ai  laisse  un  petit  detail  de  cote,  c'est  de   faire   couper
  l'alimentation  par l'onduleur si le PC est arrete courant coupe. Cela
  est realise en ajoutant la ligne suivante a la  fin  de  votre  script
  halt :

         /sbin/backupsd /dev/backups killpower

  Cela va simplement couper l'alimentation si le secteur est coupe.

  *** Tester le tout ***

  C'est juste une petite section pour vous dire :

  SOYEZ PRUDENT !

  Je  vous  recommande  la  sauvegarde  de  vos  partitions  Linux, avec
  plusieurs "sync" avant  de  tester,  et  d'etre  prudent  en  general.
  Evidemment,  je  ne  fais  que  vous  le  recommander. Je n'ai pas ete
  prudent du tout, et j'ai eu a nettoyer  ma  partition  plusieurs  fois
  pendant les tests de ma configuration. Mais elle fonctionne. :-)

  *** Ou l'obtenir ***

  Le SysVInit de Miquel van Smoorenburg's peut se trouver sur :

  sunsite.unc.edu:/pub/Linux/system/Daemons/SysVinit-2.50.tgz

  et une correction pour certains shell bash se trouve juste a cote :

  sunsite.unc.edu:/pub/Linux/system/Daemons/SysVinit-2.50.patch1

  Pour  ce  qui est d'obtenir ce HOWTO, vous pouvez m'envoyer un E-mail,
  docwhat@uiuc.edu avec pour sujet :'request' et le  mot-clef  'backups'
  dans  le  corps  du message (il est possible que j'automatise cela, et
  d'autres choses).

  *** Section des remerciements qui sont dus ***

  Merci a Miquel van  Smoorenburg  <miquels@drinkel.nl.mugnet.org>  pour
  son  superbe  paquetage  SysVInit  et  son powerd.c qui m'ont beaucoup
  aides.

  Christian Holtje <docwhat@uiuc.edu> Documentation backupsd.c  (Ce  qui
  n'est pas de Miquel) rc.power

  Ben  Galliart  <bgallia@orion.it.luc.edu> Le cable Informations sur le
  standard RS-232 Astuces bruyantes (non rapportees ici)

  ______________________________________________________________________
  /*  backupsd.c -- Simple demon pour lire les signaux de coupure de
   *                courant d'un onduleur Back-UPS (d'APC).
   *
   *  Certaines parties proviennent du powerd.c de Miquel van Smoorenburg
   *  D'autres sont originales de Christian Holtje <docwhat@uiuc.edu>
   *  Je crois qu'on peut dire que c'est dans le Domaine Public, simplement
   *  n'oubliez pas de citer les auteurs originaux, la ou c'est necessaire.
   *
   *  Avertissement : Nous ne garantissons RIEN de ce logiciel, ni
   *                  n'assumons aucune responsabilite concernant son
   *                  utilisation, bonne ou mauvaise.
   */

  #include <sys/types.h>
  #include <sys/ioctl.h>
  #include <fcntl.h>
  #include <errno.h>
  #include <stdlib.h>
  #include <unistd.h>
  #include <stdio.h>
  #include <signal.h>

  /* C'est le fichier necessaire pour SysVInit */
  #define PWRSTAT         "/etc/powerstatus"

  void powerfail(int fail);

  /* Programme principal */
  int main(int argc, char **argv)
  {
    int fd;
    int killpwr_bit = TIOCM_RTS;
    int flags;
    int status, oldstat = -1;
    int count = 0;

    if (argc < 2) {
          fprintf(stderr, "Usage: %s <device> [killpower]\n", argv[0]);
          exit(1);
    }

    /* Ouverture du port */
    if ((fd = open(argv[1], O_RDWR | O_NDELAY)) < 0) {
          fprintf(stderr, "%s : %s : %s\n", argv[0], argv[1], sys_errlist[errno]);
          exit(1);
    }

    if ( argc >= 3  && (strcmp(argv[2], "killpower")==0) )
        {
            /* Coupons l'alimentation */
            fprintf(stderr, "%s : Tentative de coupure d'alimentation !\n",
                    argv[0] );
            ioctl(fd, TIOCMBIS, &killpwr_bit);
            /* Hmmm... Si vous avez une coupure d'alimentation, */
            /* ce code ne sera jamais execute */
            exit(0);
        }
    else
        /* Puisqu'il ne faut pas couper l'alimentation, il faut restaurer */
        /* RTS (killpwr_bit) */
        ioctl(fd, TIOCMBIC, &killpwr_bit);

  /* Passe en demon. */
    switch(fork()) {
    case 0: /* Je suis le fils */
                  setsid();
                  break;
    case -1: /* Passage demon manque */
                  fprintf(stderr, "%s : fork impossible.\n", argv[0]);
                  exit(1);
    default: /* Je suis le pere */
                  exit(0);
    }

    /* Maintenant, on scrute la ligne DCD */
    while(1) {
        ioctl(fd, TIOCMGET, &flags);
        status = (flags & TIOCM_CD);
        /* Si DCD est monte, le secteur est coupe */
        if (oldstat == 0 && status != 0) {
            count++;
            if (count > 3) powerfail(0);
            else { sleep(1); continue; }
        }
        /* Si DCD est redescendu, le secteur est revenu */
        if (oldstat > 0 && status == 0) {
            count++;
            if (count > 3) powerfail(1);
            else { sleep(1); continue; }
        }
        /* Reinit du compteur, sauvegarde de l'etat et sleep 2 secondes */
        count = 0;
        oldstat = status;
        sleep(2);
    }
    /* Erreur ! (ne doit pas arriver) */
    return(1);
  }

  /* Signale a init que le courant est coupe ou revenu */
  void powerfail(ok)
  int ok;
  {
    int fd;

    /* Cree le fichier necessaire a init pour shutdown/abandon */
    unlink(PWRSTAT);
    if ((fd = open(PWRSTAT, O_CREAT|O_WRONLY, 0644)) >= 0) {
          if (ok)
                  write(fd, "OK\n", 3);
          else
                  write(fd, "FAIL\n", 5);
          close(fd);
    }
    kill(1, SIGPWR);
  }

  /* Fin de Fichier */
  ______________________________________________________________________

  1111..66..  AAPPCC SSmmaarrtt--UUPPSS,, MMooddeellee 660000

  De nombreuses personnes ont un APC  Smart  UPS.  Pour  autant  que  je
  sache,  aucun  ne  peut  l'utiliser en mode "intelligent" (smart) sous
  Linux. C'est parce qu'APC refuse de diffuser  son  protocole  pour  le
  mode   "intelligent"   sans  un  accord  de  non-diffusion.  Pas  tres
  intelligent de leur part, j'ai dit :).

  La  methode  generale  est  d'acheter  a  un   endroit   qui   diffuse
  l'information.  J'ai entendu dire que Best en fait partie.

  Si  vous  etes  coince  avec  un  APC  Smart-UPS, cous pouvez toujours
  l'utiliser, mais seulement en mode "idiot" comme tout  autre  onduleur
  indique plus haut.

  Voici  quelques  informations sur la fabrication d'un cable pour cela.
  Vous aurez probablement a modifier powerd.c comme indique  en  section
  ``Analyse de cables et modification de powerd.c''

  From dangit@netcom.com Mon Aug 22 10:16:23 1994
  Newsgroups: comp.os.linux.misc
  Subject: Cable de controle d'onduleur pour APC
  From: dangit@netcom.com (Lam Dang)
  Date: Fri, 19 Aug 1994 11:56:28 GMT
  Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  X-Newsreader: TIN [version 1.2 PL1]

  [Pas fait la premiere fois]

  Quelques habitues du Net m'ont demande ce que je savais sur les cables de
  controle d'onduleur. Voici ce que j'ai trouve lorsque j'en ai fait un pour
  mon APC Smart-UPS, modele 600. Je n'en prends pas la responsabilite. C'est
  juste un rapport d'experimentations; utilisez-le a vos risques et perils.
  Veuillez lire le manuel de l'utilisateur d'abord, en particulier section
  6.4 : Port d'Interface d'Ordinateur.

  Le cable est a realiser entre un connecteur DB-9 femelle sur l'onduleur
  et un DB-25 male sur l'ordinateur. Puisque j'ai coupe un bout d'un cable
  9 broches pour le remplacer par un DB-25, j'ai du faire TRES ATTENTION
  AUX NUMEROS DES BROCHES. Le boitier du DB-25 est assez grand pour contenir
  un regulateur de tension et deux resistances. J'ai eu tout le materiel
  (liste ci-dessous) chez Radio-Shack pour moins de 10 dollars. Comme Windows
  NT Advanced Server 3.5 (beta 2) le necessite, l'"interface" entre le
  connecteur de l'onduleur et celui du PC est ainsi :

          Onduleur (DB-9)         PC (DB-25)

          1 (Extinction)           20 (DTR)
          3 (Coupure de secteur)    5 (CTS)
          4 (Commun)                7 (GND)
          5 (Batterie faible)       8 (DCD)
          9 (Masse chassis)         1 (Chassis Ground)

  C'est assez sommaire. Vous pouvez utiliser la broche 6 de l'onduleur au
  lieu de la broche 3 (elles sont inverses l'une de l'autre). La complication
  est de monter les broches collecteur ouvert 3 (ou 6) et 5 de l'onduleur.

  Ce modele APC fournit une sortie non regulee de 24 V continu sur la broche 8.
  La tension de sortie est disponible tout le temps (au moins un peu apres
  que le signal de batterie faible soit monte). L'intensite est limitee a 40mA.
  Pour monter, la broche 8 est l'alimentation d'un regulateur de tension de +5V/
  La sortie de ce regulateur passe dans deux resistances de 4,7kohm. L'autre
  bout d'une resistance connecte les broches 3 (Coupure de courant) de
  l'onduleur et 5 du PC (CTS). Celle de l'autre resistance connecte les broches
  5 de l'onduleur (Batterie faible) et 8 du PC (DCD). Les deux resistances
  consomment environ 2 mA lorsqu'elles sont a la masse.

  Testez votre cable sans le connecter au PC. Lorsque l'onduleur est alimente,
  les broches 5 (CTS) et 8 (DCD) cote PC doivent etre tres proches de 5V, et
  monter la broche 20 pendant 5 secondes ne doit avoir aucun effet. Ensuite,
  retirez la prise secteur de l'onduleur pour le passer sur batteries. La
  broche 5 (CTS) doit tomber a 0V, la broche 8 (DCD) doit rester a l'identique
  a 5V, et monter la broche 20 (DTR), par exemple, en court-circuitant les
  broches 8 et 20, doit eteindre l'onduleur apres environ 15 secondes.

  Conservez l'onduleur sur batterie jusqu'a l'allumage de la diode "Low
  Bettery" du panneau frontal. Maintenant, la broche 8 (DCD) doit descendre
  a 0V aussi. Attendez que la batterie soit rechargee. Ensuite, connectez
  votre cable au PC, desactivez les options de l'onduleur en positionnant
  tous ses interrupteurs sur ON, et lancez votre logiciel favori de controle
  d'onduleur.

  Pour ceux qui veulent l'utiliser avec Windows NT Advanced Server, les
  tensions de l'interface onduleur sont NEGATIVES pour la coupure de secteur
  (sur la broche 3 de l'onduleur) et la batterie faible, et POSITIVE pour
  l'arret a distance. Les parametres de ligne serie comme la vitesse n'ont
  aucune importance.

  Je n'ai pas teste mon cable avec le powerd de Linux. Si vous le faites,
  faites-le nous savoir. J'utilise NT aussi souvent que Linux sur le meme PC.
  Je dois etre conforme au schema d'onduleur de NT. Peut-etre quelqu'un
  pourrait-il modifier powerd pour le faire fonctionner avec et en poster le
  source ici.

  Liste du materiel necessaire :

          1 boitier DB-9 (Radio Shack 276-1510)
          1 connecteur sub-DB-25 femelle (276-1430)
          1 regulateur de tension 7805 +5Vdc (276-1770)
          2 resistances de 4,7kohm
          1 carte a composants perforee (276-148)
          1 cable avec au moins un connecteur 9 broches male.

  Il vous faudra un multimetre, un fer a souder et quelques heures.

  Esperant etre utile,

  Amities,

  --
  Lam Dang
  dangit@netcom.com

  1122..  CCoommmmeenntt eetteeiinnddrree dd''aauuttrreess mmaacchhiinneess ssuurr llee mmeemmee oonndduulleeuurr ??

  Certaines personnes (y  compris  moi-meme),  ont  plusieurs  PC  Linux
  connectes  sur un onduleur. Un PC controle l'onduleur et doit eteindre
  les autres PC lorsque le secteur est  coupe.  Il  y  a  de  nombreuses
  manieres  de  realiser  cela,  toutes  sont  en  "faites-le vous-meme"
  actuellement, et de nombreuses sont simplement hypothetiques.

  Nous supposons que les PC peuvent communiquer sur un reseau.  Appelons
  le  PC  qui  surveille  l'onduleur  le  maitre,  et les autres PC, les
  esclaves.

  1122..11..  MMeetthhooddee ddee ll''eettaatt dduu ppoorrtt

  Configurez un port sur le maitre qui, lorsqu'on y est connecte, envoie
  soit "OK", soit "FAIL", soit "BATLOW" lorsque le courant est la, qu'il
  est coupe, ou que la batterie est faible, respectivement. Montez  cela
  sur  le  port 13 (le port time) sur lequel vous pouvez faire un telnet
  et recevoir l'heure locale.

  Montez sur les esclaves une version de powerd qui lit ce  port  plutot
  que de controler une ligne serie.

  Je  pense  que  c'est  probablement  la  meilleure  methode,  et  j'ai
  l'intention d'upgrader mes systemes pour l'utiliser.

  1122..22..  MMeetthhooddee dd''eemmiissssiioonn eenn ll''aaiirr

  Identique a la  section  ``Methode  de  l'etat  du  port'',  mais  par
  emission d'un message broadcast Ethernet signifiant l'evenement.
  Cela  peut  avoir  des  implications  de securite, puisqu'il peut etre
  {{spoofed}}

  1122..33..  MMeetthhooddee dduu ppsseeuuddoo--llooggiinn

  Configurez les pseudo-login sur les esclaves avec les noms powerok  et
  powerfail,   tous   les   deux   avec   le   meme   UID.   Faites   de
  /etc/powerokscript   le    shell    du    user    powerok,    et    de
  /etc/powerfailscript celui du user powerfail. Sur le maitre, faites en
  sorte que le script /etc/powerokscript  fasse  un  rlogin  sur  chaque
  esclave en tant que user powerok et que le script /etc/powerfailscript
  fasse un rlogin en tant que powerfail sur chaque  esclave.  Placez  un
  fichier  powerfail  pour  autoriser  le  root du master a entrer comme
  users powerok et powerfail sur chaque esclave.

  C'est le systeme que  j'utilise  actuellement.  Malheureusement,  j'ai
  quelques  difficultes  a  faire  que les login distants s'executent et
  rendent la main sans se  bloquer.  Il  faudrait  probablement  que  le
  script /etc/powerfailscript fasse les rsh sur les esclaves en tache de
  fond pour lui eviter de bloquer. Neammoins, je n'ai jamais  obtenu  de
  login  correct  en  tache  de fond. J'ai meme essayes des combinaisons
  complexes comme faire se loger toto sur l'esclave. Tout  ce  que  j'ai
  utilise  avait  des  problemes et se trouvait bloque par un entree tty
  (ou sortie, je ne m'en rappelle plus).

  En plus, cela peut creer des trous de securite.

