Le Linux HOWTO pour les ports s�rie

Greg Hankins, greg.hankins@cc.gatech.edu
traduit par Eric Festinger, eric@midix.frmug.org

v1.11, 15 Novembre 1997
Ce document d�crit la configuration sous Linux des ports s�rie, des programmes associ�s, et des p�riph�riques qui y sont connect�s.

1. Introduction

Ce document est la traduction fran�aise du Linux Serial HOWTO. Il tente de d�crire la configuration des modems et terminaux sous Linux, de donner quelques conseils, et enfin de r�soudre les probl�mes li�s aux ports s�rie. Il est destin� plus particuli�rement aux plateformes Intel x86, m�me s'il doit �tre applicable � d'autres architectures.

1.1 Copyright

Copyright (c) 1993 - 1997 Greg Hankins. Ce document peut �tre redistribu� sous les termes de la licence LDP disponible � http://sunsite.unc.edu/LDP/COPYRIGHT.html. Il ne peut �tre modifi� sans l'accord de son auteur.

1.2 Nouvelles versions de ce document

La version originale la plus r�cente de ce document est disponible � ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/ ainsi que sur les sites miroirs. D'autres formats (PostScript, DVI...) existent dans le r�pertoire other-formats. Ce HOWTO est �galement consultable � http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html et est post� mensuellement dans le forum de discussions comp.os.linux.answers.

La version fran�aise est disponible sur http://www.freenix.fr/linux/HOWTO/Serial-HOWTO.html, et est post�e tous les mois dans fr.comp.os.linux.annonces.

1.3 Retour d'informations

Merci de me faire parvenir par email � greg.hankins@cc.gatech.edu toutes questions, commentaires et suggestions. Je suis extr�mement int�ress� par ce que vous pensez � propos de ce HOWTO, et par les �ventuelles am�liorations. Faites-moi part de ce que vous ne comprenez pas ou de ce qui n�cessite des �claircissements. Je r�pondrais � tous les emails, m�me si �a peut me prendre une semaine ou plus. Je re�ois beaucoup de messages de root ou de sites mal configur�s. Assurez-vous de m'envoyer un message �lectronique en tant que personne r�elle, ainsi que du bon fonctionnement de votre syst�me de messagerie. Si vous n'avez toujours pas de r�ponse de ma part au bout de deux semaines, merci de m'envoyer � nouveau votre message.

Je peux �galement �tre joint � :
Greg Hankins
College of Computing
801 Atlantic Drive
Atlanta, GA 30332-0280
par courrier postal, et � http://www.cc.gatech.edu/staff/h/Greg.Hankins/.

Merci d'inclure le num�ro de version de ce HOWTO dans votre message. Ceci est la version 1.11.

1.4 Avertissement

Votre syst�me peut varier par rapport aux exemples, et les solutions pr�sent�es dans ce HOWTO peuvent ne pas fonctionner.

2. Mat�riel support�

Les mat�riels suivants fonctionnent correctement sous Linux.

2.1 Cartes s�rie standards pour PC

Remarque : en raison de conflits d'adresses, vous ne pouvez pas utilisez simultan�ment COM4 et une carte vid�o IBM8514. Ceci est d� � un bogue de la carte IBM8514.

2.2 Modems Plug And Play (PnP)

M�me si les modems PnP fonctionnent sous Linux, je ne les recommande pas. N�anmoins, voici quelques conseils :

