<HTML> <HEAD> <TITLE>Comment puis-je appeler et être appelé avec mon modem et <CODE>getty_ps</CODE> ?</TITLE> </HEAD> <BODY> <H1>6. <A NAME="s6"></A>Comment puis-je appeler et être appelé avec mon modem et <CODE>getty_ps</CODE> ?</H1> <P> <A HREF="Serial-HOWTO.html#toc6">Contenu de cette section</A></P> <P>Faites déjà fonctionner correctement votre modem en mode appelant. Si vous n'avez pas encore lu la section <A HREF="Serial-HOWTO-5.html#dialout">Comment puis-je appeler avec mon modem ?</A> , <EM>lisez-la maintenant</EM> ! Elle contient des informations importantes sur la configuration. Il <EM>n'est pas nécessaire</EM> de lire cette section si vous souhaitez juste <EM>appeler</EM> avec votre modem.</P> <P></P> <H2>6.1 <A NAME="ss6.1"></A> Configuration en modes appelant et appelé</H2> <P>Encore une fois, le modem <EM>doit</EM> être spécialement configuré (avec les commandes <CODE>AT</CODE>) afin de pouvoir être utilisé aussi bien en appelant qu'en appelé : <BLOCKQUOTE><CODE> <PRE> E1 echo local active en mode commande Q0 envoie les codes de retour V1 envoie les reponses sous la forme de donnees textuelles S0=0 decrochage automatique desactive (uugetty s'en occupe avec l'option WAITFOR) </PRE> </CODE></BLOCKQUOTE> Si ces options ne sont pas sélectionnées, il se peut que la chaîne d'initialisation définie dans le fichier de configuration, ne fonctionne pas. <BLOCKQUOTE><CODE> <PRE> &amp;C1 le signal DCD est haut seulement apres la connexion &amp;S0 DSR est toujours haut un changement d'etat du DTR reinitialise le modem (dependant du fabricant - RTFM) </PRE> </CODE></BLOCKQUOTE> Ces réglages déterminent le comportement du modem au début et à la fin d'un appel.</P> <P>Si votre modem ne permet pas la sauvegarde d'un profil, ces paramètres peuvent être indiqués dans la chaîne d'initialisation du fichier de configuration. Certains modems sont pourvus de commutateurs DIP qui affectent les valeurs des registres. Assurez-vous également qu'ils sont correctement configurés.</P> <P> J'ai débuté une compilation de configurations pour différents modèles de modems. Pour l'instant, j'en ai seulement quelques uns. Ne vous privez donc pas de m'envoyer vos paramétrages opérationnels. Cette collection est récupérable à <CODE> <A HREF="ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs">ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs</A> </CODE>.</P> <P></P> <P>Remarque : pour que mon modem USR Courier V.34 se réinitialise correctement à l'ouverture du signal DTR, je suis obligé de forcer <CODE>&D2</CODE> et <CODE>S13=1</CODE> (le bit 0 du registre S13 est mis à 1). On m'a confirmé que ça fonctionnait aussi sur les modems USR Sportster V.34.</P> <P></P> <P>Remarque : certains modems Supra traitent le signal DCD différement. Dans ce cas, essayez avec <CODE>&C0</CODE> et <EM>non</EM> <CODE>&C1</CODE>. <CODE>&D2</CODE> doit également être positionné afin de gérer correctement le DTR.</P> <P></P> <H2>6.2 <A NAME="ss6.2"></A> Installer <CODE>getty_ps</CODE></H2> <P>Récupérez la dernière version à partir de <CODE> <A HREF="ftp://sunsite.unc.edu:/pub/Linux/system/serial">sunsite.unc.edu:/pub/Linux/system/serial</A> </CODE>. Les versions 2.0.7j et ultérieures sont indispensables pour les hauts débits (57600 and 115200 bps). Vous devez aussi avoir la libc 5.x ou supérieure.</P> <P>Par défaut, <CODE>getty_ps</CODE> est conforme au FSSTND Linux (<EM>File System Standard</EM> - norme de système de fichiers), ce qui implique que les binaires résident dans <CODE>/sbin</CODE>, et les fichiers verrous (<EM>lock files</EM>) dans <CODE>/var/lock</CODE>. Assurez-vous donc que le répertoire <CODE>/var/lock</CODE> existe bien.</P> <P>Si vous ne souhaitez pas la conformité FSSTND, les binaires seront stockés dans <CODE>/etc</CODE>, les fichiers de configuration dans <CODE>/etc/default/{uu}getty.ttyS</CODE><EM>N</EM>, et les fichiers verrous dans <CODE>/usr/spool/uucp</CODE>. Je recommande cette méthode en cas d'utilisation conjointe avec UUCP afin que les fichiers verrous soient bien partagés entre <CODE>getty_ps</CODE> et UUCP.</P> <P> <CODE>getty_ps</CODE> peut aussi utiliser <CODE>syslogd</CODE> pour enregistrer les messages. Reportez-vous aux pages de manuel <CODE>syslogd(1)</CODE> et <CODE>syslog.conf(5)</CODE> pour configurer <CODE>syslogd</CODE>, s'il ne tourne pas déjà. Les messages sont enregistrés avec la priorité LOG_AUTH, les erreurs avec LOG_ERR, et les informations de débogage avec LOG_DEBUG. Si vous ne souhaitez pas utiliser <CODE>syslogd</CODE>, éditez <CODE>tune.h</CODE> dans le répertoire des fichiers source de <CODE>getty_ps</CODE> pour enregistrer les messages dans un fichier, <CODE>/var/adm/getty.log</CODE> par défaut.</P> <P> Vous devez donc décider si vous voulez la conformité FSSTND, les possibilités offertes par syslog, ou une combinaison des deux. Modifiez en conséquence les fichiers <CODE>Makefile</CODE>, <CODE>tune.h</CODE> et <CODE>config.h</CODE>. Il ne reste plus qu'à compiler et installer le paquetage, en suivant les instructions fournies.</P> <P>À partir de maintenant, toutes les références à <CODE>getty</CODE> concerneront <CODE>getty_ps</CODE>, et celles à <CODE>uugetty</CODE> le programme <CODE>uugetty</CODE> fourni avec le paquetage <CODE>getty_ps</CODE>. Ces instructions ne sont pas applicables à <CODE>mgetty</CODE> ou <CODE>agetty</CODE>.</P> <P></P> <H2>6.3 <A NAME="ss6.3"></A> Configurer <CODE>uugetty</CODE></H2> <P><CODE>uugetty</CODE>, qui assure d'importantes vérifications sur les fichiers verrous, sera utilisé pour se connecter sur votre modem. Mettez à jour <CODE>/etc/gettydefs</CODE> pour inclure les différentes entrées pour les modems, si elles ne sont pas déjà présentes (remarquez que ces entrées sont rebouclées sur elles-mêmes et autorisent donc différentes vitesses - une ligne vide est nécessaire entre deux entrées) : <BLOCKQUOTE><CODE> <PRE> # Entrees modem 115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600 57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400 38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200 19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600 9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400 2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #115200 </PRE> </CODE></BLOCKQUOTE> </P> <P>Si votre modem permet des vitesses de 9600 bps ou plus avec compression de données, vous pouvez fixer une vitesse constante pour le port série et laisser le modem choisir la vitesse de connexion. Le fichier <CODE>/etc/gettydefs</CODE> se simplifie et ne nécessite plus qu'une seule ligne pour le modem, par exemple : <BLOCKQUOTE><CODE> <PRE> # vitesse fixe 115200 F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200 </PRE> </CODE></BLOCKQUOTE> </P> <P> Si le contrôle de flux RTS/CTS est activé sur votre modem, le drapeau <CODE>CRTSCTS</CODE> peut être ajouté dans les entrées : <BLOCKQUOTE><CODE> <PRE> # vitesse fixe 115200 avec controle de flux materiel F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200 </PRE> </CODE></BLOCKQUOTE> </P> <P>Si vous le désirez, <CODE>uugetty</CODE> peut imprimer quelques informations sur le système dans la bannière de login. Dans mes exemples, j'ai fait figurer le nom du système, le port série, ainsi que la vitesse courante en bps. D'autres champs sont disponibles : <BLOCKQUOTE><CODE> <PRE> @B La vitesse courante en bps (evaluee lorsque le @B est affiche). @D La date courante (MM/DD/YY). @L Le port serie auquel getty est attache. @S Le nom du systeme. @T L'heure courante (HH:MM:SS / 24-heures). @U Le nombre d'utilisateurs actuellement connectes. Il s'agit du nombre d'entrees dans le fichier /etc/utmp qui possedent un champ ut_name non nul. @V La valeur de VERSION, telle qu'elle est definie dans le fichier des valeurs par defaut. Pour afficher un simple '@', utilisez soit '\@', soit '@@'. </PRE> </CODE></BLOCKQUOTE> </P> <P>Ensuite, assurez-vous de connaître un périphérique d'entrée et de sortie pour le port série dédié au modem. Si votre modem est attaché à <CODE>ttyS3</CODE>, aucun périphérique correct n'existe et vous devez donc le créer (voir la section <A HREF="Serial-HOWTO-3.html#dev">Créer les périphériques dans <TT>/dev</TT></A> ). Si vous souhaitez pouvoir appeler avec votre modem alors que <CODE>uugetty</CODE> est en attente de connexion sur le même port, utilisez le périphérique <CODE>/dev/cua</CODE><EM>N</EM> à la place de <CODE>/dev/ttyS</CODE><EM>N</EM>.</P> <P>Une fois que vous avez terminé l'édition de <CODE>/etc/gettydefs</CODE>, vous pouvez en vérifier la syntaxe par : <BLOCKQUOTE><CODE> <PRE> linux# getty -c /etc/gettydefs </PRE> </CODE></BLOCKQUOTE> </P> <P></P> <H2>6.4 <A NAME="ss6.4"></A> Personnaliser <CODE>uugetty</CODE></H2> <P>De nombreuses options peuvent être configurées dans des fichiers séparés pour chacun des ports présents. Le fichier <CODE>/etc/conf.uugetty</CODE> sert à <EM>toutes</EM> les instances de <CODE>uugetty</CODE>, alors que <CODE>/etc/conf.uugetty.ttyS</CODE><EM>N</EM> est spécifique à un seul port. Des exemples de fichiers de configuration sont disponibles parmi les fichiers sources de <CODE>getty_ps</CODE> livrés avec la plupart des distributions Linux. Ces exemples ne sont pas repris dans ce document pour des problèmes d'espace. Notez que pour les versions anciennes de <CODE>getty</CODE> (avant la 2.0.7e), ou si vous n'utilisez pas la conformité FSSTND, le fichier par défaut réside dans <CODE>/etc/default/uugetty.ttyS</CODE><EM>N</EM>. Mon fichier <CODE>/etc/conf.uugetty.ttyS3</CODE> ressemble à : <BLOCKQUOTE><CODE> <PRE> # exemple de fichier de configuration uugetty pour un modem compatible # Hayes en mode appele # # fichier verrou alternatif... s'il existe, uugetty est relance afin de # reinitialiser le modem ALTLOCK=cua3 ALTLINE=cua3 # port serie a initialiser INITLINE=cua3 # delai de liberation de la ligne en cas d'inactivite... TIMEOUT=60 # chaine d'initialisation du modem... # format : <expect> <send> ... (protocole de connexion) INIT="" AT\r OK\r\n WAITFOR=RING CONNECT="" ATA\r CONNECT\s\A # delai d'attente avant l'envoi de la banniere DELAY=1 #DEBUG=010 </PRE> </CODE></BLOCKQUOTE> </P> <P>Ajoutez la ligne suivante dans <CODE>/etc/inittab</CODE>, afin que <CODE>uugetty</CODE> soit automatiquement lancé sur le port série (en adaptant pour votre configuration la localisation du fichier de configuration, le port, la vitesse, et le type de terminal par défaut) : <BLOCKQUOTE><CODE> <PRE> S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100 </PRE> </CODE></BLOCKQUOTE> Redémarrez <CODE>init</CODE> : <BLOCKQUOTE><CODE> <PRE> linux# init q </PRE> </CODE></BLOCKQUOTE> La vitesse maximale supportée par le modem a été sélectionnée dans <CODE>/etc/inittab</CODE>.</P> <P>À partir de maintenant, Linux est en attente de connexions sur le port série. Appelez depuis une autre machine et loguez-vous sur votre système Linux.</P> <P><CODE>uugetty</CODE> possède de nombreuses autres options, décrites en détail dans la page de manuel <CODE>getty(1m)</CODE>. Entre autres choses, on peut y trouver des fonctionnalités de programmation horaire (<EM>scheduling</EM>), et de rappel (<EM>ringback</EM>).</P> <P></P> <HR> <P> Chapitre <A HREF="Serial-HOWTO-7.html">suivant</A>, Chapitre <A HREF="Serial-HOWTO-5.html">Précédent</A> <P> Table des matières de <A HREF="Serial-HOWTO.html#toc6">ce chapitre</A>, <A HREF="Serial-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="Serial-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>