<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//FR">
<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <META NAME="GENERATOR" CONTENT="lfparser_2.8">
 <META NAME="LFCATEGORY" CONTENT="Hardware">
 <TITLE>lf186, Hardware: Un bouton d'arr&ecirc;t sur le port s&eacute;rie</TITLE>
<!-- stylesheet added by lfparser: --> 
<style type="text/css">
<!--
 pre { font-familiy:monospace,Courier }
-->
</style>
 
</HEAD>
<BODY bgcolor="#ffffff" text="#000000">
 <!-- this is generated html code. NEVER use this file for your
 translation work. Instead get the file with the same article number
 and .meta.shtml in its name. Translate this meta file and then
 use lfparser program to generate the final article -->
 <!-- lfparser can be obtained from http://main.linuxfocus.org/~guido/dev/lfparser.html -->

<!-- 2pdaIgnoreStart -->

<MAP name="top">
  <AREA shape="rect" coords="367,9,418,30" alt="Sommaire" href="../index.shtml">
  <AREA shape="rect" coords="423,9,457,30" alt="Carte" href="../map.html">
  <AREA shape="rect" coords="463,9,508,30" alt="Index" href="../Themes/index.html">
  <AREA shape="rect" coords="514,9,558,30" alt="Recherche" href="../Search/index.html">
</MAP>
<MAP name="bottom">
  <AREA shape="rect" coords="78,0,163,15" alt="Nouvelles" href="../News/index.shtml">
  <AREA shape="rect" coords="189,0,284,15" alt="Archives" href="../Archives/index.html">
  <AREA shape="rect" coords="319,0,395,15" alt="Liens" href="../Links/index.html">
  <AREA shape="rect" coords="436,0,523,15" alt="A propos" href="../aboutus.html">
</MAP>
<!-- IMAGE HEADER -->
<CENTER>
  <IMG src="../../common/images/Topbar-fr.gif" width="600" height="40" border="0" alt="[Barre Superieure]" ismap usemap="#top" ><BR>
  <IMG src="../../common/images/Bottombar-fr.gif" width="600" height="21" border="0" alt="[Barre Inferieure]" ismap usemap="#bottom">
</CENTER>
<!-- SSI_INFO -->

<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfdynahead ver 1.3 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Ce document est disponible en: <A href="../../English/January2001/article186.shtml">English</a> &nbsp;<A href="../../Castellano/January2001/article186.shtml">Castellano</a> &nbsp;<A href="../../Deutsch/January2001/article186.shtml">Deutsch</a> &nbsp;<A href="../../Francais/January2001/article186.shtml">Francais</a> &nbsp;<A href="../../Italiano/January2001/article186.shtml">Italiano</a> &nbsp;<A href="../../Nederlands/January2001/article186.shtml">Nederlands</a> &nbsp;<A href="../../Russian/January2001/article186.shtml">Russian</a> &nbsp;<A href="../../Turkce/January2001/article186.shtml">Turkce</a> &nbsp;<A href="../../Korean/January2001/article186.shtml">Korean</a> &nbsp;</FONT></TD></TR></TABLE><br>
 

<!-- 2pdaIgnoreStop -->

<!-- SHORT BIO ABOUT THE AUTHOR -->
<TABLE ALIGN=LEFT BORDER=0 hspace=4 vspace=4 WIDTH="30%" >
<TR>
<TD>

<!-- 2pdaIgnoreStart -->
<!-- PALM DOC -->
<TABLE BORDER=0 hspace=4 vspace=4> <TR> <TD>
<font size=1> <img src="../../common/images/2doc.gif" width=34 align=left border=0 height=22 alt="convert to palm"><a href="http://cgi.linuxfocus.org/cgi-bin/2ztxt">Convert to GutenPalm</a><br>or <a href="http://cgi.linuxfocus.org/cgi-bin/2pda">to PalmDoc</a></font>
</TD> </TR> </TABLE>
<!-- END PALM DOC -->
<!-- 2pdaIgnoreStop -->
<br>
<IMG SRC="../../common/images/Guido-S.gif" ALT="[Photo of the Author]" HEIGHT=164 WIDTH=173>
<BR>par  <A HREF="mailto:guido@linuxfocus.org">Guido Socher</A>
<BR><BR>
<I>L&acute;auteur:</I><BR>
<P>Guido est un adepte de Linux de longue date. La plupart du temps il d&eacute;veloppe des logiciels
ou travaille pour Linux<font color="#FF0000">Focus</font>, mais de temps en temps il aime bien concevoir du mat&eacute;riel.
</P>
<BR><i>Sommaire</i>:
<UL>
  <LI><A HREF="#lfindex0">Introduction</A></LI>
  <LI><A HREF="#lfindex1">L'appareil</A></LI>
  <LI><A HREF="#lfindex2">Le port s&eacute;rie</A></LI>
  <LI><A HREF="#lfindex3">Le circuit</A></LI>
  <LI><A HREF="#lfindex4">Le logiciel</A></LI>
  <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=186&lang=fr">Discussion sur cet article</A></LI>