2.3 Cartes s�rie multiports simples (�quip�es d'UART 8250/16450/16550A)

De mani�re g�n�rale, Linux supporte n'importe quelle carte �quip�e d'un UART 8250, 16450, 16550 ou 16550A (ou compatible), et n'importe quel modem �mulant un de ces composants.

Remarque : les BB-1004 et BB-1008 ne supportent pas les signaux DCD et RI, et ne sont donc pas utilisables pour des modems r�pondeurs. Ils fonctionnent n�anmoins tr�s bien dans les autres cas.

2.4 Cartes s�rie multiports intelligentes

Un descriptif des produits Comtrol, Cyclades, Digi, et Stallion est paru dans le num�ro 14 de juin 1995 du Linux Journal. Il est disponible � http://www.ssc.com/lj/issue14.

2.5 Mat�riel non support�

Les modems dits ``Winmodems'', par exemple l'USR Sportster Winmodem et l'IBM Aptiva MWAVE, ne sont pas support�s sous Linux. Ils utilisent des technologies propri�taires n�cessitant des gestionnaires de p�riph�riques sp�ciaux pour Windows. Les modems n�cessitant des gestionnaires Rockwell RPI sont � �viter pour la m�me raison.

Les cartes s�rie intelligentes n�cessitant des gestionnaires non disponibles sous Linux, ne pourront pas fonctionner.

3. Comment se nomment les ports s�rie ?

Un port d'E/S permet de recevoir des donn�es depuis, et d'en envoyer � partir d'un ordinateur. Il existe plusieurs types de ports d'E/S, comme les ports s�rie, les ports parall�les, les contr�leurs de disques durs, les cartes Ethernet, etc. Les modems et les terminaux dont nous allons traiter n'utilisent que des ports s�rie. Chacun de ces ports poss�de une adresse d'E/S, et un vecteur d'interruption (IRQ). Les quatre ports s�rie suivants correspondent � COM1 - COM4 :

ttyS0 (COM1) adresse 0x3f8 IRQ 4
ttyS1 (COM2) adresse 0x2f8 IRQ 3
ttyS2 (COM3) adresse 0x3e8 IRQ 4
ttyS3 (COM4) adresse 0x2e8 IRQ 3
Si aucun port s�rie n'est d�tect� lors de l'amor�age de Linux, assurez-vous que leur support a �t� s�lectionn� et compil� dans le noyau. Dans ce document, je me r�f�re � COM1 pour ttyS0, COM2 pour ttyS1, COM3 pour ttyS2, et � COM4 pour ttyS3. Par d�faut, ces ports ont des IRQ communes, et vous ne pouvez pas les utiliser simultan�ment dans cette configuration. Certaines de ces IRQ doivent �tre r�assign�es. Reportez-vous � la section Puis-je utiliser plus de deux ports s�rie ?.

Sur certaines installations, deux p�riph�riques suppl�mentaires vont �tre cr��s : /dev/modem pour le modem et /dev/mouse pour la souris. Ce sont des liens symboliques sur le p�riph�rique appropri� (dans le r�pertoire /dev) que vous avez sp�cifi� lors de l'installation. Si vous poss�dez une souris de type bus PS/2, /dev/mouse pointera correctement sur le p�riph�rique de la souris bus.

Plusieurs discussions ont port� sur les avantages et inconv�nients de ces pseudo-p�riph�riques /dev/mouse et /dev/modem. Personnellement, je d�courage fortement l'utilisation de ces liens. En particulier, si vous pr�voyez d'employer plusieurs modems pour les connexions entrantes sur /dev/modem, des probl�mes peuvent appara�tre � cause des fichiers de verrouillage (lock files). Vous pouvez n�anmoins les utiliser si vous le d�sirez, mais assurez-vous qu'ils pointent bien sur les bons p�riph�riques. Cependant, si vous supprimez ces liens, certaines applications (comme minicom) peuvent ne plus fonctionner sans reconfiguration.

3.1 P�riph�riques s�rie et num�ros dans /dev

/dev/ttyS0 majeur 4, mineur 64         /dev/cua0 majeur 5, mineur 64
/dev/ttyS1 majeur 4, mineur 65         /dev/cua1 majeur 5, mineur 65
/dev/ttyS2 majeur 4, mineur 66         /dev/cua2 majeur 5, mineur 66
/dev/ttyS3 majeur 4, mineur 67         /dev/cua3 majeur 5, mineur 67
Remarque : toutes les distributions doivent �tre livr�es avec ces p�riph�riques d�j� correctement configur�s, ce que vous pouvez v�rifier en tapant les commandes :
linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*

Cr�er les p�riph�riques dans /dev

Si un p�riph�rique est absent, vous devez le cr�er avec la commande mknod. Par exemple, pour ttyS0 :

linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64
Le script MAKEDEV, situ� dans le r�pertoire /dev, peut �tre utilis� pour simplifier leur cr�ation. Par exemple, pour ttyS0 :
linux# cd /dev
linux# ./MAKEDEV ttyS0
Cette commande cr�e les p�riph�riques d'entr�e et de sortie correspondants, et positionne �galement les bonnes permissions.

3.2 Remarques pour les cartes multiports simples

Les p�riph�riques utilis�s par les cartes multiports sont d�pendants du type de carte que vous poss�dez. Ils sont list�s en d�tail dans le fichier rc.serial fourni avec le programme setserial. Je recommande vivement de r�cup�rer la version la plus r�cente de setserial si vous devez utiliser une telle carte. Vous devrez alors s�rement cr�er ces p�riph�riques, soit avec la commande mknod, soit avec le script MAKEDEV. Ils doivent �tre d�clar�s en ajoutant 64 au num�ro du port. Par exemple, pour ttyS17 :

linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
Car ``64 + 17 = 81''. En utilisant le script MAKEDEV, il suffit d'entrer :
linux# cd /dev
linux# ./MAKEDEV ttyS17

Remarque : le listing des ports COM5-COM8 pour les IO1812 est erron� dans le manuel SIIG. Les valeurs doivent �tre remplac�es par COM5=0x250, COM6=0x258, COM7=0x260, et COM8=0x268.

Remarque : le registre d'�tat d'interruption (Interrupt Status Register) de la carte Digi PC/8 se trouve en 0x140.

Remarque : pour la carte AST Fourport, le fichier rc.serial doit sp�cifier le param�tre skip_test.

3.3 Remarques pour les cartes multiports intelligentes

Lisez les informations fournies avec le gestionnaire. Ces cartes utilisent des p�riph�riques non-standards. Ces informations varient suivant le mat�riel.

4. Quelques programmes int�ressants � conna�tre

4.1 Qu'est-ce que getty ?

getty est un programme qui g�re la phase d'entr�e en session (login) sur un syst�me Unix. Il est indispensable si vous souhaitez vous loguer sur votre machine Linux avec un modem. Il n'est par contre pas utile pour des communications sortantes. Il existe trois versions couramment utilis�es avec Linux : getty_ps, mgetty et agetty. Chacune poss�de sa propre syntaxe. Aussi, assurez-vous d'utiliser celle correspondant � votre version de getty.

� propos de getty_ps

La plupart des distributions installent directement le paquetage getty_ps. Il contient deux programmes : getty pour la console et les terminaux, et uugetty pour les modems. Je parlerai essentiellement de cette version, car c'est celle que j'utilise.

� propos de mgetty

mgetty est un getty sp�cialis� pour l'utilisation avec des modems. Par rapport aux autres versions, mgetty g�re les fax, et d�tecte automatiquement les connexions PPP. La documentation est excellente et suffisante. Veuillez vous y reporter pour l'installation. Les informations les plus r�centes sur mgetty peuvent �tre trouv�es � http://www.leo.org/~doering/mgetty/.

� propos de agetty

agetty est la troisi�me variante de getty. C'est une version simple compl�tement fonctionnelle, et plus particuli�rement destin�e � l'utilisation des consoles virtuelles et des terminaux plut�t que des modems.

4.2 Qu'est-ce que setserial ?

setserial est un programme autorisant la consultation et la modification des diff�rents attributs (adresse de port, interruption, etc.) d'un p�riph�rique s�rie. Vous pouvez d�terminer le num�ro de version install�e en lan�ant setserial sans argument.

Lorsque votre syst�me Linux d�marre, seuls ttyS{0-3} sont configur�s avec les IRQ positionn�es par d�fault � 4 et 3. Si vous poss�dez d'autres ports s�rie sur d'autres cartes, ou si ttyS{0-3} utilisent des IRQ non standards, vous devez lancer ce programme pour configurer ces ports. Consultez le manuel pour une description compl�te des options.

5. Comment puis-je appeler avec mon modem ?

5.1 Mat�riel n�cessaire

Tout d'abord, assurez-vous d'avoir le bon c�ble. Votre modem requiert un c�ble droit, sans inversion de fils. Vous devriez pouvoir vous en procurer dans n'importe quel magasin d'informatique. V�rifiez �galement le genre des connecteurs. Pour un port � 25 broches, ce sera toujours un mod�le m�le DB25, � ne pas confondre avec les ports parall�les � embase femelle DB25. Connectez votre modem sur un de vos ports s�rie. Consultez si n�cessaire le manuel de votre modem.

Remarques pour les modems internes

Pour un modem interne, aucun c�ble n'est n�cessaire. De m�me, aucun port s�rie n'est requis, car la carte modem en poss�de un interne. Vous devez seulement configurer votre modem pour qu'il utilise une interruption (IRQ) et une adresse d'E/S libres. Reportez-vous au manuel de votre modem, ainsi qu'� la section Puis-je utiliser plus de deux p�riph�riques s�rie ? si vous avez besoin d'aide pour choisir les interruptions et les adresses.

Sur certaines cartes m�res, il peut �tre n�cessaire de d�sactiver les ports s�rie afin d'�viter les conflits avec le modem. Cette manipulation peut �tre effectu�e avec des cavaliers ou les param�tres du BIOS. Consultez le manuel de votre carte m�re.

Suite � un bogue des cartes vid�o IBM8514, les modems internes ne peuvent pas fonctionner sur ttyS3. Si Linux ne d�tecte pas le modem sur ttyS3, il suffit alors d'utiliser setserial pour que le modem fonctionne correctement. Un modem interne ttyS{0-2} ne devrait pas poser de probl�me de d�tection. Linux n'effectue pas d'autoconfiguration du ttyS3 � cause de ce bogue li� � la carte vid�o.

5.2 ``Parlez'' � votre modem

Avant de vous lancez dans le param�trage assez complexe de SLIP ou PPP, utilisez kermit ou n'importe quel autre programme de communication pour tester votre configuration. La version la plus r�cente de kermit peut �tre t�l�charg�e depuis http://www.columbia.edu/kermit/. L'exemple suivant suppose que votre modem est sur ttyS3, et que sa vitesse est fix�e � 115200 bps :

linux# kermit
C-Kermit 6.0.192, 6 Sep 96, for Linux
 Copyright (C) 1985, 1996,
  Trustees of Columbia University in the City of New York.
Default file-transfer mode is BINARY
Type ? or HELP for help.
C-Kermit>set line /dev/ttyS3
C-Kermit>set carrier-watch off
C-Kermit>set speed 115200
/dev/ttyS3, 115200 bps
C-Kermit>c
Connecting to /dev/ttyS3, speed 115200.
The escape character is Ctrl-\ (ASCII 28, FS)
Type the escape character followed by C to get back,
or followed by ? to see other options.
ATE1Q0V1                   ; vous tapez cette chaine puis la touche Entree
OK                         ; le modem doit repondre comme ca

Si votre modem r�pond aux commandes AT, vous pouvez supposer qu'il fonctionne correctement du c�t� Linux. Il ne reste plus qu'� essayer d'appeler un autre modem :

ATDT7654321
o� 7654321 est un num�ro de t�l�phone. Utilisez ATDP � la place de ATDT si vous n'�tes pas connect� � un central num�rique. Votre modem fonctionne si l'appel aboutit.

Pour revenir � l'invite kermit, appuyez simultan�ment sur les touches Ctrl et backslash, puis sur C :

Ctrl-\-C
(Retour a linux)
C-Kermit>quit
linux#

Il s'agissait juste d'un test de num�rotation ``� la main''. La m�thode normale est de laisser kermit num�roter � votre place � l'aide de sa base de donn�es interne de modems. Par exemple, pour un modem US Robotics (USR) :

linux# kermit
C-Kermit 6.0.192, 6 Sep 1997, for Linux
 Copyright (C) 1985, 1996,
  Trustees of Columbia University in the City of New York.
Default file-transfer mode is BINARY
Type ? or HELP for help
C-Kermit>set modem type usr        ; Selection du type de modem
C-Kermit>set line /dev/ttyS3       ; Choix du peripherique
C-Kermit>set speed 115200          ; Vitesse de communication
C-Kermit>dial 7654321              ; Numerotation
 Number: 7654321
 Device=/dev/ttyS3, modem=usr, speed=115200
 Call completed.<BEEP>
Connecting to /dev/ttyS3, speed 115200
The escape character is Ctrl-\ (ASCII 28, FS).
Type the escape character followed by C to get back,
or followed by ? to see other options.

Welcome to ...

login:

Reportez-vous � la section Programmes de communication pour plus de liens.

Lorsque vous appelez avec votre modem, param�trez la vitesse au d�bit maximal support� par votre modem. Les syst�mes Linux avec une version de la libc sup�rieure � 5.x supportent des vitesses jusqu'� 115200 bps. libc est habituellement situ�e dans /lib. V�rifiez dans ce r�pertoire la version que vous avez. Si Linux ne reconna�t pas des vitesses de 57600 ou 115200 bps, vous devez alors utiliser le program setserial pour passer votre port s�rie � une vitesse sup�rieure. Reportez-vous � la section Comment configurer mes ports s�rie � des vitesses sup�rieures ?. S�lectionnez ensuite une vitesse de 38400 bps dans votre programme de communications.

5.3 Configuration du modem en mode appelant

Pour appeler, vous pouvez configurer votre modem comme vous le voulez. Si vous souhaitez l'utiliser pour des communications entrantes, vous devez param�trer votre modem � la m�me vitesse que pour getty. Ainsi, si vous voulez ex�cuter getty � 38400 bps, fixez �galement la vitesse � 38400 bps lors du param�trage du modem, pour �viter une incompatibilit� de vitesses avec l'ordinateur. En g�n�ral, les r�glages d'usine avec correction d'erreurs et contr�le de flux mat�riel correspondent au r�glage optimal en mode appelant. Consultez le manuel du modem pour obtenir ces r�glages.

5.4 Contr�le de flux mat�riel

Je vous recommande vivement d'utiliser le contr�le de flux mat�riel (RTS/CTS) si votre modem le supporte. Cette fonctionalit� est particuli�rement importante lorsque la compression de donn�es est active. Premi�rement, vous devez autoriser le contr�le de flux RTS/CTS sur le port s�rie. Le mieux est de le faire au d�marrage, par exemple dans /etc/rc.d/rc.local ou /etc/rc.d/rc.serial. Assurez-vous que ces fichiers sont bien ex�cut�s par le fichier principal rc.sysinit. Ensuite, pour chacun des ports s�rie pour lesquels vous d�sirez activer le contr�le de flux mat�riel, vous devez entrer la commande suivante :

stty crtscts < /dev/ttyS3
Vous devez �galement activer le contr�le de flux RTS/CTS sur le modem. Consultez le manuel du modem, car le param�trage varie suivant les fabricants. N'oubliez pas de sauvegarder cette configuration, si votre modem le permet.

6. Comment puis-je appeler et �tre appel� avec mon modem et getty_ps ?

Faites d�j� fonctionner correctement votre modem en mode appelant. Si vous n'avez pas encore lu la section Comment puis-je appeler avec mon modem ?, lisez-la maintenant ! Elle contient des informations importantes sur la configuration. Il n'est pas n�cessaire de lire cette section si vous souhaitez juste appeler avec votre modem.

6.1 Configuration en modes appelant et appel�

Encore une fois, le modem doit �tre sp�cialement configur� (avec les commandes AT) afin de pouvoir �tre utilis� aussi bien en appelant qu'en appel� :

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) 
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.
&C1 le signal DCD est haut seulement apres la connexion
&S0 DSR est toujours haut
        un changement d'etat du DTR reinitialise le modem (dependant du fabricant - RTFM)
