greg.hankins@cc.gatech.edu
eric@midix.frmug.org
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.
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.
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
.
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.
Votre syst�me peut varier par rapport aux exemples, et les solutions pr�sent�es dans ce HOWTO peuvent ne pas fonctionner.
Les mat�riels suivants fonctionnent correctement sous Linux.
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.
M�me si les modems PnP fonctionnent sous Linux, je ne les recommande pas. N�anmoins, voici quelques conseils :
loadlin
.
http://www.redhat.com/linux-info/pnp
.
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.
info@comtrol.com
ou
http://www.comtrol.com
ftp://tsx-11.mit.edu/pub/linux/packages/comtrol
mhw@wittsend.atl.ga.us
sales@cyclades.com
ou
http://www.cyclades.com
ftp://ftp.cyclades.com/pub/cyclades
et inclus dans
le noyau Linux depuis la version 1.1.75
pccom8@signum.se
ftp://ftp.signum.se/pub/pccom8
sales@dgii.com
ou
http://www.dgii.com
ftp://ftp.dgii.com/drivers/linux
et inclus dans le
noyau Linux depuis la version 2.0
si@wimpol.demon.co.uk
fray@krypton.mankato.msus.edu
s'est gracieusement
port� volontaire pour rendre le gestionnaire de p�riph�rique
disponible si vous en avez besoin. N�anmoins, Mark ne s'occupe
pas de la maintenance ni du support de ce gestionnaire.
sales@equinox.com
ou
http://www.equinox.com
ftp://ftp.equinox.com/library/sst
spot@gtek.com
ou
http://www.gtek.com
ftp://ftp.gtek.com/pub
arobinso@nyx.net
ou
http://www.nyx.net/~arobinso
http://www.nyx.net/~arobinso
et inclus dans
le noyau Linux depuis la version 2.1.15
info@maxpeed.com
ou
http://www.maxpeed.com
ftp://maxpeed.com/pub/ss
info@moxa.com.tw
ou
http://www.moxa.com.tw
ftp://ftp.moxa.com.tw/drivers/c218-320/linux
sales@sdlcomm.com
ou
http://www.sdlcomm.com
ftp://ftp.sdlcomm.com/pub/drivers
simonallen@cix.compulink.co.uk
ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial
sales@stallion.com
ou
http://www.stallion.com
ftp://ftp.stallion.com/drivers/ata5/Linux
et inclus
dans le noyau Linux depuis la version 1.3.27Un 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
.
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.
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.
/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*
/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.
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
.
Lisez les informations fournies avec le gestionnaire. Ces cartes utilisent des p�riph�riques non-standards. Ces informations varient suivant le mat�riel.
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
.
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.
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/
.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.ttyS
N,
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
.
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/cua
N � la place de
/dev/ttyS
N.
Une fois que vous avez termin� l'�dition de
/etc/gettydefs
, vous pouvez en v�rifier la syntaxe
par :
linux# getty -c /etc/gettydefs
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.ttyS
N
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.ttyS
N. 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).
Ces instructions permettent aussi bien de connecter des terminaux que d'autres ordinateurs sur le port s�rie de votre machine Linux.
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�.
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.ttyS
N ou
/etc/conf.{uu}getty.ttyS
N), 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.
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.
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.
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
.
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
.
Cette section a pour but de vous aider � d�terminer la vitesse
du modem � utiliser avec un programme de communications ou
getty
.
spd_hi
de
setserial
.
Pour les modems 28800 ou 33600 bps (V.FC ou V.34), utiliser
l'option spd_vhi
(4 * 28800 = 115200).
Enfin, fixez la vitesse � 38400 bps dans votre programme de
communications ou /etc/inittab
. Vous �tes maintenant en
grande vitesse ! Assurez-vous de poss�der des UART 16550A.
Il existe des vitesses nomm�es 57600 et 115200 dans les versions
de libc
sup�rieures ou �gales � 5.x (� v�rifier dans le
r�pertoire /lib
). Dans ce cas, vous pouvez les
s�lectionner directement (sans passer par setserial
) si vos
applications ont �t� compil�es de mani�re � en tirer avantage.
Il existe tellement de distributions Linux, que le mieux � faire
est d'essayer directement ces vitesses si votre distribution est
assez r�cente.
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
Voici une liste de logiciels de communications que vous pouvez t�l�charger par FTP, s'ils ne sont pas fournis dans votre distribution :
ecu
- un programme de communicationsminicom
- un programme de communications du genre de
telix
pcomm
- un programme de communications du genre de
procomm
avec protocole zmodemseyon
- un programme de communications sous X11xc
- paquetage de communications xcommterm
et SLiRP
qui offrent des fonctionnalit�s TCP/IP � partir d'un compte
shell. screen
est un autre programme multi-sessions qui se
comporte comme les consoles virtuelles.callback
est un programme permettant � votre modem de
se faire rappeler.mgetty+fax
g�re le mode FAX, et offre un getty
alternatif.ZyXEL
est un programme de contr�le pour les modems
ZyXEL U-1496. Il g�re les appels entrants et sortants, la
s�curit� pour le rappel automatique, le mode FAX, et poss�de des
fonctions de messagerie vocale.
ftp://sunsite.unc.edu/pub/Linux/system/network/serial
.
ftp://sunsite.unc.edu/pub/Linux/system/serial
et
ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm
ou
sur l'un des nombreux sites miroirs.Je vous pr�sente ici quelques astuces que vous pourrez trouver utiles...
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
.
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.
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.
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
.
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.
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.
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
)
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
.
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.
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�.
``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 !
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.
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.
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.
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
.
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.
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.
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
.
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.
getty
, vous devez faire figurer
CLOCAL
dans l'entr�e correspondante de
/etc/gettydefs
, et utiliser un c�ble null-modem
complet. L'option CLOCAL
indique � Linux d'ignorer les
signaux de contr�le sp�cifiques aux modems :
# 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
Ensuite, tuez (kill
) le processus getty
afin
qu'une nouvelle instance soit lanc�e avec les entr�es mises �
jour.
agetty
, ajoutez l'option -L
�
la ligne correspondante de /etc/inittab
, pour indiquer
que vous d�sirez ignorer les signaux de contr�le sp�cifiques aux
modems. Red�marrez init
en tapant init q
. L'entr�e
doit ressembler � :
s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
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 ?.
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
.
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.
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
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.ttyS
N. �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:ttyS
N pour getty
, dans
/tmp/uugetty:ttyS
N 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...
agetty(8)
, getty(1m)
,
gettydefs(5)
, init(1)
, login(1)
, mgetty(8)
,
setserial(8)
term
comp.os.linux.answers
FAQ, How-To, README, etc. a propos de Linux.
comp.os.linux.hardware
compatibilite materielle avec le systeme d'exploitation Linux.
comp.os.linux.networking
reseaux et communications sous Linux.
comp.os.linux.setup
installation et administration systeme sous Linux.
fr.comp.os.linux
forum de discussion sur Linux en francais
majordomo@vger.rutgers.edu
, avec ``subscribe
linux-serial
'' dans le corps du message. La commande ``help
''
dans le corps du message vous permet de recevoir une message d'aide sur
les commandes support�es. Ce serveur g�re �galement d'autres listes
consacr�es � Linux ; pour les conna�tre, envoyez la commande
``lists
''.
http://www.cyclades.com
.
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