Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1361

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>user-enh</TITLE>
</HEAD>
<BODY>
<A NAME="hardware"></A> <H1>6. <A NAME="s6"></A>user-enhNotes sur le mat&eacute;riel</H1>
<P>
<A HREF="UPS-HOWTO.html#toc6">Contenu de cette section</A></P>

<A NAME="make-cable"></A> <H2>6.1 <A NAME="ss6.1"></A> Comment r&eacute;aliser un c&acirc;ble&nbsp;?</H2>

<P>Cette section est juste compos&eacute;e de messages que j'ai vus sur le Net.
Je ne l'ai pas r&eacute;alis&eacute;, donc je ne peux parler d'exp&eacute;rience.
Si quelqu'un le peut, qu'il &eacute;crive cette section pour moi :).
Voir aussi le message concernant le GPS1000 dans la section
<A HREF="UPS-HOWTO-8.html#gps1000">GPS1000 d'ACCODATA</A>

pour ne pas citer toutes les donn&eacute;es sp&eacute;cifiques de la section
<A HREF="UPS-HOWTO-8.html#ups-specific">Informations sur un certain nombre d'onduleurs</A>
</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
   &gt;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 &lt;1993Jul15.184450.5193@excaliber.uucp&gt;
   joel@rac1.wam.umd.edu (Joel M. Hoffman) ecrit_:
   &gt;Je ne vais pas tarder a acheter un onduleur, et ai remarque que certains
   &gt;d'entre eux ont des interfaces reseau pour prevenir celui-ci lorsque le
   &gt;courant est coupe.
   &gt;
   &gt;Y a-t-il une telle interface pour Linux ?
   &gt;
   &gt;Merci..
   &gt;
   &gt;-Joel
   &gt;(joel@wam.umd.edu)
   &gt;

   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.
   Tu as peut-etre vu que dans le dernier fichier d'en-tete &lt;signal.h&gt;,
   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 &quot;powerd&quot; 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 &quot;powerd.c&quot;, 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.
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P><CODE>--</CODE></P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
   Miquel van Smoorenburg, &lt;miquels@cistron.nl.mugnet.org&gt;
   Ibmio.com: cannot open CONFIG.SYS: file handle broke off.


   &gt;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 &lt;9307174330@caution.cistron.nl.mugnet.org&gt;
   miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg) ecrit :
   &gt;La methode de connexion de l'onduleur a la ligne serie est decrite dans le
   &gt;source &quot;powerd.c&quot;, mais je vais le dessiner ici pour explications_:

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

   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

   --
   &lt;=====================================================================&gt;
   Danny ter Haar  &lt;dannyth@hacktic.nl&gt; or &lt;danny@cistron.nl.mugnet.org&gt;
   Robins law #103: 'a couple of lightyears can't part good friends'
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P></P>

<A NAME="hacking"></A> <H2>6.2 <A NAME="ss6.2"></A> Analyse de c&acirc;bles et modification de powerd.c</H2>