Ces r�glages d�terminent le comportement du modem au d�but et � la fin d'un appel.

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.

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 � ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs.

Remarque : pour que mon modem USR Courier V.34 se r�initialise correctement � l'ouverture du signal DTR, je suis oblig� de forcer &D2 et S13=1 (le bit 0 du registre S13 est mis � 1). On m'a confirm� que �a fonctionnait aussi sur les modems USR Sportster V.34.

Remarque : certains modems Supra traitent le signal DCD diff�rement. Dans ce cas, essayez avec &C0 et non &C1. &D2 doit �galement �tre positionn� afin de g�rer correctement le DTR.

6.2 Installer getty_ps

R�cup�rez la derni�re version � partir de sunsite.unc.edu:/pub/Linux/system/serial. 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.

Par d�faut, getty_ps est conforme au FSSTND Linux (File System Standard - norme de syst�me de fichiers), ce qui implique que les binaires r�sident dans /sbin, et les fichiers verrous (lock files) dans /var/lock. Assurez-vous donc que le r�pertoire /var/lock existe bien.

Si vous ne souhaitez pas la conformit� FSSTND, les binaires seront stock�s dans /etc, les fichiers de configuration dans /etc/default/{uu}getty.ttySN, et les fichiers verrous dans /usr/spool/uucp. Je recommande cette m�thode en cas d'utilisation conjointe avec UUCP afin que les fichiers verrous soient bien partag�s entre getty_ps et UUCP.

