<!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êt sur le port sé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> <A href="../../Castellano/January2001/article186.shtml">Castellano</a> <A href="../../Deutsch/January2001/article186.shtml">Deutsch</a> <A href="../../Francais/January2001/article186.shtml">Francais</a> <A href="../../Italiano/January2001/article186.shtml">Italiano</a> <A href="../../Nederlands/January2001/article186.shtml">Nederlands</a> <A href="../../Russian/January2001/article186.shtml">Russian</a> <A href="../../Turkce/January2001/article186.shtml">Turkce</a> <A href="../../Korean/January2001/article186.shtml">Korean</a> </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´auteur:</I><BR> <P>Guido est un adepte de Linux de longue date. La plupart du temps il développe des logiciels ou travaille pour Linux<font color="#FF0000">Focus</font>, mais de temps en temps il aime bien concevoir du maté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é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êt sur le port série</H2> <IMG SRC="../../common/images/illustration186.gif" ALT="[Illustration]" HSPACE=10 WIDTH=250 HEIGHT=232> <!-- ABSTRACT OF THE ARTICLE --> <P><i>Résumé</i>: <P> Dans cet article nous construirons un petit bouton poussoir à connecter à votre serveur sur le port série. Vous pouvez l'utiliser pour éteindre la machine quand c'est nécessaire. </P> <HR size="2" noshade align="right"><BR> <!-- BODY OF THE ARTICLE --> <A NAME="lfindex0"> </A> <H2>Introduction</H2> <p> Un vrai serveur n'a normalement pas besoin de clavier, d'écran ni de souris. Il lui faut un bon système d'exploitation, comme Linux, et une carte réseau. Les périphériques externes comme une souris ou un clavier ne sont qu'une gêne. Avec Linux tournant sur la machine, l'administration à distance est la solution la meilleure et la plus pratique. </p> <p> Quand j'achète un ordinateur, je vérifie toujours qu'il a une option BIOS permettant de ne pas vérifier la présence du clavier au démarrage. Tous les bons fabricants de cartes mè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émarrage mais c'est une autre histoire et je ne recommande pas d'acheter ce type de matériel. </p> <p> Un ordinateur ainsi dépourvu de clavier et d'écran est la machine idé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ôle de serveur pour une centaine d'autres machines ou plus. </p> <p> C'est bien de ne pas avoir de clavier connecté, et c'est pratique car le serveur n'est alors qu'une petite boîte qui se loge facilement dans un coin ou sur une étagère à la cave. Parfois vous aimeriez cependant disposer d'un bouton permettant de l'éteindre proprement sans avoir d'abord à se connecter pour lancer la commande <tt>shutdown</tt>. Peut-être parce que vous êtes déjà dans la pièce du serveur et que la plus proche station de travail est à 100 m de là, ou bien parce que quelqu'un a l'accès physique au serveur mais ne connait pas le mot de passe root alors qu'il a besoin d'éteindre l'ordinateur avant de couper l'alimentation électrique. </p> <p> Couper simplement le courant n'est pas une bonne idée car vous risquez de perdre des données et la vérification du disque au redémarrage prend ensuite beaucoup de temps. </p> <p> La solution est le petit et peu coûteux appareil série présenté dans cet article. </p> <A NAME="lfindex1"> </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 éteindre le serveur il faut presser le bouton pendant 3 secondes. <br> <br> Quand vous appuyez sur le bouton, la DEL verte s'éteint indiquant ainsi que le processus d'arrêt est en cours. La commande <tt>/sbin/shutdown -t2 -h now</tt> s'exécute alors. La DEL jaune continue à clignoter tant que le serveur est en phase d'arrêt. Quand la DEL jaune arrête de clignoter, alors vous devez attendre encore 10 secondes avant d'éteindre l'ordinateur. La DEL jaune s'éteint quand tous les processus sont tués et que les disques durs sont en cours de "démountage" <br> Si votre ordinateur supporte l'extinction automatique, alors ne vous préoccupez pas des 10 secondes. Attendez simplement qu'il s'arrête tout seul. <A NAME="lfindex2"> </A> <H2>Le port série</H2> Ce qui est intéressant avec l'interface série, c'est qu'elle a certaines broches qu'il est possible de contrôler via des appels système ioctl. Cela signifie qu'il est inutile de modifier quoi que ce soit dans le noyau pour contrôler une DEL connectée au port série ou pour lire l'état d'un bouton-poussoir. Le port sé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ée pour lire l'état du bouton-poussoir. <br> <img src="../../common/images/article186/9pin232.gif" alt="9 broches D-SUB Mâle" width="83" height="65" align=right> <p>9 broches D-SUB Mâ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ée</td> <td>Carrier Detect</td> </tr> <tr> <td>2</td> <td>3</td> <td>RXD</td> <td>entrée</td> <td>Réception de données</td> </tr> <tr> <td>3</td> <td>2</td> <td>TXD</td> <td>sortie</td> <td>Transmission de données</td> </tr> <tr> <td>4</td> <td>20</td> <td>DTR</td> <td>sortie</td> <td>Data Terminal prê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é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ée</td> <td>Clear to Send</td> </tr> <tr> <td>9</td> <td>22</td> <td>RI</td> <td>entrée</td> <td>Ring Indicator</td> </tr> </table> </p> <A NAME="lfindex3"> </A> <H2>Le circuit</H2> <p> Vous avez besoin des pièces suivantes pour construire ce bouton d'arrê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ésistors 1,5K Ohm <li>1 résistor 6,8K Ohm <li>1 petit bouton-poussoir <li>1 connecteur série femelle RS232 avec câble </ul> <img src="../../common/images/article186/circuit.gif" alt="schéma du circuit" width="226" height="180" align=right> Les pièces sont interconnectées comme indiqué sur le schéma. Niveaux de voltage sur les ports série : +/- 10 Volts. Les résistors de 1,5K Ohm sont exactement ce qu'il faut pour des DELs basse puissance mais des DELs normales fonctionneront également. Je ne recommande pas de changer les résistors ou d'utiliser une alimentation extérieure car les puces de contrôle du port série font partie de la carte-mère et si vous les grillez vous devrez changer la carte-mère entiè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é sur la carte. Je n'ai pas de plan précis à vous fournir parce que je préfère dessiner de petits circuits directement à la main sur la carte avec de l'encre résistante à la gravure. </p> <p> Le circuit final avec toutes les pièces est montré sur l'image du haut de l'article. Vous pouvez percer avec soin trois trous dans le panneau de façade de votre serveur. Deux trous de 3 mm pour les DELs et un pour visser dans le bouton-poussoir. Le circuit entier est très léger et la vis du bouton-poussoir sera suffisante pour le maintenir. </p> <A NAME="lfindex4"> </A> <H2>Le logiciel</H2> Le logiciel est un petit daemon qui peut être lancé 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 écrire sur le port série. <br>Vous pouvez <a href="../../common/src/article186/index.html">télécharger sled-0.1.tar.gz</a>. Un makefile et des instructions pour l'installation sont incluses. <p>Bonne soudure !</p> <!-- vim: set sw=2 ts=2 et: --> <!-- 2pdaIgnoreStart --> <A NAME="talkback"> </a> <h2>Discussion sur cet article</h2> Chaque article possède sa page de discussion. Vous pouvez y soumettre un commentaire ou lire ceux d´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> page de discussion </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´équipe d´édition LinuxFocus</A> <BR><FONT COLOR="#FFFFFF">© 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>-></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>-></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>