<P>Essayez d'obtenir la documentation des c&acirc;bles que votre revendeur d'onduleurs
fournit. En particulier, recherchez&nbsp;:</P>
<P>
<UL>
<LI>quelles lignes doivent &ecirc;tre maintenues hautes&nbsp;;</LI>
<LI>quelle(s) ligne(s) &eacute;teint(gnent) l'onduleur&nbsp;;</LI>
<LI>quelles lignes l'onduleur modifie pour indiquer que&nbsp;:
<UL>
<LI>le courant est coup&eacute;,</LI>
<LI>la batterie est faible.</LI>
</UL>
</LI>
</UL>
</P>
<P>Il vous faut ensuite modifier <CODE>powerd.c</CODE> en cons&eacute;quence, ou utiliser
l'un des paquetages configurables cit&eacute;s plus haut (voir
<EM>genpower-1.0.1.tgz</EM>, <EM>power-2.0.tar.gz</EM> ou <EM>upsd-1.0.tgz</EM>
d&eacute;crits dans la section
<A HREF="UPS-HOWTO-4.html#software">Logiciels</A>
.
Si vous utilisez l'un des paquetages, suivez les instruction correspondantes.
Si vous voulez bidouiller <CODE>powerd.c</CODE>, lisez ce qui suit.</P>
<P>Si vous avez des probl&egrave;mes pour obtenir les informations pr&eacute;cit&eacute;es, ou si
vous voulez juste les contr&ocirc;ler (une <EM>bonne</EM> id&eacute;e), le programme suivant
peut vous y aider.
C'est une version bidouill&eacute;e de powerd.c.
Il vous permet de positionner les signaux du port depuis la ligne de
commande, puis il contr&ocirc;le le port, en affichant l'&eacute;tat des signaux
chaque seconde.
Je l'ai utilis&eacute; en "upscheck /dev/cua1 2" (par exemple) pour monter le
deuxi&egrave;me bit (<EM>DTR</EM>) et descendre les autres.
Le nombre en base 2 indique les bits &agrave; monter, ainsi par exemple pour
monter les bits 1, 2 et 3 (et descendre les autres), utilisez 7.
Voir le code pour les d&eacute;tails.</P>
<P>Voici le programme (non test&eacute;) upscheck.c.
Il n'est pas test&eacute; car j'ai modifi&eacute; la version que j'avais utilis&eacute;e au
d&eacute;part pour le rendre plus clair, et que je ne peux tester la nouvelle
version pour le moment.</P>
<P>NdT&nbsp;: La traduction des commentaires et messages peut aussi avoir
alt&eacute;r&eacute; le comportement du programme.</P>
<P>
<BLOCKQUOTE><CODE>
<HR>
<PRE>
/*
 * upscheck     Controle comment l'ordinateur et l'onduleur communiquent
 *
 * Usage:       upscheck &lt;peripherique&gt; &lt;bits a monter&gt;
 *              Par exemple, upscheck /dev/cua4 4 pour monter le bit 3 et
 *              controler /dev/cua4.
 *
 * Author:      Harvey J. Stein &lt;hjstein@math.huji.ac.il&gt;
 *              (mais en realite juste une modification mineure de Miquel van
 *              Smoorenburg's &lt;miquels@drinkel.nl.mugnet.org&gt; powerd.c
 *
 * Version:     1.0 19940802
 *
 */
#include &lt;sys/types.h&gt;
#include &lt;sys/ioctl.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;errno.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;unistd.h&gt;
#include &lt;stdio.h&gt;
#include &lt;signal.h&gt;

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

/*  Ces parametres TIOCM_* sont definis dans &lt;linux/termios.h&gt;, 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 &lt; 2) {
        fprintf(stderr, &quot;Usage: upscheck &lt;peripherique&gt; &lt;bits-a-positionner&gt;\n&quot;);
        exit(1);
  }

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

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

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

    sleep(1);

    /* Recupere les bits actuellement positionnes */
    ioctl(fd, TIOCMGET, &amp;amp;flags);
    fprintf(stderr, &quot;Les signaux sont %o.\n&quot;, 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 &amp; TIOCM_CTS) 
      {
        pc = 0 ;
        fprintf(stderr, &quot;Le courant est la.\n&quot;);
      }
    else 
      { 
        pc = pc + 1 ; 
        fprintf(stderr, &quot;Le courant est coupe.\n&quot;);
      }
    }

  close(fd);
}
</PRE>
<HR>
</CODE></BLOCKQUOTE>
</P>
<P></P>

<A NAME="serial-port"></A> <H2>6.3 <A NAME="ss6.3"></A> Assignement des broches du port s&eacute;rie</H2>