getty_ps peut aussi utiliser syslogd pour enregistrer les messages. Reportez-vous aux pages de manuel syslogd(1) et syslog.conf(5) pour configurer syslogd, 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 syslogd, �ditez tune.h dans le r�pertoire des fichiers source de getty_ps pour enregistrer les messages dans un fichier, /var/adm/getty.log par d�faut.

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 Makefile, tune.h et config.h. Il ne reste plus qu'� compiler et installer le paquetage, en suivant les instructions fournies.

� partir de maintenant, toutes les r�f�rences � getty concerneront getty_ps, et celles � uugetty le programme uugetty fourni avec le paquetage getty_ps. Ces instructions ne sont pas applicables � mgetty ou agetty.

6.3 Configurer uugetty

uugetty, qui assure d'importantes v�rifications sur les fichiers verrous, sera utilis� pour se connecter sur votre modem. Mettez � jour /etc/gettydefs 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) :

# 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

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 /etc/gettydefs se simplifie et ne n�cessite plus qu'une seule ligne pour le modem, par exemple :

# vitesse fixe 115200
F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200

Si le contr�le de flux RTS/CTS est activ� sur votre modem, le drapeau CRTSCTS peut �tre ajout� dans les entr�es :

# vitesse fixe 115200 avec controle de flux materiel
F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200

Si vous le d�sirez, uugetty 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 :

       @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 '@@'.

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� � ttyS3, aucun p�riph�rique correct n'existe et vous devez donc le cr�er (voir la section Cr�er les p�riph�riques dans <TT>/dev</TT>). Si vous souhaitez pouvoir appeler avec votre modem alors que uugetty est en attente de connexion sur le m�me port, utilisez le p�riph�rique /dev/cuaN � la place de /dev/ttySN.

Une fois que vous avez termin� l'�dition de /etc/gettydefs, vous pouvez en v�rifier la syntaxe par :

linux# getty -c /etc/gettydefs

6.4 Personnaliser uugetty

De nombreuses options peuvent �tre configur�es dans des fichiers s�par�s pour chacun des ports pr�sents. Le fichier /etc/conf.uugetty sert � toutes les instances de uugetty, alors que /etc/conf.uugetty.ttySN est sp�cifique � un seul port. Des exemples de fichiers de configuration sont disponibles parmi les fichiers sources de getty_ps 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 getty (avant la 2.0.7e), ou si vous n'utilisez pas la conformit� FSSTND, le fichier par d�faut r�side dans /etc/default/uugetty.ttySN. Mon fichier /etc/conf.uugetty.ttyS3 ressemble � :

# 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

Ajoutez la ligne suivante dans /etc/inittab, afin que uugetty 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) :

S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100
Red�marrez init :
linux# init q 
La vitesse maximale support�e par le modem a �t� s�lectionn�e dans /etc/inittab.

� 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.

uugetty poss�de de nombreuses autres options, d�crites en d�tail dans la page de manuel getty(1m). Entre autres choses, on peut y trouver des fonctionnalit�s de programmation horaire (scheduling), et de rappel (ringback).

7. Comment configurer un terminal raccord� � mon PC ?

Ces instructions permettent aussi bien de connecter des terminaux que d'autres ordinateurs sur le port s�rie de votre machine Linux.

7.1 Besoins mat�riels

Assurez-vous de poss�der le bon type de c�ble. Un c�ble null modem achet� dans n'importe quel magasin informatique fera l'affaire, mais il doit s'agir effectivement d'un c�ble null modem ! De nombreux magasins d'informatique les vendent comme des c�bles pour imprimante s�rie. V�rifiez que vous utilisez bien le port s�rie (embase m�le DB25 ou DB9), et non le port parall�le (embase femelle DB25 ou Centronics).

Pour un connecteur DB25, il faut au minimum :

 
        DB25 male du PC                         DB25 du terminal
        TxD   Donnees emises        2 --> 3     RxD   Donnees recues
        RxD   Donnees recues        3 <-- 2     TxD   Donnees emises
        SG    Masse du signal       7 --- 7     SG    Masse du signal

Si vous voulez profiter du contr�le de flux mat�riel, la connexion null modem doit �tre int�gralement c�bl�e :

        DB25 male du PC                         DB25 du terminal
        TxD   Donnees emises        2 --> 3     RxD   Donnees recues
        RxD   Donnees recues        3 <-- 2     TxD   Donnees emises
        RTS   Demande pour emettre  4 --> 5     CTS   Pret a emettre
        CTS   Pret a emettre        5 <-- 4     RTS   Demande pour emettre
        DSR   Poste de donnees pret 6
                                    |
        DCD   Detection de porteuse 8 <-- 20    DTR   Terminal de donnees pret
        SG    Masse du signal       7 --- 7     SG    Masse du signal
                                          6     DSR   Poste de donnees pret
                                          |
        DTR   Terminal pret        20 --> 8     DCD   Detection de porteuse

Si vous avez un connecteur DB9, vous pouvez essayer :

        DB9 du PC                               DB25 du terminal 
        RxD   Donnees recues        2 <-- 2     TxD   Donnees emises
        TxD   Donnees emises        3 --> 3     RxD   Donnees recues
        SG    Masse du signal       5 --- 7     SG    Masse du signal

Pour un c�ble complet DB9-DB25, on obtient :

        DB9 du PC                               DB25 du terminal 
        RxD   Donnees recues        2 <-- 2     TxD   Donnees emises
        TxD   Donnees emises        3 --> 3     RxD   Donnees recues
                                          6     DSR   Poste de donnees pret
                                          |
        DTR   Terminal pret         4 --> 8     DCD   Detection de porteuse
        SG    Masse du signal       5 --- 7     SG    Masse du signal
        DCD   Detection de porteuse 1
                                    |
        DSR   Poste de donnees pret 6 <-- 20    DTR   Terminal de donnees pret
        RTS   Demande pour emettre  7 --> 5     CTS   Pret a emettre
        CTS   Pret a emettre        8 <-- 4     RTS   Demande pour emettre
        (RI   Indicateur sonnerie   9 pas necessaire)
(Eh oui, les broches 2 et 3 ont effectivement la signification oppos�e entre les connecteurs DB9 et DB25 !)

Ceux qui ne poss�dent pas de c�ble null modem complet devront user d'une astuce afin que le PC re�oive (de lui-m�me) les acquittements qu'il demande avec le contr�le de flux mat�riel : sur le connecteur c�t� PC, rebouclez ensemble RTS et CTS, ainsi que DSR, DCD et DTR.

Maintenant que avez le bon type de c�ble, il vous reste � connecter votre terminal sur votre ordinateur. Si possible, demandez au terminal d'ignorer les signaux de contr�le pour modems, et essayez de le param�trer avec une vitesse de 9600 bps, 8 bits de donn�es, 1 bit de stop, et pas de parit�.

7.2 Configurer getty

Si elles ne sont pas d�j� pr�sentes, ajoutez dans /etc/gettydefs les entr�es destin�es � getty pour votre terminal,

# Entree de terminal simple a 38400 bps
DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400

# Entree de terminal simple a 19200 bps
DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200

# Entree de terminal simple a 9600 bps
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600