</UL>

</TD></TR></TABLE>
<!-- HEAD OF THE ARTICLE -->
<H2>Un bouton d'arr&ecirc;t sur le port s&eacute;rie</H2>
 <IMG SRC="../../common/images/illustration186.gif" ALT="[Illustration]" HSPACE=10 WIDTH=250 HEIGHT=232>
<!-- ABSTRACT OF THE ARTICLE -->
<P><i>R&eacute;sum&eacute;</i>:
<P>

Dans cet article nous construirons un petit bouton poussoir &agrave; connecter &agrave; votre serveur sur le port s&eacute;rie.
Vous pouvez l'utiliser pour &eacute;teindre la machine quand c'est n&eacute;cessaire.

</P>
<HR size="2" noshade align="right"><BR>
<!-- BODY OF THE ARTICLE -->


<A NAME="lfindex0">&nbsp;</A>
<H2>Introduction</H2>

<p>
Un vrai serveur n'a normalement pas besoin de clavier, d'&eacute;cran ni de souris.
Il lui faut un bon syst&egrave;me d'exploitation, comme Linux, et une carte r&eacute;seau.
Les p&eacute;riph&eacute;riques externes comme une souris ou un clavier ne sont qu'une g&ecirc;ne.
Avec Linux tournant sur la machine, l'administration &agrave; distance est la solution la
meilleure et la plus pratique.
</p>
<p>
Quand j'ach&egrave;te un ordinateur, je v&eacute;rifie toujours qu'il a une option BIOS permettant de
ne pas v&eacute;rifier la pr&eacute;sence du clavier au d&eacute;marrage. Tous les bons fabricants de cartes m&egrave;res
proposent cette option aujourd'hui. Quelques-uns qui pensent encore que les gens ne font
fonctionner que Windows sur leurs machines exigent un clavier au d&eacute;marrage mais c'est une
autre histoire et je ne recommande pas d'acheter ce type de mat&eacute;riel.
</p>
<p>
Un ordinateur ainsi d&eacute;pourvu de clavier et d'&eacute;cran est la machine id&eacute;ale pour un pare-feu,
un serveur web, un serveur de fichiers NFS, un serveur de courrier, une passerelle ADSL, etc.
Nul besoin d'une machine puissante. Un vieux Pentium 100Mhz avec suffisamment
de RAM tiendra facilement le r&ocirc;le de serveur pour une centaine d'autres machines ou plus.
</p>
<p>
C'est bien de ne pas avoir de clavier connect&eacute;, et c'est pratique car
le serveur n'est alors qu'une petite bo&icirc;te qui se loge facilement dans un coin
ou sur une &eacute;tag&egrave;re &agrave; la cave.
Parfois vous aimeriez cependant disposer d'un bouton permettant de l'&eacute;teindre proprement
sans avoir d'abord &agrave; se connecter pour lancer la commande <tt>shutdown</tt>.
Peut-&ecirc;tre parce que vous &ecirc;tes d&eacute;j&agrave; dans la pi&egrave;ce du serveur et que
la plus proche station de travail est &agrave; 100&nbsp;m de l&agrave;, ou bien parce que quelqu'un
a l'acc&egrave;s physique au serveur mais ne connait pas le mot de passe root alors qu'il a
besoin d'&eacute;teindre l'ordinateur avant de couper l'alimentation &eacute;lectrique.
</p>
<p>
Couper simplement le courant n'est pas une bonne id&eacute;e car vous risquez de perdre des
donn&eacute;es et la v&eacute;rification du disque au red&eacute;marrage prend ensuite beaucoup de temps.
</p>
<p>
La solution est le petit et peu co&ucirc;teux appareil s&eacute;rie pr&eacute;sent&eacute; dans cet article.
</p>

<A NAME="lfindex1">&nbsp;</A>
<H2>L'appareil</H2>