<P>La section qui pr&eacute;c&egrave;de pr&eacute;suppose la connaissance de la correspondance entre
les signaux de terminal et les broches du port s&eacute;rie.
Voici une r&eacute;f&eacute;rence de cette correspondance, reprise du document de David Tal&nbsp;:
"C&acirc;bles et connecteurs fr&eacute;quemment utilis&eacute;s".
J'inclus un diagramme illustrant les connecteurs, et une table donnant la
corresopondance entre les num&eacute;ros de broches et les signaux de ligne de
terminal.</P>
<P>Si vous avez besoin d'une r&eacute;f&eacute;rence g&eacute;n&eacute;rale sur le brochage de c&acirc;bles,
celle de David Tal en est une bonne, mais je n'arrive plus &agrave; localiser ce
document sur le Net.
Mais j'ai trouv&eacute; un bon livre de remplacement, c'est
<A HREF="http://www.blackdown.org/~hwb/hwb.html">The Hardware Book</A>
.</P>
<P>NdT&nbsp;: si un lecteur fran&ccedil;ais veut proposer une r&eacute;f&eacute;rence dans la langue de
Moli&egrave;re, qu'il n'h&eacute;site pas &agrave; me contacter.</P>
<P>Autres sites utiles&nbsp;:
<UL>
<LI>
<A HREF="http://star.sols.pt/docs/yost.html">Yost Serial Device Wiring Standard</A>

qui contient des informations int&eacute;ressantes sur les connecteurs RJ-45 et
les c&acirc;bles quatre paires pour toutes les connexions s&eacute;rie&nbsp;;</LI>
<LI>
<A HREF="http://www.stokely.com/stokely">Stokely consulting</A>

pour l'information g&eacute;n&eacute;rale sur Unix et en particulier leur Unix Serial
Port Resources&nbsp;;</LI>
<LI>
<A HREF="http://www.uwsg.indiana.edu/usail/edcert">Unix Workstation System Administration Education Certification</A>

qui contient&nbsp;:
<A HREF="http://www.uwsg.indiana.edu/usail/peripherals/rs232">RS-232: Connectors and Cables</A>
.</LI>
</UL>
</P>
<P>Incidemment, il semble que le paquetage Linuxdoc-sgml ne formate plus les
tableaux tr&egrave;s bien en sortie <EM>html</EM>.
Si vous voulez pouvoir lire la table qui suit, vous devrez probablement
vous r&eacute;f&eacute;rer &agrave; la version <EM>DVI</EM> ou texte simple du pr&eacute;sent document.</P>
<P>
<TABLE>
<BR>
DB-25  DB-9  Nom  EIA  CCITT  DTE-DCE Description <BR>
Broche Broche     <BR>
<HR>
1   FG  AA  101  --- Masse de chassis GND<BR>
2  3  TD  BA  103  ---&gt; Donn&eacute;es transmises, TxD<BR>
3  2  RD  BB  104  &lt;--- Donn&eacute;es re&ccedil;ues, RxD<BR>
4  7  RTS  CA  105  ---&gt; Requ&ecirc;te pour envoyer<BR>
5  8  CTS  CB  106  &lt;--- Pr&ecirc;t &agrave; envoyer<BR>
6  6  DSR  CC  107  &lt;--- Jeu de donn&eacute;es pr&ecirc;t<BR>
7  5  SG  AB  102  ---- Masse de signal, GND<BR>
8  1  DCD  CF  109  &lt;--- D&eacute;tection de porteuse<BR>
9   --  --  -  - Tension positive continue de test<BR>
10   --  --  -  - Tension n&eacute;gative continue de test<BR>
11   QM  --  -  &lt;--- Mode d'&eacute;galisation<BR>
12   SDCD  SCF  122  &lt;--- D&eacute;tection de porteuse secondaire<BR>
13   SCTS  SCB  121  &lt;--- Pr&ecirc;t &agrave; envoyer secondaire<BR>
14   STD  SBA  118  ---&gt; Donn&eacute;es transmise secondaires<BR>
15   TC  DB  114  &lt;--- Signal d'horloge de l'&eacute;metteur<BR>
16   SRD  SBB  119  &lt;--- Signal d'horloge secondaire du r&eacute;cepteur<BR>
17   RC  DD  115  ---&gt; Signal d'horloge du r&eacute;cepteur<BR>
18   DCR  --  -  &lt;--- Horloge divis&eacute;e du r&eacute;cepteur<BR>
19   SRTS  SCA  120  ---&gt; Requ&ecirc;te pour &eacute;mettre secondaire<BR>
20  4  DTR  CD  108.2 ---&gt; Terminal de donn&eacute;es pr&ecirc;t<BR>
21   SQ  CG  110  &lt;--- D&eacute;tection de qualit&eacute; de signal<BR>
22  9  RI  CE  125  &lt;--- Indicateur de sonnerie<BR>
23   --  CH  111  ---&gt; S&eacute;lecteur de vitesse de donn&eacute;es<BR>
24   --  CI  112  &lt;--- S&eacute;lecteur de vitesse de donn&eacute;es<BR>
25   TC  DA  113  &lt;--- Horloge transmise<BR>