Si vous le d�sirez, getty 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 ainsi que le port s�rie. D'autres variables sont disponibles :

@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 '@@'.

Une fois l'�dition de /etc/gettydefs termin�e, vous pouvez en v�rifier la syntaxe par :

linux# getty -c /etc/gettydefs

Assurez-vous qu'il n'existe pas d�j� de fichier de configuration getty ou uugetty pour le port s�rie auquel vous avez attach� votre terminal (/etc/default/{uu}getty.ttySN ou /etc/conf.{uu}getty.ttySN), car il risque probablement d'interf�rer avec l'instance de getty du terminal. Supprimez le fichier s'il existe.

�ditez la ligne suivante dans /etc/inittab, afin que getty soit lanc� sur le port s�rie (en adaptant pour votre configuration le port, la vitesse, et le type de terminal par d�faut) :

S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100
Red�marrez init :
linux# init q 

Vous devez maintenant voir appara�tre une invite de session sur le terminal. Il peut n�anmoins �tre n�cessaire de taper sur la touche Entr�e pour avertir le terminal.

7.3 Remarques sur la configuration d'un PC en tant que terminal

Nombreux sont ceux qui se servent d'autres PC comme des terminaux rattach�s � des syst�mes Linux. Par exemple, des vieux PC 8088 ou 80286 sont parfaits pour cet usage. Vous avez juste besoin d'une disquette de d�marrage DOS et d'un programme de communications pour faire tourner votre terminal-PC. kermit fonctionne tr�s bien dans cette configuration. Des versions compil�es de kermit pour n'importe quel syst�me d'exploitation sont disponibles sur http://www.columbia.edu/kermit/. D'autres programmes populaires de communications sous DOS, comme telix ou procomm remplissent �galement tr�s bien cette fonction. Soyez juste s�r de fournir des informations correctes lors du param�trage des communications de votre terminal-PC.

8. Puis-je utiliser plus de deux ports s�rie ?

Il n'est pas n�cessaire que vous lisiez cette section, � moins que vous utilisiez au moins trois ports s�rie... (mais pas sur une carte multiports).

N'importe quel port s�rie libre est utilisable. La seule limitation r�side dans le nombre d'interruptions (IRQ) et d'adresses de port d'entr�e/sortie � utiliser. Cette limitation n'est pas sp�cifique � Linux, mais est due au bus du PC. Chaque p�riph�rique s�rie (port s�rie, modem interne, carte s�rie) doit poss�der ses propres interruption et adresse.

Les cartes s�rie multiports sont sp�cialement con�ues pour partager la m�me interruption sur tous les ports qu'elles poss�dent. Linux communique avec elles en s�lectionnant une adresse d'entr�e/sortie diff�rente pour chaque port de ces cartes.

8.1 Choisir les interruptions des p�riph�riques s�rie

Par d�faut sur un PC, l'IRQ 4 est partag�e entre ttyS0 et ttyS2, et l'IRQ 3 entre ttyS1 et ttyS3. Les interruptions en cours d'utilisation sont regroup�es dans /proc/interrupts. Pour se servir de plus de deux ports s�rie, leur interruption doit �tre r�assign�e, par exemple en choisissant celle d'un port parall�le. En effet, les IRQ 5 et 7 sont sur un PC normalement attribu�es aux ports parall�les, mais peu de personnes en poss�dent deux. Vous pouvez donc r�assigner une de ces interruptions � un port s�rie, et continuer � utiliser joyeusement votre port parall�le ! Cette manipulation requiert le programme setserial. De plus, il vous faudra ajuster certains cavaliers sur vos cartes (� v�rifier sur les manuels des cartes) pour fixer les IRQ.

Vous devez vous arranger pour avoir une IRQ unique pour chacun des ports s�rie. Voici comment je configure les miens dans /etc/rc.d/rc.local (cette initialisation doit avoir lieu lors du d�marrage) :

        /sbin/setserial /dev/ttyS0 irq 3        # ma souris
        /sbin/setserial /dev/ttyS1 irq 4        # mon terminal Wyse
        /sbin/setserial /dev/ttyS2 irq 5        # mon modem Zoom 
        /sbin/setserial /dev/ttyS3 irq 9        # mon modem USR

Assignations standards des IRQ :

              IRQ  0    Base de temps 0
              IRQ  1    Clavier
              IRQ  2    Cascade pour le deuxieme controleur d'IRQ
              IRQ  3    Port serie 2
              IRQ  4    Port serie 1
              IRQ  5    Port parallele 2
              IRQ  6    Disquette
              IRQ  7    Port parallele 1
              IRQ  8    Horloge temps-reel (RTC)
              IRQ  9    Redirige vers l'IRQ2
              IRQ 10    Non assignee 
              IRQ 11    Non assignee
              IRQ 12    Non assignee
              IRQ 13    Coprocesseur mathematique
              IRQ 14    Controleur de disques durs 1
              IRQ 15    Controleur de disques durs 2

Il n'existe pas vraiment de Bonne Technique pour choisir les interruptions. Il faut juste s'assurer qu'elles ne sont pas d�j� utilis�es par la carte m�re, ou une autre carte. 2, 3, 4, 5, ou 7 est g�n�ralement un bon choix. ``Non assign�e'' signifie que rien de standard n'utilise cette IRQ. Notez �galement que l'IRQ2 et l'IRQ9 sont identiques : vous pouvez donc sp�cifier aussi bien 2 que 9, le gestionnaire de p�riph�riques est tr�s compr�hensif. Si vous poss�dez une carte s�rie avec un connecteur de bus 16 bits, vous pouvez �galement utiliser l'IRQ 10, 11, 12 ou 15.

N'utilisez pas les IRQ 0, 1, 6, 8, 13 et 14 ! Elles sont r�serv�es par la carte m�re. Une fois le param�trage effectu�, v�rifiez l'absence de conflit avec /proc/interrupts.

8.2 Choisir les adresses des p�riph�riques s�rie

Vous devez ensuite fixer les adresses des ports. V�rifiez le manuel pour la position des cavaliers. Comme pour les interruptions, chaque p�riph�rique s�rie doit poss�der sa propre adresse. Par d�faut, les ports sont param�tr�s de la mani�re suivante :

        ttyS0 adresse 0x3f8
        ttyS1 adresse 0x2f8
        ttyS2 adresse 0x3e8
        ttyS3 adresse 0x2e8

Choisissez les adresses � affecter � chaque port s�rie, et positionnez les cavaliers sur la carte en cons�quence. Ainsi, j'ai mon modem sur ttyS3, ma souris sur ttyS0, et mon terminal sur ttyS2.

Au prochain d�marrage, Linux devrait voir vos ports s�ries aux adresses que vous avez s�lectionn�es. Par contre, les IRQ vues par Linux peuvent ne pas correspondre avec celles que vous avez configur�es. Ne vous inqui�tez pas : Linux ne sait pas d�tecter les IRQ au d�marrage, car c'est assez al�atoire et le r�sultat peut �tre faux. Utilisez setserial pour sp�cifier � Linux quelles interruptions sont associ�es aux ports, puis v�rifiez apr�s red�marrage de Linux les adresses des ports d'entr�e/sortie avec /proc/ioports.