Nous allons contruire un petit appareil avec 2 DELs et un bouton-poussoir.
Une DEL verte indique que le bouton-poussoir est actif et une DEL jaune clignotant
lentement indique que le serveur est en service ou encore en cours d'extinction.
Pour &eacute;teindre le serveur il faut presser le bouton pendant 3 secondes.
<br>
<br>
Quand vous appuyez sur le bouton, la DEL verte s'&eacute;teint indiquant ainsi que le processus
d'arr&ecirc;t est en cours. La commande <tt>/sbin/shutdown -t2 -h now</tt> s'ex&eacute;cute alors.
La DEL jaune continue &agrave; clignoter tant que le serveur est en phase d'arr&ecirc;t.
Quand la DEL jaune arr&ecirc;te de clignoter, alors vous devez attendre encore 10 secondes
avant d'&eacute;teindre l'ordinateur. La DEL jaune s'&eacute;teint quand tous les processus sont tu&eacute;s et
que les disques durs sont en cours de "d&eacute;mountage"
<br>
Si votre ordinateur supporte l'extinction automatique, alors ne vous pr&eacute;occupez pas
des 10 secondes. Attendez simplement qu'il s'arr&ecirc;te tout seul.

<A NAME="lfindex2">&nbsp;</A>
<H2>Le port s&eacute;rie</H2>


Ce qui est int&eacute;ressant avec l'interface s&eacute;rie, c'est qu'elle a certaines broches qu'il est possible de
contr&ocirc;ler via des appels syst&egrave;me ioctl. Cela signifie qu'il est inutile de modifier quoi que ce
soit dans le noyau pour contr&ocirc;ler une DEL connect&eacute;e au port s&eacute;rie ou pour lire l'&eacute;tat d'un
bouton-poussoir.
Le port s&eacute;rie dispose de juste assez de puissance pour deux DELs basse tension.
Nous utiliserons les broches RTS et DTR pour connecter les DELs et la broche Carrier Detect sera
utilis&eacute;e pour lire l'&eacute;tat du bouton-poussoir.
<br>
<img src="../../common/images/article186/9pin232.gif" alt="9 broches D-SUB M&acirc;le" width="83" height="65" align=right>

<p>9 broches D-SUB M&acirc;le sur l'ordinateur.

<table bgcolor="#f8dca8" border="1">
    <tr>
        <th>connecteur 9 broches</th>
        <th>connecteur 25 broches</th>
        <th>Nom</th>
        <th>Dir</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>1</td>
        <td>8</td>
        <td>CD</td>
        <td>entr&eacute;e</td>
        <td>Carrier Detect</td>
    </tr>
    <tr>
        <td>2</td>
        <td>3</td>
        <td>RXD</td>
        <td>entr&eacute;e</td>
        <td>R&eacute;ception de donn&eacute;es</td>
    </tr>
    <tr>
        <td>3</td>
        <td>2</td>
        <td>TXD</td>
        <td>sortie</td>
        <td>Transmission de donn&eacute;es</td>
    </tr>
    <tr>
        <td>4</td>
        <td>20</td>
        <td>DTR</td>
        <td>sortie</td>
        <td>Data Terminal pr&ecirc;t</td>
    </tr>
    <tr>
        <td>5</td>
        <td>7</td>
        <td>GND</td>
        <td>--</td>
        <td>Masse</td>
    </tr>
    <tr>
        <td>6</td>
        <td>6</td>
        <td>DSR</td>
        <td>entr&eacute;e</td>
        <td>Data Set Ready</td>
    </tr>
    <tr>
        <td>7</td>
        <td>4</td>
        <td>RTS</td>
        <td>sortie</td>
        <td>Request to Send</td>
    </tr>
    <tr>
        <td>8</td>
        <td>5</td>
        <td>CTS</td>
        <td>entr&eacute;e</td>
        <td>Clear to Send</td>
    </tr>
    <tr>
        <td>9</td>
        <td>22</td>
        <td>RI</td>
        <td>entr&eacute;e</td>
        <td>Ring Indicator</td>
    </tr>
</table>
</p>


<A NAME="lfindex3">&nbsp;</A>
<H2>Le circuit</H2>

<p>
Vous avez besoin des pi&egrave;ces suivantes pour construire ce bouton d'arr&ecirc;t avec des DELs.
<ul>
 <li>1 DEL verte basse puissance (une DEL normale fonctionnera aussi mais ne sera pas aussi lumineuse)
 <li>1 DEL jaune basse puissance
 <li>2 r&eacute;sistors 1,5K Ohm
 <li>1 r&eacute;sistor 6,8K Ohm
 <li>1 petit bouton-poussoir
 <li>1 connecteur s&eacute;rie femelle RS232 avec c&acirc;ble
</ul>