<CAPTION>   Assignement des broches de port s&eacute;rie (RS-232C), DB-25 et DB-9</CAPTION>
</TABLE>
</P>
<P>
<HR>
<PRE>
        1                         13         1         5
      _______________________________      _______________
      \  . . . . . . . . . . . . .  /      \  . . . . .  /    Connecteurs
       \  . . . . . . . . . . . .  /        \  . . . .  /     RS-232 vus de
        ---------------------------          -----------      l'arri&amp;egrave;re de
        14                      25            6       9       l'ordinateur

   DTE : Equipement terminal de donn&amp;eacute;es (i.e. ordinateur)
   DCE : Equipement de communication de donn&amp;eacute;es (i.e. modem)
   RxD : Donn&amp;eacute;es re&amp;ccedil;ues; 1 est transmis &quot;bas&quot;, 0 &quot;haut&quot;
   TxD : Donn&amp;eacute;es envoy&amp;eacute;es; 1 est transmis &quot;bas&quot;, 0 &quot;haut&quot;
   DTR : DTE annonce qu'il est aliment&amp;eacute; et pr&amp;ecirc;t &amp;agrave; communiquer
   DSR : DCE annonce qu'il est pr&amp;ecirc;t &amp;agrave; communiquer; &quot;bas&quot; raccroche le modem
   RTS : DTE demande &amp;agrave; DCE la permission d'envoyer des donn&amp;eacute;es
   CTS : DCE agr&amp;eacute;e la RTS
   RI  : DCE indique au DTE qu'il tente d'&amp;eacute;tablir une connexion
   DCD : DCE annonce qu'une connexion est &amp;eacute;tablie
</PRE>
<HR>
</P>
<P></P>

<A NAME="ioctl"></A> <H2>6.4 <A NAME="ss6.4"></A> Correspondance entre ioctl et RS232</H2>

<P>Puisque vous pouvez aussi devoir modifier powerd.c pour monter et descendre
les signaux corrects, vous pouvez aussi avoir besoin des valeurs num&eacute;riques
des diff&eacute;rents signaux de terminal.
Ils peuvent &ecirc;tre trouv&eacute;s dans
<CODE>/usr/include/linux/termios.h</CODE>,
mais sont reproduits ici comme r&eacute;f&eacute;rence.
Puisqu'ils peuvent &ecirc;tre sujets &agrave; changements, vous auriez avantage &agrave; les
v&eacute;rifier avec ledit fichier.</P>
<P>
<BLOCKQUOTE><CODE>
<HR>
<PRE>
/* 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
</PRE>
<HR>
</CODE></BLOCKQUOTE>
</P>
<P>Notez que la troisi&egrave;me colonne est en hexad&eacute;cimal.</P>
<P></P>
<P></P>

<HR>
<P>
Chapitre <A HREF="UPS-HOWTO-7.html">suivant</A>,
Chapitre <A HREF="UPS-HOWTO-5.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="UPS-HOWTO.html#toc6">ce chapitre</A>,
 <A HREF="UPS-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="UPS-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>