9. Comment configurer des vitesses plus importantes pour mes ports s�rie ? � quelle vitesse dois-je fixer mon modem ?

Cette section a pour but de vous aider � d�terminer la vitesse du modem � utiliser avec un programme de communications ou getty.

Avant de fixer la configuration de setserial dans /etc/rc.d/rc.serial ou /etc/rc.d/rc.local afin qu'elle soit prise en compte au d�marrage, il est pr�f�rable de l'essayer manuellement. Par exemple, pour fixer ttyS3 � 115200 bps, mon fichier /etc/rc.d/rc.local contient :

/sbin/setserial /dev/ttyS3 spd_vhi

Assurez-vous que le chemin d'acc�s � setserial est valide, de m�me que le nom du p�riph�rique. Le param�trage d'un port s�rie peut �tre v�rifi� par :

setserial -a /dev/ttyS3

10. Programmes et utilitaires de communications

Voici une liste de logiciels de communications que vous pouvez t�l�charger par FTP, s'ils ne sont pas fournis dans votre distribution :

11. Trucs et astuces sur les liaisons s�rie

Je vous pr�sente ici quelques astuces que vous pourrez trouver utiles...

11.1 kermit et zmodem

Pour utiliser le protocole zmodem avec kermit, ajoutez les lignes suivantes dans votre .kermrc:

define rz !rz < /dev/ttyS3 > /dev/ttyS3
define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3
Soyez s�r de positionner le port s�rie auquel votre modem est rattach�. Il suffit alors de taper rz ou sz <filename> � l'invite de commandes de kermit.

11.2 Param�trer les types de terminaux automagiquement

Pour s�lectionner automagiquement le type de terminal au d�but d'une session, ajoutez-le dans l'entr�e correspondante de /etc/inittab. Par exemple, avec un terminal VT100 sur ttyS1, j'ajouterais ``vt100'' en param�tre de la commande getty :

S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100

Vous pouvez �galement utiliser tset pour positionner les caract�ristiques du terminal � l'entr�e en session, ind�pendamment des valeurs par d�faut.

11.3 ls en couleurs sur les connexions s�rie

Si l'�mulation de votre terminal ne supporte pas correctement l'option couleur de ls, d�sactivez-la. Certaines installations l'utilisent par d�faut (ls --color ou ls --colour). V�rifiez les alias sur ls dans /etc/profile et /etc/csh.cshrc. Vous pouvez �galement cr�er un nouvel alias de ls sur ls --no-color, si vous ne souhaitez pas modifier les valeurs par d�faut.

11.4 Imprimer sur une imprimante attach�e � un terminal

Il existe pour cela un programme appel� vtprint, disponible sur ftp://ftp.sdsu.edu/pub/vtprint, et sur http://www.sdsu.edu/~garrett.

Un deuxi�me programme est xprt. Il peut �tre t�l�charg� depuis ftp://sunsite.unc.edu/pub/Linux/system/printing.

11.5 Linux peut-il configurer les p�riph�riques s�rie automagiquement ?

Effectivement, Linux peut d�tecter et param�trer les p�riph�riques s�rie automatiquement au d�marrage en ajoutant par exemple la ligne :

/sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig
dans votre fichier /etc/rc.d/rc.local ou /etc/rc.d/rc.serial. R�p�tez la manipulation pour chacun des ports s�rie qui doit �tre configur� automatiquement. Soyez juste s�r de fournir un nom de p�riph�rique existant sur votre machine.

Remarques pour les cartes multiports

R�f�rez-vous au fichier rc.serial fourni avec setserial pour les adresses et les IRQ de ces cartes. Beaucoup de param�tres y sont d�taill�s concernant les cartes multiports, y compris les adresses et les noms des p�riph�riques � utiliser.

11.6 Utiliser une console s�rie