<img src="../../common/images/article186/circuit.gif" alt="sch&eacute;ma du circuit" width="226" height="180" align=right>
Les pi&egrave;ces sont interconnect&eacute;es comme indiqu&eacute; sur le sch&eacute;ma.
Niveaux de voltage sur les ports s&eacute;rie : +/- 10&nbsp;Volts.
Les r&eacute;sistors de 1,5K Ohm sont exactement ce qu'il faut pour des DELs basse puissance mais
des DELs normales fonctionneront &eacute;galement. Je ne recommande pas de changer les r&eacute;sistors
ou d'utiliser une alimentation ext&eacute;rieure car les puces de contr&ocirc;le du port s&eacute;rie
font partie de la carte-m&egrave;re et si vous les grillez vous devrez changer la carte-m&egrave;re enti&egrave;re.
</p>
<br>
<center><img src="../../common/images/article186/board.gif" alt="pcb" width="180" height="280"> </center>
<p>
L'image ci-dessus montre le circuit grav&eacute; sur la carte. Je n'ai pas de plan pr&eacute;cis &agrave; vous fournir parce
que je pr&eacute;f&egrave;re dessiner de petits circuits directement &agrave; la main sur la carte avec de l'encre r&eacute;sistante
&agrave; la gravure.
</p>
<p>
Le circuit final avec toutes les pi&egrave;ces est montr&eacute; sur l'image du haut de l'article.
Vous pouvez percer avec soin trois trous dans le panneau de fa&ccedil;ade de votre serveur.
Deux trous de 3&nbsp;mm pour les DELs et un pour visser dans le bouton-poussoir.
Le circuit entier est tr&egrave;s l&eacute;ger et la vis du bouton-poussoir sera suffisante pour le maintenir.
</p>

<A NAME="lfindex4">&nbsp;</A>
<H2>Le logiciel</H2>

Le logiciel est un petit daemon qui peut &ecirc;tre lanc&eacute; par un script depuis <tt>/etc/rc.d/rc3.d/</tt>.
<br>Il utilise le ioctl (fd, TIOCMSET,...) et les fonctions ioctl (fd, TIOCMGET, ...) pour lire et &eacute;crire
sur le port s&eacute;rie.
<br>Vous pouvez <a href="../../common/src/article186/index.html">t&eacute;l&eacute;charger sled-0.1.tar.gz</a>.
Un makefile et des instructions pour l'installation sont incluses.

<p>Bonne soudure&nbsp;!</p>



<!-- vim: set sw=2 ts=2 et: -->

<!-- 2pdaIgnoreStart -->
<A NAME="talkback">&nbsp;</a>
<h2>Discussion sur cet article</h2>
Chaque article poss&egrave;de sa page de discussion. Vous pouvez y soumettre un commentaire ou lire ceux d&acute;autres lecteurs:
<center>
<table border="0"  CELLSPACING="2" CELLPADDING="1">
 <tr BGCOLOR="#C2C2C2"><td align=center>
  <table border="3"  CELLSPACING="2" CELLPADDING="1">
   <tr BGCOLOR="#C2C2C2"><td align=center>
    <A href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=186&lang=fr"><b>&nbsp;page de discussion&nbsp;</b></a>
   </td></tr></table>
</td></tr></table>
</center>

<HR size="2" noshade>
<!-- ARTICLE FOOT -->
<CENTER><TABLE WIDTH="95%">
<TR><TD ALIGN=CENTER BGCOLOR="#9999AA">
<A HREF="../../common/lfteam.html">Site Web maintenu par l&acute;&eacute;quipe d&acute;&eacute;dition LinuxFocus</A>
<BR><FONT COLOR="#FFFFFF">&copy; Guido Socher, <a href="../../common/copy.html">FDL</a> <BR><a href="http://www.linuxfocus.org">LinuxFocus.org</a></FONT>
<BR><a href="http://cgi.linuxfocus.org/cgi-bin/lfcomment?lang=fr&article=article186.html" target="_TOP">Cliquez ici pour signaler une erreur ou envoyer un commentaire à Linuxfocus</A><BR></TD>
<TD BGCOLOR="#9999AA"><!-- TRANSLATION INFO -->
<font size=2>Translation information:</font><TABLE>
<tr><td><font size=2>en</font></td>
    <td><font size=2>-&gt;</font></td>
    <td><font size=2>--</font></td>
    <td><font size=2><a href="mailto:guido@linuxfocus.org"><FONT COLOR="#FFFFFF">Guido Socher</FONT></a></font></td>
</tr>
<tr><td><font size=2>en</font></td>
    <td><font size=2>-&gt;</font></td>
    <td><font size=2>fr</font></td>
    <td><font size=2><a href="mailto:jean.peyratout@wanadoo.fr"><FONT COLOR="#FFFFFF">Jean Peyratout</FONT></a></font></td>
</tr>
</TABLE></TD>
</TR></TABLE></CENTER>
<p><font size=1>2001-03-18, generated by lfparser version 2.8</font></p>
<!-- 2pdaIgnoreStop -->
</BODY>
</HTML>