Un article dans le num�ro 36 du Linux Journal ( http://www.ssc.com/lj/issue36/index.html) explique comment utiliser un terminal comme une console. Malheureusement, l'adresse �lectronique de l'auteur ne semble pas correcte car les messages reviennent. J'esp�re que cet article figurera bient�t sur le site WEB du Linux Journal � l'URL mentionn�e ci-dessus. (NdT : cet article est maintenant disponible en ligne � http://www.ssc.com/lj/issue36/console.html)

11.7 Obtenir des d�bits plus importants

Si vous jugez le d�bit de vos ports s�rie lent, ou si des erreurs d'�crasement de caract�res � la r�ception (overrun errors) se produisent sur un syst�me muni de disques durs (E)IDE, utilisez hdparm pour modifier certains des param�tres de ces disques, notamment le d�masquage des autres IRQ pendant les interruptions disque. Cette manipulation augmentera le taux de r�ponse et aidera � supprimer les �crasements de caract�res. Lisez bien les pages de manuel, car certaines combinaisons sont plus ou moins bien support�es suivant les disques et les contr�leurs utilis�s, et peuvent provoquer une corruption du syst�me de fichiers.

Regardez �galement l'utilitaire irqtune qui permet de modifier la priorit� de l'IRQ d'un p�riph�rique, par exemple celle du port s�rie li� au modem. La FAQ d'irqtune est disponible sur http://www.best.com/~cae/irqtune.

12. Un pas de plus...

Cette section n'est absolument pas n�cessaire � la compr�hension des ports s�rie sous Linux, mais peut n�anmoins vous apporter quelques �claircissements sur Unix et le monde des t�l�communications.

12.1 Qu'est-ce que les fichiers verrous ?

Un fichier verrou est simplement un fichier qui indique qu'un p�riph�rique particulier est en cours d'utilisation. Ils sont regroup�s dans /usr/spool/uucp ou /var/lock. Sous Linux, ils se nomment LCK..nom o� nom est soit un nom de p�riph�rique, soit un nom de site UUCP. Certains processus cr�ent de tels fichiers pour s'assurer l'acc�s exclusif aux p�riph�riques. Par exemple, si vous appelez avec votre modem, un fichier verrou va �tre cr�� pour avertir les autres processus que le modem est d�j� en cours d'utilisation. Les verrous contiennent principalement le PID du processus qui s'est attribu� le p�riph�rique. La plupart des programmes regardent dans un premier temps si un fichier verrou existe, puis s'il est toujours valide en recherchant dans la table des processus le programme qui a verrouill� le p�riph�rique. Si le fichier verrou est toujours valide, alors le nouveau programme doit s'arr�ter. Dans le cas contraire, certains programmes suppriment le fichier verrou p�rim�, et utilisent le p�riph�rique en cr�ant leur propre verrou � l'int�rieur du processus. D'autres programmes s'arr�tent tout simplement et pr�viennent l'utilisateur que le p�riph�rique est d�j� utilis�.

12.2 ``baud'' et ``bps''

``baud'' et ``bps'' font certainement partie des termes les plus mal utilis�s dans le monde de l'informatique et des t�l�communications. Ils sont souvent consid�r�s � tort comme �quivalents, alors qu'ils ne le sont pas !

baud

Le baud repr�sente la fr�quence de (d�)modulation d'un signal, par exemple celui envoy� ou re�u par un modem (modulateur-d�modulateur), c'est-�-dire le nombre de fois o� il change par seconde. Par exemple, 1200 bauds implique que le signal change d'�tat toutes les 833 microsecondes. Les fr�quences de (d�)modulation les plus courantes pour un modem sont 50, 75, 110, 300, 600, 1200, et 2400 bauds. La plupart des modems hautes vitesses fonctionnent � 2400 bauds. Les fr�quences plus �lev�es sont plus difficiles � atteindre. Cette limitation est principalement due aux basses performances des lignes t�l�phoniques d�di�es essentiellement au transport de la voix. Plusieurs bits sont alors encod�s par baud, ce qui permet d'obtenir des taux de transfert en bits plus �lev�s qu'en bauds. L'�tymologie du mot ``baud'' vient de l'inventeur de l'imprimante t�l�graphique asynchrone, �mile Baudot.

bps

Le taux de transfert en bps repr�sente le nombre de bits transmis en une seconde. Les vitesses en bps les plus courantes sont 50, 75, 110, 300, 1200, 2400, 9600, ... 115200. Les modems avec compression V.42bis (rapport maximal de 4 � 1) activ�e sont capables th�roriquement d'atteindre des vitesses de 115200 bps. C'est l'usage mauvais le plus courant du terme ``baud''.

Donc, si les modems hautes vitesses fonctionnent � 2400 bauds, comment peuvent-ils �mettre � 14400 bps ? En fait, les modems atteignent des taux de transfert en bps sup�rieurs � la fr�quence de modulation, en codant plusieurs bits dans un seul changement d'amplitude ou de phase du signal. Ainsi, quand 2 bits ou plus sont cod�s par baud, la vitesse en bps d�passe la fr�quence en bauds. Quand votre modem se connecte � 14400 bps, il envoie effectivement 6 bits � chaque changement de phase, � 2400 bauds.

Cette confusion entre bauds et bps date du temps o� les taux de transfert �taient faibles, et o� la vitesse en bps �galait la fr�quence de modulation en bauds. Par exemple, un modem � 300 bps fonctionne � une fr�quence de 300 bauds. Les deux valeurs ont commenc� � diverger avec l'apparition des modems hautes vitesses.

12.3 Qu'est-ce que les UART ? Comment influent-ils sur les performances ?

Les UART (Universal Asyncronous Receiver Transmitter - �metteur R�cepteur Universel Asynchrone) sont des circuits �lectroniques �quipant les cartes s�rie des PC. Ils servent � transformer les donn�es en bits, � les envoyer sur la ligne s�rie, puis � reconstruire ces donn�es � l'autre bout. Ils travaillent sur des octets, qui correspondent justement � la taille des caract�res ASCII.

Supposons qu'un terminal est connect� � votre PC. Quand vous tapez un caract�re, le terminal l'envoie � un �metteur (qui est aussi un UART). L'�metteur envoie alors cet octet sur la ligne s�rie, bit par bit, et � une vitesse sp�cifique. Du c�t� PC, l'UART r�ceptionne ces bits, reconstruit l'octet, et enfin le place dans une zone m�moire.

Il existe essentiellement deux types d'UART : les simples (8250 et 16450), et ceux dot�s de FIFO (16550A). Pour comprendre les diff�rences qui existent entre ces circuits, il faut examiner ce qui se passe quand un UART envoie ou re�oit un octet.

L'UART lui-m�me ne fait rien avec les donn�es ; il s'occupe juste de les �mettre ou les r�ceptionner. Le CPU re�oit une interruption du p�riph�rique s�rie chaque fois qu'un octet part ou arrive. Le CPU d�place alors l'octet re�u du p�riph�rique s�rie vers une zone m�moire, ou alors il redonne � l'UART un nouvel octet � transmettre. Les UART 8250 et 16450 ne poss�dent qu'une zone tampon d'un octet, ce qui signifie que le CPU est interrompu � chaque caract�re. �a fonctionne aux vitesses faibles, mais pour des vitesses �lev�es, le CPU est tellement occup� par l'UART, qu'il n'a plus assez de temps pour les autres t�ches. Dans certains cas, le CPU ne peut pas r�pondre � l'interruption assez vite, et les caract�res sont alors �cras�s (overrun error).

Les UART 16550 sont alors utiles car ils sont �quip�s de tampons FIFO de 16 octets, c'est-�-dire qu'ils peuvent �mettre ou recevoir jusqu'� 16 octets avant d'interrompre le CPU. Bien que ce seuil d'interruption soit rarement fix� � 16, �a repr�sente quand m�me un avantage significatif par rapport aux UART dot�s d'un tampon d'un seul octet. Le CPU est alors interrompu moins souvent et peut consacrer plus de temps aux autres t�ches. Les donn�es ne sont donc plus perdues. (Il existe �galement un UART 16550, consid�r� comme un 16450 car il est d�fectueux.)

En g�n�ral, les 8250 et 16450 peuvent suffire pour des vitesses n'exc�dant pas 38400 bps. � des vitesses sup�rieures, vous pouvez voir appara�tre des pertes de caract�res. D'autres syst�mes d'exploitation pour PC, comme DOS (d�finition approximative dans ce cas), qui ne sont pas multit�ches, peuvent � la rigueur mieux se d�brouiller avec des 8250 ou des 16450. C'est pour cela que certaines personnes ne constatent aucune perte de donn�es, jusqu'au moment o� elles passent � Linux.

Les cartes multiports intelligentes utilisent des DSP (Digital Signal Processors - processeurs de signaux digitaux) pour assurer des fonctions suppl�mentaires de contr�le et de mises en m�moire tampon, ce qui permet de d�charger encore plus le CPU. Par exemple, les cartes Cyclades Cyclom et Stallion EasyIO poss�dent un UART RISC Cirrus Logic CD1400. La plupart des autres cartes sont dot�es de CPU 80186, voire de CPU RISC sp�cifiques, pour assurer les entr�es/sorties s�rie.

Gardez � l'esprit que ces UART ne sont pas mauvais, mais qu'ils ne suffisent pas pour des vitesses �lev�es. Vous ne devriez pas rencontrer de probl�me en connectant un terminal ou une souris sur de tels UART. Par contre, les 16550A sont d�finitivement un must pour les modems hautes vitesses.

Les cartes � base d'UART 16550A sont � peine plus ch�res que celles � base de 16450. De m�me, il est possible de remplacer les UART 16450 existants sur une carte par des 16550A. Ces circuits sont compatibles broche � broche. Certaines cartes sont m�me �quip�es � cet effet d'UART mont�s sur support. Sinon, il faudra souder. Remarquez que vous vous �viterez s�rement pas mal de soucis en achetant directement une nouvelle carte.

13. R�soudre les probl�mes

13.1 Le message ``line NNN of inittab invalid'' s'affiche en permanence

Assurez-vous d'utiliser une syntaxe correcte pour votre version de init. En effet, chaque programme init ou presque a une syntaxe sp�cifique pour son fichier de configuration /etc/inittab. De m�me, v�rifiez les param�tres que vous passez � votre getty.

13.2 Le message ``/dev/cuaN: Device or resource busy'' appara�t quand j'essaie d'appeler

Ce probl�me peut survenir quand les signaux DCD ou DTR ne sont pas positionn�s correctement. DCD doit �tre lev� seulement lors d'une connexion (ie quelqu'un est d�j� connect�), et non pas quand getty scrute le port. Assurez-vous donc que le modem est configur� pour lever le signal DCD seulement en connexion. DTR doit �tre positionn� d�s qu'un processus utilise ou scrute la ligne, par exemple getty, kermit, ou n'importe quel autre programme de communications.

Une autre cause possible est que l'IRQ assign�e au port s�rie est d�j� prise par un autre p�riph�rique. En effet, lors de son initialisation, chaque p�riph�rique demande l'autorisation � Linux d'utiliser l'IRQ s�lectionn�e. Linux garde une trace de l'affectation des interruptions, et si une IRQ est en cours d'utilisation, votre p�riph�rique ne pourra pas s'initialiser. Celui-ci n'a aucun moyen de vous pr�venir, except� par le message ``device-busy'' lorsque vous tentez de l'utilisez. V�rifiez alors les interruptions de toutes vos cartes (s�rie, ethernet, SCSI, etc.) et les conflits �ventuels.

13.3 Le message ``Id SN respawning too fast: disabled for 5 minutes'' s'affiche p�riodiquement

Assurez-vous que votre modem est correctement configur�. Examinez particuli�rement les registres E et Q. Ce probl�me peut appara�tre lorque getty discute avec le modem.

V�rifiez �galement les param�tres que vous passez � getty dans /etc/inittab. Une syntaxe ou un nom de p�riph�rique erron� peut causer de s�rieux probl�mes.

La syntaxe de /etc/gettydefs peut �tre v�rifi�e par la commande suivante :

linux# getty -c /etc/gettydefs

Ce probl�me arrive quelquefois lors de l'�chec de l'initialisation de uugetty. Reportez-vous � la section getty ou uugetty ne fonctionne toujours pas.

13.4 Mes p�riph�riques s�rie sont lents ou unidirectionnels

La cause la plus probable est un conflit d'IRQ. Assurez-vous qu'aucune IRQ n'est partag�e. V�rifiez les cavaliers sur les diff�rentes cartes (s�rie, ethernet, SCSI, etc.) ainsi que les param�tres pass�s � setserial pour tous les p�riph�riques s�rie. Les conflits peuvent �tre localis�s avec /proc/ioports et /proc/interrupts.

13.5 Mon modem ne r�pond plus apr�s le raccrochage, ou uugetty ne se relance plus automatiquement

Cela peut se produire si le modem n'est pas r�initialis� lorque le signal DTR retombe. J'ai vu les LED RD et SD devenir folles quand �a m'est arriv�. Il faut alors r�initialiser le modem. La plupart des modems compatibles Hayes ont besoin de la commande &D3, mais sur mon USR Courier, je dois positionner &D2 et S13=1. V�rifiez dans la documentation de votre modem.

13.6 Un terminal est connect� � mon PC, mais il se bloque d�s que j'ai entr� mon nom d'utilisateur

13.7 Mon modem perd des donn�es � haute vitesse

Si vous essayez de faire fonctionner votre modem � plus de 38400 bps, vous devez obligatoirement passer en UART 16550A. Reportez-vous � la section Qu'est-ce que les UART ?.

13.8 Au d�marrage, Linux n'affiche pas les ports s�rie tels que je les ai param�tr�s

Effectivement, Linux ne cherche pas � d�tecter les IRQ au d�marrage, mais seulement les ports s�rie. Il suppose que vous utilisez les interruptions par d�faut, car leur d�tection est hasardeuse et peut se r�v�ler inexacte.

Ainsi, m�me si j'ai forc� ttyS2 � l'IRQ 5, je vois toujours :

Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A
quand Linux se lance. Il faut alors utiliser setserial pour indiquer les IRQ � Linux. Apr�s le d�marrage, vous pouvez v�rifier le param�trage effectif dans le fichier /proc/interrupts.

13.9 rz et/ou sz ne fonctionne pas quand j'appelle mon syst�me Linux avec un modem

Si Linux recherche le p�riph�rique /dev/modem quand vous tentez de transf�rer des fichiers, regardez les alias d�finis dans /etc/profile et /etc/csh.cshrc. Ils peuvent �tre nombreux suivant les distributions (notamment Slackware) et red�finir les programmes zmodem. Enlevez ces alias, ou corrigez-les.

13.10 Mon �cran imprime des caract�res bizarres

Ce ph�nom�ne se produit sur les consoles virtuelles, et parfois sur les lignes s�rie, quand elles re�oivent des donn�es binaires. Il faut alors taper echo ^v^[c, c'est-�-dire :

linux% echo <ctrl>v<esc>c

13.11 getty ou uugetty ne fonctionne toujours pas

getty_ps fournit une option DEBUG que l'on peut sp�cifier dans le fichier de configuration /etc/conf.{uu}getty.ttySN. �ditez-le pour ajouter la ligne DEBUG=NNN o� NNN est une combinaison de valeurs octales d�finissant les informations que vous voulez obtenir :

D_OPT   001            configuration des options
D_DEF   002            traitement du fichier des valeurs par defaut
D_UTMP  004            traitement de utmp/wtmp
D_INIT  010            initialisation de la ligne (INIT)
D_GTAB  020            traitement du fichier gettytab
D_RUN   040            autres diagnostics lors de l'execution
D_RB    100            traitement du mode de rappel (ringback)
D_LOCK  200            traitement des fichiers verrou pour uugetty
D_SCH   400            traitement de la programmation horaire (schedule)
D_ALL   777            tout 
Positionner DEBUG=010 est un bon point de d�part.

Si syslogd tourne, ces informations appara�tront dans les fichiers log. Dans le cas contraire, elles seront enregistr�es dans /tmp/getty:ttySN pour getty, dans /tmp/uugetty:ttySN pour uugetty, et dans /var/adm/getty.log. Consultez ces fichiers pour d�terminer ce qui se passe. Vous devrez tr�s probablement ajuster certains param�tres dans le fichier de configuration, et reconfigurer votre modem.

Vous pouvez �galement essayer mgetty : certaines personnes ont plus de chance avec...

14. Autres sources d'information

15. Contributions

Il ne m'aurait pas �t� possible de r�diger ce HOWTO tout seul. M�me si j'en ai �crit la plus grande partie, j'ai d� reprendre pas mal d'articles existants. Merci � tous ceux qui ont contribu� � ce document, ou qui l'ont comment�. La liste de ces personnes est maintenant trop longue pour figurer ici (plus d'une centaine). J'adresse plus particuli�rement mes remerciements � Ted T'so pour toutes ses r�ponses sur les p�riph�riques s�rie, � Kris Gleason pour la maintenance de getty_ps, et � Gert Döring pour mgetty.

Note du traducteur : un grand merci � Olivier Tharan et Florian Salamin pour la relecture, ainsi qu'� Eric Dumas pour la gestion des traductions fran�aises et � S�bastien Blondeel pour la mise en place d'un syst�me centralis� des relectures.

FIN DU LINUX HOWTO POUR LES PORTS S�RIE