Le Linux HOWTO pour les ports serie
Greg Hankins,
[email protected]
traduit par Eric Festinger,
[email protected]
v1.11, 15 Novembre 1997
Ce document decrit la configuration sous Linux des ports serie, des
programmes associes, et des peripheriques qui y sont connectes.
11.. IInnttrroodduuccttiioonn
Ce document est la traduction francaise du Linux Serial HOWTO. Il
tente de decrire la configuration des modems et terminaux sous Linux,
de donner quelques conseils, et enfin de resoudre les problemes lies
aux ports serie. Il est destine plus particulierement aux plateformes
Intel x86, meme s'il doit etre applicable a d'autres architectures.
11..11.. CCooppyyrriigghhtt
Copyright (c) 1993 - 1997 Greg Hankins. Ce document peut etre
redistribue sous les termes de la licence LDP disponible a
http://sunsite.unc.edu/LDP/COPYRIGHT.html. Il ne peut etre modifie
sans l'accord de son auteur.
11..22.. NNoouuvveelllleess vveerrssiioonnss ddee ccee ddooccuummeenntt
La version originale la plus recente de ce document est disponible a
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/ ainsi que sur les sites
miroirs. D'autres formats (PostScript, DVI...) existent dans le
repertoire other-formats. Ce HOWTO est egalement consultable a
http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html et est poste
mensuellement dans le forum de discussions comp.os.linux.answers.
La version francaise est disponible sur
http://www.freenix.fr/linux/HOWTO/Serial-HOWTO.html, et est postee
tous les mois dans fr.comp.os.linux.annonces.
11..33.. RReettoouurr dd''iinnffoorrmmaattiioonnss
Merci de me faire parvenir par email a
[email protected]
toutes questions, commentaires et suggestions. Je suis extremement
interesse par ce que vous pensez a propos de ce HOWTO, et par les
eventuelles ameliorations. Faites-moi part de ce que vous ne
comprenez pas ou de ce qui necessite des eclaircissements. Je
repondrais a tous les emails, meme si ca peut me prendre une semaine
ou plus. Je recois beaucoup de messages de root ou de sites mal
configures. Assurez-vous de m'envoyer un message electronique en tant
que personne reelle, ainsi que du bon fonctionnement de votre systeme
de messagerie. Si vous n'avez toujours pas de reponse de ma part au
bout de deux semaines, merci de m'envoyer a nouveau votre message.
Je peux egalement etre joint a :
Greg Hankins
College of Computing
801 Atlantic Drive
Atlanta, GA 30332-0280
par courrier postal, et a
http://www.cc.gatech.edu/staff/h/Greg.Hankins/.
Merci d'inclure le numero de version de ce HOWTO dans votre message.
Ceci est la version 1.11.
11..44.. AAvveerrttiisssseemmeenntt
Votre systeme peut varier par rapport aux exemples, et les solutions
presentees dans ce HOWTO peuvent ne pas fonctionner.
22.. MMaatteerriieell ssuuppppoorrttee
Les materiels suivants fonctionnent correctement sous Linux.
22..11.. CCaarrtteess sseerriiee ssttaannddaarrddss ppoouurr PPCC
+o cartes serie standards pour PC (COM1 - COM4), auxquelles peuvent
etre connectes des peripheriques serie externes (modems, souris
serie, etc.)
+o modems internes standards pour PC (COM1 - COM4)
+o Quickpath Systems Port-Folio 550e (autorisant les IRQ 3, 4, 5, 9,
10, 11, 12, ou 15)
Remarque : en raison de conflits d'adresses, vous ne pouvez pas
utilisez simultanement COM4 et une carte video IBM8514. Ceci est du a
un bogue de la carte IBM8514.
22..22.. MMooddeemmss PPlluugg AAnndd PPllaayy ((PPnnPP))
Meme si les modems PnP fonctionnent sous Linux, je ne les recommande
pas. Neanmoins, voici quelques conseils :
+o Essayez de desactiver les fonctionnalites PnP dans le BIOS de
l'ordinateur et du modem.
+o Demarrez sous Win95, configurez le modem, et verifiez que les
parametres sont sauvegardes lorsque vous redemarrez sous Linux. Si
ce n'est pas le cas :
+o Demarrez sous Win95, configurez le modem, et redemarrez a chaud
(_w_a_r_m _b_o_o_t) sous Linux, de maniere a ce que les parametres soient
preserves. Vous pouvez effectuer cette manipulation avec loadlin.
+o Recuperez les outils PnP a
http://www.redhat.com/linux-info/pnp.
+o Et, bien sur, utilisez un _v_r_a_i modem :-)
22..33.. CCaarrtteess sseerriiee mmuullttiippoorrttss ssiimmpplleess ((eeqquuiippeeeess dd''UUAARRTT
88225500//1166445500//1166555500AA))
+o AST FourPort et compatibles (4 ports)
+o Accent Async-4 (4 ports)
+o Arnet Multiport-8 (8 ports)
+o Bell Technologies HUB6 (6 ports)
+o Boca BB-1004 (4 ports), BB-1008 (8 ports), BB-2016 (16 ports)
+o Boca IOAT66 (6 ports)
+o Boca 2by4 (4 ports serie, 2 ports paralleles)
+o Computone ValuePort V4-ISA (compatible AST FourPort)
+o Digi PC/8 (8 ports)
+o GTEK BBS-550 (8 ports)
+o Longshine LCS-8880, Longshine LCS-8880+ (compatible AST FourPort)
+o Moxa C104, Moxa C104+ (compatible AST FourPort)
+o PC-COMM (4 ports)
+o Sealevel Systems <
http://www.sealevel.com> COMM-2 (2 ports),
COMM-4 (4 ports) et COMM-8 (8 ports)
+o SIIG I/O Expander 2S IO1812 (4 ports)
+o STB-4COM (4 ports)
+o Twincom ACI/550
+o Usenet Serial Board II (4 ports)
De maniere generale, Linux supporte n'importe quelle carte equipee
d'un UART 8250, 16450, 16550 ou 16550A (ou compatible), et n'importe
quel modem emulant 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 repondeurs. Ils
fonctionnent neanmoins tres bien dans les autres cas.
22..44.. CCaarrtteess sseerriiee mmuullttiippoorrttss iinntteelllliiggeenntteess
+o Comtrol RocketPort (ASIC 36MHz ; 4, 8, 16 ou 32 ports)
contact :
[email protected] ou
http://www.comtrol.com
etat du gestionnaire de peripherique : supporte par Comtrol
emplacement :
ftp://tsx-11.mit.edu/pub/linux/packages/comtrol
+o Computone IntelliPort II (80186 16MHz ; 4, 8, ou 16 ports),
IntelliPort II EXpandable (80186 20MHz ; 16 - 64 ports)
contact : Michael H. Warfield,
[email protected]
etat du gestionnaire de peripherique : pre-ALPHA
+o Cyclades Cyclom-Y (UART Cirrus Logic CD1400 ; 8 - 32 ports),
Cyclom-Z (MIPS R3000 25MHz ; 8 - 128 ports)
contact :
[email protected] ou
http://www.cyclades.com
etat du gestionnaire de peripherique : supporte par Cyclades
emplacement :
ftp://ftp.cyclades.com/pub/cyclades et inclus dans le
noyau Linux depuis la version 1.1.75
+o Decision PCCOM8 (8 ports)
contact :
[email protected]
emplacement :
ftp://ftp.signum.se/pub/pccom8
+o Digi PC/Xi (80186 12.5MHz ; 4, 8, ou 16 ports),
PC/Xe (80186 12.5/16MHz ; 2, 4, ou 8 ports),
PC/Xr (IDT3041 16MHz ; 4 ou 8 ports),
PC/Xem (IDT3051 20MHz ; 8 - 64 ports)
contact :
[email protected] ou
http://www.dgii.com
etat du gestionnaire de peripherique : supporte par Digi
emplacement :
ftp://ftp.dgii.com/drivers/linux et inclus dans le
noyau Linux depuis la version 2.0
+o Digi COM/Xi (80188 10MHz ; 4 ou 8 ports)
contact : Simon Park,
[email protected]
etat du gestionnaire de peripherique : ALPHA
Remarque : regulierement, Simon ne peut pas lire son mail pendant
plusieurs mois a cause de son travail. Mark Hatle,
[email protected] s'est gracieusement porte volontaire
pour rendre le gestionnaire de peripherique disponible si vous en
avez besoin. Neanmoins, Mark ne s'occupe pas de la maintenance ni
du support de ce gestionnaire.
+o Equinox SuperSerial Technology (ASIC 30MHz ; 2 - 128 ports)
contact :
[email protected] ou
http://www.equinox.com
etat du gestionnaire de peripherique : supporte par Equinox
emplacement :
ftp://ftp.equinox.com/library/sst
+o GTEK Cyclone (UART 16C654 ; 6, 16 et 32 ports),
SmartCard (Dallas DS80C320 24MHz ; 8 ports),
BlackBoard-8A (UART 16C654 ; 8 ports),
PCSS (8032 15/24MHz ; 8 ports)
contact :
[email protected] ou
http://www.gtek.com
etat du gestionnaire de peripherique : supporte par GTEK
emplacement :
ftp://ftp.gtek.com/pub
+o Hayes ESP (COM-bic ; 1 - 8 ports)
contact : Andrew J. Robinson,
[email protected] ou
http://www.nyx.net/~arobinso
etat du gestionnaire de peripherique : supporte par l'auteur
emplacement :
http://www.nyx.net/~arobinso et inclus dans le noyau
Linux depuis la version 2.1.15
+o Maxpeed SS (Toshiba ; 4, 8 et 16 ports)
contact :
[email protected] ou
http://www.maxpeed.com
etat du gestionnaire de peripherique : supporte par Maxpeed
emplacement :
ftp://maxpeed.com/pub/ss
+o Moxa C218 (80286 12MHz ; 8 ports),
Moxa C320 (TMS320 40MHz ; 8 - 32 ports)
contact :
[email protected] ou
http://www.moxa.com.tw
etat du gestionnaire de peripherique : supporte par Moxa
emplacement :
ftp://ftp.moxa.com.tw/drivers/c218-320/linux
+o SDL RISCom/8 (Cirrus Logic CD180 ; 8 ports)
contact :
[email protected] ou
http://www.sdlcomm.com
etat du gestionnaire de peripherique : supporte par SDL
emplacement :
ftp://ftp.sdlcomm.com/pub/drivers
+o Specialix SIO (Zilog Z280 20MHz ; 4 - 32 ports),
XIO (25MHz Zilog Z280 ; 4 - 32 ports)
contact : Simon Allen,
[email protected]
etat du gestionnaire de peripherique : BETA
emplacement :
ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial
+o Stallion EasyIO-4 (4 ports), EasyIO-8 (8 ports), et
EasyConnection (8 - 32 ports) - toutes avec des UART,
Stallion (CPU 80186 8MHz ; 8 ou 16 ports),
Brumby (CPU 80186 10/12 MHz ; 4, 8 ou 16 ports),
ONboard (CPU 80186 16MHz ; 4, 8, 12, 16 ou 32 ports),
EasyConnection 8/64 (CPU 80186 25MHz ; 8 - 64 ports)
contact :
[email protected] ou
http://www.stallion.com
etat du gestionnaire de peripherique : supporte par Stallion
emplacement :
ftp://ftp.stallion.com/drivers/ata5/Linux et inclus
dans le noyau Linux depuis la version 1.3.27
Un descriptif des produits Comtrol, Cyclades, Digi, et Stallion est
paru dans le numero 14 de juin 1995 du _L_i_n_u_x _J_o_u_r_n_a_l. Il est
disponible a
http://www.ssc.com/lj/issue14.
22..55.. MMaatteerriieell nnoonn ssuuppppoorrttee
Les modems dits ``Winmodems'', par exemple l'USR Sportster Winmodem et
l'IBM Aptiva MWAVE, ne sont _p_a_s supportes sous Linux. Ils utilisent
des technologies proprietaires necessitant des gestionnaires de
peripheriques speciaux pour Windows. Les modems necessitant des
gestionnaires Rockwell RPI sont a eviter pour la meme raison.
Les cartes serie intelligentes necessitant des gestionnaires non
disponibles sous Linux, ne pourront pas fonctionner.
33.. CCoommmmeenntt ssee nnoommmmeenntt lleess ppoorrttss sseerriiee ??
Un port d'E/S permet de recevoir des donnees depuis, et d'en envoyer a
partir d'un ordinateur. Il existe plusieurs types de ports d'E/S,
comme les ports serie, les ports paralleles, les controleurs de
disques durs, les cartes Ethernet, etc. Les modems et les terminaux
dont nous allons traiter n'utilisent que des ports serie. Chacun de
ces ports possede une adresse d'E/S, et un vecteur d'interruption
(IRQ). Les quatre ports serie suivants correspondent a 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 serie n'est detecte lors de l'amorcage de Linux,
assurez-vous que leur support a ete selectionne et compile dans le
noyau. Dans ce document, je me refere a COM1 pour ttyS0, COM2 pour
ttyS1, COM3 pour ttyS2, et a COM4 pour ttyS3. Par defaut, ces ports
ont des IRQ communes, et vous ne pouvez pas les utiliser simultanement
dans cette configuration. Certaines de ces IRQ doivent etre reas-
signees. Reportez-vous a la section ``Puis-je utiliser plus de deux
ports serie ?''.
Sur certaines installations, deux peripheriques supplementaires vont
etre crees : /dev/modem pour le modem et /dev/mouse pour la souris.
Ce sont des liens symboliques sur le peripherique approprie (dans le
repertoire /dev) que vous avez specifie lors de l'installation. Si
vous possedez une souris de type bus PS/2, /dev/mouse pointera
correctement sur le peripherique de la souris bus.
Plusieurs discussions ont porte sur les avantages et inconvenients de
ces pseudo-peripheriques /dev/mouse et /dev/modem. Personnellement,
je decourage _f_o_r_t_e_m_e_n_t l'utilisation de ces liens. En particulier, si
vous prevoyez d'employer plusieurs modems pour les connexions
entrantes sur /dev/modem, des problemes peuvent apparaitre a cause des
fichiers de verrouillage (_l_o_c_k _f_i_l_e_s). Vous pouvez neanmoins les
utiliser si vous le desirez, mais _a_s_s_u_r_e_z_-_v_o_u_s _q_u_'_i_l_s _p_o_i_n_t_e_n_t _b_i_e_n
_s_u_r _l_e_s _b_o_n_s _p_e_r_i_p_h_e_r_i_q_u_e_s. Cependant, si vous supprimez ces liens,
certaines applications (comme minicom) peuvent ne plus fonctionner
sans reconfiguration.
33..11.. PPeerriipphheerriiqquueess sseerriiee eett nnuummeerrooss ddaannss //ddeevv
/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 etre livrees avec ces
peripheriques deja correctement configures, ce que vous pouvez veri-
fier en tapant les commandes :
linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*
33..11..11.. CCrreeeerr lleess ppeerriipphheerriiqquueess ddaannss //ddeevv
Si un peripherique est absent, vous devez le creer 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, situe dans le repertoire /dev, peut etre utilise
pour simplifier leur creation. Par exemple, pour ttyS0 :
linux# cd /dev
linux# ./MAKEDEV ttyS0
Cette commande cree les peripheriques d'entree et de sortie correspon-
dants, et positionne egalement les bonnes permissions.
33..22.. RReemmaarrqquueess ppoouurr lleess ccaarrtteess mmuullttiippoorrttss ssiimmpplleess
Les peripheriques utilises par les cartes multiports sont dependants
du type de carte que vous possedez. Ils sont listes en detail dans le
fichier rc.serial fourni avec le programme setserial. Je recommande
vivement de recuperer la version la plus recente de setserial si vous
devez utiliser une telle carte. Vous devrez alors surement creer ces
peripheriques, soit avec la commande mknod, soit avec le script
MAKEDEV. Ils doivent etre declares en ajoutant 64 au numero 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 errone
dans le manuel SIIG. Les valeurs doivent etre remplacees par
COM5=0x250, COM6=0x258, COM7=0x260, et COM8=0x268.
Remarque : le registre d'etat d'interruption (_I_n_t_e_r_r_u_p_t _S_t_a_t_u_s
_R_e_g_i_s_t_e_r) de la carte Digi PC/8 se trouve en 0x140.
Remarque : pour la carte AST Fourport, le fichier rc.serial doit
specifier le parametre skip_test.
33..33.. RReemmaarrqquueess ppoouurr lleess ccaarrtteess mmuullttiippoorrttss iinntteelllliiggeenntteess
Lisez les informations fournies avec le gestionnaire. Ces cartes
utilisent des peripheriques non-standards. Ces informations varient
suivant le materiel.
44.. QQuueellqquueess pprrooggrraammmmeess iinntteerreessssaannttss aa ccoonnnnaaiittrree
44..11.. QQuu''eesstt--ccee qquuee ggeettttyy ?
getty est un programme qui gere la phase d'entree en session (_l_o_g_i_n)
sur un systeme 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 utilisees avec Linux : getty_ps, mgetty et agetty. Chacune
possede sa propre syntaxe. Aussi, assurez-vous d'utiliser celle
correspondant a votre version de getty.
44..11..11.. AA pprrooppooss ddee ggeettttyy__ppss
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.
44..11..22.. AA pprrooppooss ddee mmggeettttyy
mgetty est un getty specialise pour l'utilisation avec des modems. Par
rapport aux autres versions, mgetty gere les fax, et detecte
automatiquement les connexions PPP. La documentation est excellente et
suffisante. Veuillez vous y reporter pour l'installation. Les
informations les plus recentes sur mgetty peuvent etre trouvees a
http://www.leo.org/~doering/mgetty/.
44..11..33.. AA pprrooppooss ddee aaggeettttyy
agetty est la troisieme variante de getty. C'est une version simple
completement fonctionnelle, et plus particulierement destinee a
l'utilisation des consoles virtuelles et des terminaux plutot que des
modems.
44..22.. QQuu''eesstt--ccee qquuee sseettsseerriiaall ?
setserial est un programme autorisant la consultation et la
modification des differents attributs (adresse de port, interruption,
etc.) d'un peripherique serie. Vous pouvez determiner le numero de
version installee en lancant setserial sans argument.
Lorsque votre systeme Linux demarre, seuls ttyS{0-3} sont configures
avec les IRQ positionnees par default a 4 et 3. Si vous possedez
d'autres ports serie sur d'autres cartes, ou si ttyS{0-3} utilisent
des IRQ non standards, vous _d_e_v_e_z lancer ce programme pour configurer
ces ports. Consultez le manuel pour une description complete des
options.
55.. CCoommmmeenntt ppuuiiss--jjee aappppeelleerr aavveecc mmoonn mmooddeemm ??
55..11.. MMaatteerriieell nneecceessssaaiirree
Tout d'abord, assurez-vous d'avoir le bon cable. Votre modem requiert
un cable droit, sans inversion de fils. Vous devriez pouvoir vous en
procurer dans n'importe quel magasin d'informatique. Verifiez
egalement le genre des connecteurs. Pour un port a 25 broches, ce
sera toujours un modele male DB25, a ne pas confondre avec les ports
paralleles a embase femelle DB25. Connectez votre modem sur un de vos
ports serie. Consultez si necessaire le manuel de votre modem.
55..11..11.. RReemmaarrqquueess ppoouurr lleess mmooddeemmss iinntteerrnneess
Pour un modem interne, aucun cable n'est necessaire. De meme, aucun
port serie n'est requis, car la carte modem en possede 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'a la section ``Puis-je utiliser plus
de deux peripheriques serie ?'' si vous avez besoin d'aide pour
choisir les interruptions et les adresses.
Sur certaines cartes meres, il peut etre necessaire de desactiver les
ports serie afin d'eviter les conflits avec le modem. Cette
manipulation peut etre effectuee avec des cavaliers ou les parametres
du BIOS. Consultez le manuel de votre carte mere.
Suite a un bogue des cartes video IBM8514, les modems internes ne
peuvent pas fonctionner sur ttyS3. Si Linux ne detecte 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 probleme de detection. Linux n'effectue pas
d'autoconfiguration du ttyS3 a cause de ce bogue lie a la carte video.
55..22.. ````PPaarrlleezz'''' aa vvoottrree mmooddeemm
Avant de vous lancez dans le parametrage assez complexe de SLIP ou
PPP, utilisez kermit ou n'importe quel autre programme de
communication pour tester votre configuration. La version la plus
recente de kermit peut etre telechargee depuis
http://www.columbia.edu/kermit/. L'exemple suivant suppose que votre
modem est sur ttyS3, et que sa vitesse est fixee a 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 repond aux commandes AT, vous pouvez supposer qu'il
fonctionne correctement du cote Linux. Il ne reste plus qu'a essayer
d'appeler un autre modem :
ATDT7654321
ou 7654321 est un numero de telephone. Utilisez ATDP a la place de
ATDT si vous n'etes pas connecte a un central numerique. Votre modem
fonctionne si l'appel aboutit.
Pour revenir a l'invite kermit, appuyez simultanement 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 numerotation ``a la main''. La
methode normale est de laisser kermit numeroter a votre place a l'aide
de sa base de donnees 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 a la section ``Programmes de communication'' pour plus
de liens.
Lorsque vous appelez avec votre modem, parametrez la vitesse au debit
maximal supporte par votre modem. Les systemes Linux avec une version
de la libc superieure a 5.x supportent des vitesses jusqu'a 115200
bps. libc est habituellement situee dans /lib. Verifiez dans ce
repertoire la version que vous avez. Si Linux ne reconnait pas des
vitesses de 57600 ou 115200 bps, vous devez alors utiliser le program
setserial pour passer votre port serie a une vitesse superieure.
Reportez-vous a la section ``Comment configurer mes ports serie a des
vitesses superieures ?''. Selectionnez ensuite une vitesse de 38400
bps dans votre programme de communications.
55..33.. CCoonnffiigguurraattiioonn dduu mmooddeemm eenn mmooddee aappppeellaanntt
Pour appeler, vous pouvez configurer votre modem comme vous le voulez.
Si vous souhaitez l'utiliser pour des communications entrantes, vous
_d_e_v_e_z parametrer votre modem a la meme vitesse que pour getty. Ainsi,
si vous voulez executer getty a 38400 bps, fixez egalement la vitesse
a 38400 bps lors du parametrage du modem, pour eviter une
incompatibilite de vitesses avec l'ordinateur. En general, les
reglages d'usine avec correction d'erreurs et controle de flux
materiel correspondent au reglage optimal en mode appelant. Consultez
le manuel du modem pour obtenir ces reglages.
55..44.. CCoonnttrroollee ddee fflluuxx mmaatteerriieell
Je vous recommande vivement d'utiliser le controle de flux materiel
(RTS/CTS) si votre modem le supporte. Cette fonctionalite est
particulierement importante lorsque la compression de donnees est
active. Premierement, vous devez autoriser le controle de flux
RTS/CTS sur le port serie. Le mieux est de le faire au demarrage, par
exemple dans /etc/rc.d/rc.local ou /etc/rc.d/rc.serial. Assurez-vous
que ces fichiers sont bien executes par le fichier principal
rc.sysinit. Ensuite, pour chacun des ports serie pour lesquels vous
desirez activer le controle de flux materiel, vous devez entrer la
commande suivante :
stty crtscts < /dev/ttyS3
Vous devez egalement activer le controle de flux RTS/CTS sur le modem.
Consultez le manuel du modem, car le parametrage varie suivant les
fabricants. N'oubliez pas de sauvegarder cette configuration, si votre
modem le permet.
66.. CCoommmmeenntt ppuuiiss--jjee aappppeelleerr eett eettrree aappppeellee aavveecc mmoonn mmooddeemm eett
ggeettttyy__ppss ?
Faites deja fonctionner correctement votre modem en mode appelant. Si
vous n'avez pas encore lu la section ``Comment puis-je appeler avec
mon modem ?'', _l_i_s_e_z_-_l_a _m_a_i_n_t_e_n_a_n_t ! Elle contient des informations
importantes sur la configuration. Il _n_'_e_s_t _p_a_s _n_e_c_e_s_s_a_i_r_e de lire
cette section si vous souhaitez juste _a_p_p_e_l_e_r avec votre modem.
66..11.. CCoonnffiigguurraattiioonn eenn mmooddeess aappppeellaanntt eett aappppeellee
Encore une fois, le modem _d_o_i_t etre specialement configure (avec les
commandes AT) afin de pouvoir etre utilise aussi bien en appelant
qu'en appele :
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 selectionnees, il se peut que la chaine
d'initialisation definie dans le fichier de configuration, ne fonc-
tionne 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 reglages determinent le comportement du modem au debut et a la fin
d'un appel.
Si votre modem ne permet pas la sauvegarde d'un profil, ces parametres
peuvent etre indiques dans la chaine d'initialisation du fichier de
configuration. Certains modems sont pourvus de commutateurs DIP qui
affectent les valeurs des registres. Assurez-vous egalement qu'ils
sont correctement configures.
J'ai debute une compilation de configurations pour differents modeles
de modems. Pour l'instant, j'en ai seulement quelques uns. Ne vous
privez donc pas de m'envoyer vos parametrages operationnels. Cette
collection est recuperable a
ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs.
Remarque : pour que mon modem USR Courier V.34 se reinitialise
correctement a l'ouverture du signal DTR, je suis oblige de forcer &D2
et S13=1 (le bit 0 du registre S13 est mis a 1). On m'a confirme que
ca fonctionnait aussi sur les modems USR Sportster V.34.
Remarque : certains modems Supra traitent le signal DCD differement.
Dans ce cas, essayez avec &C0 et _n_o_n &C1. &D2 doit egalement etre
positionne afin de gerer correctement le DTR.
66..22.. IInnssttaalllleerr ggeettttyy__ppss
Recuperez la derniere version a partir de
sunsite.unc.edu:/pub/Linux/system/serial. Les versions 2.0.7j et
ulterieures sont indispensables pour les hauts debits (57600 and
115200 bps). Vous devez aussi avoir la libc 5.x ou superieure.
Par defaut, getty_ps est conforme au FSSTND Linux (_F_i_l_e _S_y_s_t_e_m
_S_t_a_n_d_a_r_d - norme de systeme de fichiers), ce qui implique que les
binaires resident dans /sbin, et les fichiers verrous (_l_o_c_k _f_i_l_e_s)
dans /var/lock. Assurez-vous donc que le repertoire /var/lock existe
bien.
Si vous ne souhaitez pas la conformite FSSTND, les binaires seront
stockes dans /etc, les fichiers de configuration dans
/etc/default/{uu}getty.ttyS_N, et les fichiers verrous dans
/usr/spool/uucp. Je recommande cette methode en cas d'utilisation
conjointe avec UUCP afin que les fichiers verrous soient bien partages
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 deja. Les messages sont
enregistres avec la priorite LOG_AUTH, les erreurs avec LOG_ERR, et
les informations de debogage avec LOG_DEBUG. Si vous ne souhaitez pas
utiliser syslogd, editez tune.h dans le repertoire des fichiers source
de getty_ps pour enregistrer les messages dans un fichier,
/var/adm/getty.log par defaut.
Vous devez donc decider si vous voulez la conformite FSSTND, les
possibilites offertes par syslog, ou une combinaison des deux.
Modifiez en consequence les fichiers Makefile, tune.h et config.h. Il
ne reste plus qu'a compiler et installer le paquetage, en suivant les
instructions fournies.
A partir de maintenant, toutes les references a getty concerneront
getty_ps, et celles a uugetty le programme uugetty fourni avec le
paquetage getty_ps. Ces instructions ne sont pas applicables a mgetty
ou agetty.
66..33.. CCoonnffiigguurreerr uuuuggeettttyy
uugetty, qui assure d'importantes verifications sur les fichiers
verrous, sera utilise pour se connecter sur votre modem. Mettez a
jour /etc/gettydefs pour inclure les differentes entrees pour les
modems, si elles ne sont pas deja presentes (remarquez que ces entrees
sont rebouclees sur elles-memes et autorisent donc differentes
vitesses - une ligne vide est necessaire entre deux entrees) :
# 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 donnees, vous pouvez fixer une vitesse constante pour
le port serie et laisser le modem choisir la vitesse de connexion. Le
fichier /etc/gettydefs se simplifie et ne necessite 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 controle de flux RTS/CTS est active sur votre modem, le drapeau
CRTSCTS peut etre ajoute dans les entrees :
# 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 desirez, uugetty peut imprimer quelques informations sur le
systeme dans la banniere de login. Dans mes exemples, j'ai fait
figurer le nom du systeme, le port serie, 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 connaitre un peripherique d'entree et de
sortie pour le port serie dedie au modem. Si votre modem est attache a
ttyS3, aucun peripherique correct n'existe et vous devez donc le creer
(voir la section ``Creer les peripheriques dans <TT>/dev</TT>''). Si
vous souhaitez pouvoir appeler avec votre modem alors que uugetty est
en attente de connexion sur le meme port, utilisez le peripherique
/dev/cua_N a la place de /dev/ttyS_N.
Une fois que vous avez termine l'edition de /etc/gettydefs, vous
pouvez en verifier la syntaxe par :
linux# getty -c /etc/gettydefs
66..44.. PPeerrssoonnnnaalliisseerr uuuuggeettttyy
De nombreuses options peuvent etre configurees dans des fichiers
separes pour chacun des ports presents. Le fichier /etc/conf.uugetty
sert a _t_o_u_t_e_s les instances de uugetty, alors que
/etc/conf.uugetty.ttyS_N est specifique a un seul port. Des exemples de
fichiers de configuration sont disponibles parmi les fichiers sources
de getty_ps livres avec la plupart des distributions Linux. Ces
exemples ne sont pas repris dans ce document pour des problemes
d'espace. Notez que pour les versions anciennes de getty (avant la
2.0.7e), ou si vous n'utilisez pas la conformite FSSTND, le fichier
par defaut reside dans /etc/default/uugetty.ttyS_N. Mon fichier
/etc/conf.uugetty.ttyS3 ressemble a :
# 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 lance sur le port serie (en adaptant pour votre
configuration la localisation du fichier de configuration, le port, la
vitesse, et le type de terminal par defaut) :
S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100
Redemarrez init :
linux# init q
La vitesse maximale supportee par le modem a ete selectionnee dans
/etc/inittab.
A partir de maintenant, Linux est en attente de connexions sur le port
serie. Appelez depuis une autre machine et loguez-vous sur votre
systeme Linux.
uugetty possede de nombreuses autres options, decrites en detail dans
la page de manuel getty(1m). Entre autres choses, on peut y trouver
des fonctionnalites de programmation horaire (_s_c_h_e_d_u_l_i_n_g), et de
rappel (_r_i_n_g_b_a_c_k).
77.. CCoommmmeenntt ccoonnffiigguurreerr uunn tteerrmmiinnaall rraaccccoorrddee aa mmoonn PPCC ??
Ces instructions permettent aussi bien de connecter des terminaux que
d'autres ordinateurs sur le port serie de votre machine Linux.
77..11.. BBeessooiinnss mmaatteerriieellss
Assurez-vous de posseder le bon type de cable. Un cable _n_u_l_l _m_o_d_e_m
achete dans n'importe quel magasin informatique fera l'affaire, mais
il doit s'agir effectivement d'un cable _n_u_l_l _m_o_d_e_m ! De nombreux
magasins d'informatique les vendent comme des cables pour imprimante
serie. Verifiez que vous utilisez bien le port serie (embase male DB25
ou DB9), et non le port parallele (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 controle de flux materiel, la connexion
null modem doit etre integralement cablee :
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 cable 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 _e_f_f_e_c_t_i_v_e_m_e_n_t la signification opposee
entre les connecteurs DB9 et DB25 !)
Ceux qui ne possedent pas de cable null modem complet devront user
d'une astuce afin que le PC recoive (de lui-meme) les acquittements
qu'il demande avec le controle de flux materiel : sur le connecteur
cote PC, rebouclez ensemble RTS et CTS, ainsi que DSR, DCD et DTR.
Maintenant que avez le bon type de cable, il vous reste a connecter
votre terminal sur votre ordinateur. Si possible, demandez au terminal
d'ignorer les signaux de controle pour modems, et essayez de le
parametrer avec une vitesse de 9600 bps, 8 bits de donnees, 1 bit de
stop, et pas de parite.
77..22.. CCoonnffiigguurreerr ggeettttyy
Si elles ne sont pas deja presentes, ajoutez dans /etc/gettydefs les
entrees destinees a 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 desirez, getty peut imprimer quelques informations sur le
systeme dans la banniere de login. Dans mes exemples, j'ai fait
figurer le nom du systeme ainsi que le port serie. 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'edition de /etc/gettydefs terminee, vous pouvez en verifier
la syntaxe par :
linux# getty -c /etc/gettydefs
Assurez-vous qu'il n'existe pas deja de fichier de configuration getty
ou uugetty pour le port serie auquel vous avez attache votre terminal
(/etc/default/{uu}getty.ttyS_N ou /etc/conf.{uu}getty.ttyS_N), car il
risque probablement d'interferer avec l'instance de getty du terminal.
Supprimez le fichier s'il existe.
Editez la ligne suivante dans /etc/inittab, afin que getty soit lance
sur le port serie (en adaptant pour votre configuration le port, la
vitesse, et le type de terminal par defaut) :
S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100
Redemarrez init :
linux# init q
Vous devez maintenant voir apparaitre une invite de session sur le
terminal. Il peut neanmoins etre necessaire de taper sur la touche
Entree pour avertir le terminal.
77..33.. RReemmaarrqquueess ssuurr llaa ccoonnffiigguurraattiioonn dd''uunn PPCC eenn ttaanntt qquuee tteerrmmiinnaall
Nombreux sont ceux qui se servent d'autres PC comme des terminaux
rattaches a des systemes Linux. Par exemple, des vieux PC 8088 ou
80286 sont parfaits pour cet usage. Vous avez juste besoin d'une
disquette de demarrage DOS et d'un programme de communications pour
faire tourner votre terminal-PC. kermit fonctionne tres bien dans
cette configuration. Des versions compilees de kermit pour n'importe
quel systeme d'exploitation sont disponibles sur
http://www.columbia.edu/kermit/. D'autres programmes populaires de
communications sous DOS, comme telix ou procomm remplissent egalement
tres bien cette fonction. Soyez juste sur de fournir des informations
correctes lors du parametrage des communications de votre terminal-PC.
88.. PPuuiiss--jjee uuttiilliisseerr pplluuss ddee ddeeuuxx ppoorrttss sseerriiee ??
Il n'est pas necessaire que vous lisiez cette section, a moins que
vous utilisiez au moins trois ports serie... (mais pas sur une carte
multiports).
N'importe quel port serie libre est utilisable. La seule limitation
reside dans le nombre d'interruptions (IRQ) et d'adresses de port
d'entree/sortie a utiliser. Cette limitation n'est pas specifique a
Linux, mais est due au bus du PC. Chaque peripherique serie (port
serie, modem interne, carte serie) doit posseder ses propres
interruption et adresse.
Les cartes serie multiports sont specialement concues pour partager la
meme interruption sur tous les ports qu'elles possedent. Linux
communique avec elles en selectionnant une adresse d'entree/sortie
differente pour chaque port de ces cartes.
88..11.. CChhooiissiirr lleess iinntteerrrruuppttiioonnss ddeess ppeerriipphheerriiqquueess sseerriiee
Par defaut sur un PC, l'IRQ 4 est partagee entre ttyS0 et ttyS2, et
l'IRQ 3 entre ttyS1 et ttyS3. Les interruptions en cours d'utilisation
sont regroupees dans /proc/interrupts. Pour se servir de plus de deux
ports serie, leur interruption doit etre reassignee, par exemple en
choisissant celle d'un port parallele. En effet, les IRQ 5 et 7 sont
sur un PC normalement attribuees aux ports paralleles, mais peu de
personnes en possedent deux. Vous pouvez donc reassigner une de ces
interruptions a un port serie, et continuer a utiliser joyeusement
votre port parallele ! Cette manipulation requiert le programme
setserial. De plus, il vous faudra ajuster certains cavaliers sur vos
cartes (a verifier sur les manuels des cartes) pour fixer les IRQ.
Vous devez vous arranger pour avoir une IRQ unique pour chacun des
ports serie. Voici comment je configure les miens dans
/etc/rc.d/rc.local (cette initialisation doit avoir lieu lors du
demarrage) :
/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 deja
utilisees par la carte mere, ou une autre carte. 2, 3, 4, 5, ou 7 est
generalement un bon choix. ``Non assignee'' signifie que rien de
standard n'utilise cette IRQ. Notez egalement que l'IRQ2 et l'IRQ9
sont identiques : vous pouvez donc specifier aussi bien 2 que 9, le
gestionnaire de peripheriques est tres comprehensif. Si vous possedez
une carte serie avec un connecteur de bus 16 bits, vous pouvez
egalement utiliser l'IRQ 10, 11, 12 ou 15.
N'utilisez pas les IRQ 0, 1, 6, 8, 13 et 14 ! Elles sont reservees par
la carte mere. Une fois le parametrage effectue, verifiez l'absence de
conflit avec /proc/interrupts.
88..22.. CChhooiissiirr lleess aaddrreesssseess ddeess ppeerriipphheerriiqquueess sseerriiee
Vous devez ensuite fixer les adresses des ports. Verifiez le manuel
pour la position des cavaliers. Comme pour les interruptions, chaque
peripherique serie doit posseder sa propre adresse. Par defaut, les
ports sont parametres de la maniere suivante :
ttyS0 adresse 0x3f8
ttyS1 adresse 0x2f8
ttyS2 adresse 0x3e8
ttyS3 adresse 0x2e8
Choisissez les adresses a affecter a chaque port serie, et positionnez
les cavaliers sur la carte en consequence. Ainsi, j'ai mon modem sur
ttyS3, ma souris sur ttyS0, et mon terminal sur ttyS2.
Au prochain demarrage, Linux devrait voir vos ports series aux
adresses que vous avez selectionnees. Par contre, les IRQ vues par
Linux peuvent ne pas correspondre avec celles que vous avez
configurees. Ne vous inquietez pas : Linux ne sait pas detecter les
IRQ au demarrage, car c'est assez aleatoire et le resultat peut etre
faux. Utilisez setserial pour specifier a Linux quelles interruptions
sont associees aux ports, puis verifiez apres redemarrage de Linux les
adresses des ports d'entree/sortie avec /proc/ioports.
99.. CCoommmmeenntt ccoonnffiigguurreerr ddeess vviitteesssseess pplluuss iimmppoorrttaanntteess ppoouurr mmeess ppoorrttss
sseerriiee ?? AA qquueellllee vviitteessssee ddooiiss--jjee ffiixxeerr mmoonn mmooddeemm ??
Cette section a pour but de vous aider a determiner la vitesse du
modem a utiliser avec un programme de communications ou getty.
+o Si votre modem ne supporte que des vitesses inferieures a 9600 bps
(V.32), choisissez la vitesse la plus importante, par exemple 300
bps (V.21/Bell 103), 1200 bps (V.22/Bell 212A), ou 2400 bps
(V.22bis).
+o Si vous possedez un modem 9600 bps (V.32), integrant la compression
de donnees V.42bis, choisissez 38400 bps. Le taux _t_h_e_o_r_i_q_u_e de
compression est de 4:1, soit ``4 * 9600 = 38400''.
+o Si vous possedez un modem 14400 bps (V.32bis), integrant la
compression de donnees V.42bis, configurer le port a 57600 bps (4 *
14400 = 57600) avec l'option 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 a 38400 bps dans votre programme de
communications ou /etc/inittab. Vous etes maintenant en grande
vitesse ! Assurez-vous de posseder des UART 16550A.
Il existe des vitesses nommees 57600 et 115200 dans les versions de
libc superieures ou egales a 5.x (a verifier dans le repertoire
/lib). Dans ce cas, vous pouvez les selectionner directement (sans
passer par setserial) si vos applications ont ete compilees de
maniere a en tirer avantage. Il existe tellement de distributions
Linux, que le mieux a faire est d'essayer directement ces vitesses
si votre distribution est assez recente.
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 demarrage,
il est preferable de l'essayer manuellement. Par exemple, pour fixer
ttyS3 a 115200 bps, mon fichier /etc/rc.d/rc.local contient :
/sbin/setserial /dev/ttyS3 spd_vhi
Assurez-vous que le chemin d'acces a setserial est valide, de meme que
le nom du peripherique. Le parametrage d'un port serie peut etre
verifie par :
setserial -a /dev/ttyS3
1100.. PPrrooggrraammmmeess eett uuttiilliittaaiirreess ddee ccoommmmuunniiccaattiioonnss
Voici une liste de logiciels de communications que vous pouvez
telecharger par FTP, s'ils ne sont pas fournis dans votre
distribution :
+o ecu - un programme de communications
+o C-Kermit <
http://www.columbia.edu/kermit/> - programme de
communications portable et scriptable, par liaison serie ou TCP/IP,
incluant le transfert de fichiers et la traduction des jeux de
caracteres
+o minicom - un programme de communications du genre de telix
+o pcomm - un programme de communications du genre de procomm avec
protocole zmodem
+o seyon - un programme de communications sous X11
+o xc - paquetage de communications xcomm
+o D'autres programmes utiles sont term et SLiRP qui offrent des
fonctionnalites TCP/IP a partir d'un compte shell.
+o screen est un autre programme multi-sessions qui se comporte comme
les consoles virtuelles.
+o callback est un programme permettant a votre modem de se faire
rappeler.
+o mgetty+fax gere le mode FAX, et offre un getty alternatif.
+o ZyXEL est un programme de controle pour les modems ZyXEL U-1496.
Il gere les appels entrants et sortants, la securite pour le rappel
automatique, le mode FAX, et possede des fonctions de messagerie
vocale.
+o SLIP et PPP peuvent etre telecharges depuis
ftp://sunsite.unc.edu/pub/Linux/system/network/serial.
+o On trouve egalement d'autres programmes pour les liaisons serie sur
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.
1111.. TTrruuccss eett aassttuucceess ssuurr lleess lliiaaiissoonnss sseerriiee
Je vous presente ici quelques astuces que vous pourrez trouver
utiles...
1111..11.. kkeerrmmiitt 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 sur de positionner le port serie auquel votre modem est rat-
tache. Il suffit alors de taper rz ou sz <filename> a l'invite de
commandes de kermit.
1111..22.. PPaarraammeettrreerr lleess ttyyppeess ddee tteerrmmiinnaauuxx aauuttoommaaggiiqquueemmeenntt
Pour selectionner automagiquement le type de terminal au debut d'une
session, ajoutez-le dans l'entree correspondante de /etc/inittab. Par
exemple, avec un terminal VT100 sur ttyS1, j'ajouterais ``vt100'' en
parametre de la commande getty :
S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100
Vous pouvez egalement utiliser tset pour positionner les
caracteristiques du terminal a l'entree en session, independamment des
valeurs par defaut.
1111..33.. llss en couleurs sur les connexions serie
Si l'emulation de votre terminal ne supporte pas correctement l'option
couleur de ls, desactivez-la. Certaines installations l'utilisent par
defaut (ls --color ou ls --colour). Verifiez les alias sur ls dans
/etc/profile et /etc/csh.cshrc. Vous pouvez egalement creer un nouvel
alias de ls sur ls --no-color, si vous ne souhaitez pas modifier les
valeurs par defaut.
1111..44.. IImmpprriimmeerr ssuurr uunnee iimmpprriimmaannttee aattttaacchheeee aa uunn tteerrmmiinnaall
Il existe pour cela un programme appele vtprint, disponible sur
ftp://ftp.sdsu.edu/pub/vtprint, et sur
http://www.sdsu.edu/~garrett.
Un deuxieme programme est xprt. Il peut etre telecharge depuis
ftp://sunsite.unc.edu/pub/Linux/system/printing.
1111..55.. LLiinnuuxx ppeeuutt--iill ccoonnffiigguurreerr lleess ppeerriipphheerriiqquueess sseerriiee
aauuttoommaaggiiqquueemmeenntt ??
Effectivement, Linux peut detecter et parametrer les peripheriques
serie automatiquement au demarrage 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. Repetez
la manipulation pour chacun des ports serie qui doit etre configure
automatiquement. Soyez juste sur de fournir un nom de peripherique
existant sur votre machine.
1111..55..11.. RReemmaarrqquueess ppoouurr lleess ccaarrtteess mmuullttiippoorrttss
Referez-vous au fichier rc.serial fourni avec setserial pour les
adresses et les IRQ de ces cartes. Beaucoup de parametres y sont
detailles concernant les cartes multiports, y compris les adresses et
les noms des peripheriques a utiliser.
1111..66.. UUttiilliisseerr uunnee ccoonnssoollee sseerriiee
Un article dans le numero 36 du _L_i_n_u_x _J_o_u_r_n_a_l
(
http://www.ssc.com/lj/issue36/index.html) explique comment utiliser
un terminal comme une console. Malheureusement, l'adresse electronique
de l'auteur ne semble pas correcte car les messages reviennent.
J'espere que cet article figurera bientot sur le site WEB du _L_i_n_u_x
_J_o_u_r_n_a_l a l'URL mentionnee ci-dessus. _(_N_d_T _: _c_e_t _a_r_t_i_c_l_e _e_s_t
_m_a_i_n_t_e_n_a_n_t _d_i_s_p_o_n_i_b_l_e _e_n _l_i_g_n_e _a
_h_t_t_p_:_/_/_w_w_w_._s_s_c_._c_o_m_/_l_j_/_i_s_s_u_e_3_6_/_c_o_n_s_o_l_e_._h_t_m_l)
1111..77.. OObbtteenniirr ddeess ddeebbiittss pplluuss iimmppoorrttaannttss
Si vous jugez le debit de vos ports serie lent, ou si des erreurs
d'ecrasement de caracteres a la reception (_o_v_e_r_r_u_n _e_r_r_o_r_s) se
produisent sur un systeme muni de disques durs (E)IDE, utilisez hdparm
pour modifier certains des parametres de ces disques, notamment le
demasquage des autres IRQ pendant les interruptions disque. Cette
manipulation augmentera le taux de reponse et aidera a supprimer les
ecrasements de caracteres. Lisez bien les pages de manuel, car
certaines combinaisons sont plus ou moins bien supportees suivant les
disques et les controleurs utilises, et peuvent provoquer une
corruption du systeme de fichiers.
Regardez egalement l'utilitaire irqtune qui permet de modifier la
priorite de l'IRQ d'un peripherique, par exemple celle du port serie
lie au modem. La FAQ d'irqtune est disponible sur
http://www.best.com/~cae/irqtune.
1122.. UUnn ppaass ddee pplluuss......
Cette section n'est absolument pas necessaire a la comprehension des
ports serie sous Linux, mais peut neanmoins vous apporter quelques
eclaircissements sur Unix et le monde des telecommunications.
1122..11.. QQuu''eesstt--ccee qquuee lleess ffiicchhiieerrss vveerrrroouuss ??
Un fichier verrou est simplement un fichier qui indique qu'un
peripherique particulier est en cours d'utilisation. Ils sont
regroupes dans /usr/spool/uucp ou /var/lock. Sous Linux, ils se
nomment LCK.._n_o_m ou _n_o_m est soit un nom de peripherique, soit un nom
de site UUCP. Certains processus creent de tels fichiers pour
s'assurer l'acces exclusif aux peripheriques. Par exemple, si vous
appelez avec votre modem, un fichier verrou va etre cree pour avertir
les autres processus que le modem est deja en cours d'utilisation.
Les verrous contiennent principalement le PID du processus qui s'est
attribue le peripherique. 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
verrouille le peripherique. Si le fichier verrou est toujours valide,
alors le nouveau programme doit s'arreter. Dans le cas contraire,
certains programmes suppriment le fichier verrou perime, et utilisent
le peripherique en creant leur propre verrou a l'interieur du
processus. D'autres programmes s'arretent tout simplement et
previennent l'utilisateur que le peripherique est deja utilise.
1122..22.. ````bbaauudd'''' eett ````bbppss''''
``baud'' et ``bps'' font certainement partie des termes les plus mal
utilises dans le monde de l'informatique et des telecommunications.
Ils sont souvent consideres a tort comme equivalents, alors qu'ils ne
le sont pas !
bbaauudd
Le baud represente la frequence de (de)modulation d'un signal,
par exemple celui envoye ou recu par un modem (mmoodulateur-
ddeemmodulateur), c'est-a-dire le nombre de fois ou il change par
seconde. Par exemple, 1200 bauds implique que le signal change
d'etat toutes les 833 microsecondes. Les frequences de
(de)modulation les plus courantes pour un modem sont 50, 75,
110, 300, 600, 1200, et 2400 bauds. La plupart des modems
hautes vitesses fonctionnent a 2400 bauds. Les frequences plus
elevees sont plus difficiles a atteindre. Cette limitation est
principalement due aux basses performances des lignes
telephoniques dediees essentiellement au transport de la voix.
Plusieurs bits sont alors encodes par baud, ce qui permet
d'obtenir des taux de transfert en bits plus eleves qu'en bauds.
L'etymologie du mot ``baud'' vient de l'inventeur de
l'imprimante telegraphique asynchrone, Emile Baudot.
bbppss
Le taux de transfert en bps represente 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 a 1) activee sont
capables _t_h_e_r_o_r_i_q_u_e_m_e_n_t 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 a 2400 bauds, comment
peuvent-ils emettre a 14400 bps ? En fait, les modems atteignent des
taux de transfert en bps superieurs a la frequence de modulation, en
codant plusieurs bits dans un seul changement d'amplitude ou de phase
du signal. Ainsi, quand 2 bits ou plus sont codes par baud, la vitesse
en bps depasse la frequence en bauds. Quand votre modem se connecte a
14400 bps, il envoie effectivement 6 bits a chaque changement de
phase, a 2400 bauds.
Cette confusion entre bauds et bps date du temps ou les taux de
transfert etaient faibles, et ou la vitesse en bps egalait la
frequence de modulation en bauds. Par exemple, un modem a 300 bps
fonctionne a une frequence de 300 bauds. Les deux valeurs ont commence
a diverger avec l'apparition des modems hautes vitesses.
1122..33.. QQuu''eesstt--ccee qquuee lleess UUAARRTT ?? CCoommmmeenntt iinnfflluueenntt--iillss ssuurr lleess
ppeerrffoorrmmaanncceess ??
Les UART (UUniversal AAsyncronous RReceiver TTransmitter -- EEmmeetttteeuurr
RReecceepptteeuurr UUnniivveerrsseell AAssyynncchhrroonnee)) ssoonntt ddeess cciirrccuuiittss eelleeccttrroonniiqquueess
eeqquuiippaanntt lleess ccaarrtteess sseerriiee ddeess PPCC.. IIllss sseerrvveenntt aa ttrraannssffoorrmmeerr lleess
ddoonnnneeeess eenn bbiittss,, aa lleess eennvvooyyeerr ssuurr llaa lliiggnnee sseerriiee,, ppuuiiss aa rreeccoonnssttrruuiirree
cceess ddoonnnneeeess aa ll''aauuttrree bboouutt.. IIllss ttrraavvaaiilllleenntt ssuurr ddeess oocctteettss,, qquuii
ccoorrrreessppoonnddeenntt jjuusstteemmeenntt aa llaa ttaaiillllee ddeess ccaarraacctteerreess AASSCCIIII..
Supposons qu'un terminal est connecte a votre PC. Quand vous tapez un
caractere, le terminal l'envoie a un emetteur (qui est aussi un UART).
L'emetteur envoie alors cet octet sur la ligne serie, bit par bit, et
a une vitesse specifique. Du cote PC, l'UART receptionne ces bits,
reconstruit l'octet, et enfin le place dans une zone memoire.
Il existe essentiellement deux types d'UART : les simples (8250 et
16450), et ceux dotes de FIFO (16550A). Pour comprendre les
differences qui existent entre ces circuits, il faut examiner ce qui
se passe quand un UART envoie ou recoit un octet.
L'UART lui-meme ne fait rien avec les donnees ; il s'occupe juste de
les emettre ou les receptionner. Le CPU recoit une interruption du
peripherique serie chaque fois qu'un octet part ou arrive. Le CPU
deplace alors l'octet recu du peripherique serie vers une zone
memoire, ou alors il redonne a l'UART un nouvel octet a transmettre.
Les UART 8250 et 16450 ne possedent qu'une zone tampon d'un octet, ce
qui signifie que le CPU est interrompu a chaque caractere. Ca
fonctionne aux vitesses faibles, mais pour des vitesses elevees, le
CPU est tellement occupe par l'UART, qu'il n'a plus assez de temps
pour les autres taches. Dans certains cas, le CPU ne peut pas repondre
a l'interruption assez vite, et les caracteres sont alors ecrases
(_o_v_e_r_r_u_n _e_r_r_o_r).
Les UART 16550 sont alors utiles car ils sont equipes de tampons FIFO
de 16 octets, c'est-a-dire qu'ils peuvent emettre ou recevoir jusqu'a
16 octets avant d'interrompre le CPU. Bien que ce seuil d'interruption
soit rarement fixe a 16, ca represente quand meme un avantage
significatif par rapport aux UART dotes d'un tampon d'un seul octet.
Le CPU est alors interrompu moins souvent et peut consacrer plus de
temps aux autres taches. Les donnees ne sont donc plus perdues. (Il
existe egalement un UART 16550, considere comme un 16450 car il est
defectueux.)
En general, les 8250 et 16450 peuvent suffire pour des vitesses
n'excedant pas 38400 bps. A des vitesses superieures, vous pouvez voir
apparaitre des pertes de caracteres. D'autres systemes d'exploitation
pour PC, comme DOS (definition approximative dans ce cas), qui ne sont
pas multitaches, peuvent a la rigueur mieux se debrouiller avec des
8250 ou des 16450. C'est pour cela que certaines personnes ne
constatent aucune perte de donnees, jusqu'au moment ou elles passent a
Linux.
Les cartes multiports intelligentes utilisent des DSP (_D_i_g_i_t_a_l _S_i_g_n_a_l
_P_r_o_c_e_s_s_o_r_s - processeurs de signaux digitaux) pour assurer des
fonctions supplementaires de controle et de mises en memoire tampon,
ce qui permet de decharger encore plus le CPU. Par exemple, les cartes
Cyclades Cyclom et Stallion EasyIO possedent un UART RISC Cirrus Logic
CD1400. La plupart des autres cartes sont dotees de CPU 80186, voire
de CPU RISC specifiques, pour assurer les entrees/sorties serie.
Gardez a l'esprit que ces UART ne sont pas mauvais, mais qu'ils ne
suffisent pas pour des vitesses elevees. Vous ne devriez pas
rencontrer de probleme en connectant un terminal ou une souris sur de
tels UART. Par contre, les 16550A sont definitivement un _m_u_s_t pour les
modems hautes vitesses.
Les cartes a base d'UART 16550A sont a peine plus cheres que celles a
base de 16450. De meme, il est possible de remplacer les UART 16450
existants sur une carte par des 16550A. Ces circuits sont compatibles
broche a broche. Certaines cartes sont meme equipees a cet effet
d'UART montes sur support. Sinon, il faudra souder. Remarquez que vous
vous eviterez surement pas mal de soucis en achetant directement une
nouvelle carte.
1133.. RReessoouuddrree lleess pprroobblleemmeess
1133..11.. LLee mmeessssaaggee ````lliinnee _N_N_N ooff iinniittttaabb iinnvvaalliidd'''' ss''aaffffiicchhee eenn ppeerrmmaa--
nneennccee
Assurez-vous d'utiliser une syntaxe correcte pour votre version de
init. En effet, chaque programme init ou presque a une syntaxe
specifique pour son fichier de configuration /etc/inittab. De meme,
verifiez les parametres que vous passez a votre getty.
1133..22.. LLee mmeessssaaggee ````//ddeevv//ccuuaa_N:: DDeevviiccee oorr rreessoouurrccee bbuussyy'''' aappppaarraaiitt
qquuaanndd jj''eessssaaiiee dd''aappppeelleerr
Ce probleme peut survenir quand les signaux DCD ou DTR ne sont pas
positionnes correctement. DCD doit etre leve seulement lors d'une
connexion (_i_e quelqu'un est deja connecte), et non pas quand getty
scrute le port. Assurez-vous donc que le modem est configure pour
lever le signal DCD seulement en connexion. DTR doit etre positionne
des 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 assignee au port serie est deja
prise par un autre peripherique. En effet, lors de son initialisation,
chaque peripherique demande l'autorisation a Linux d'utiliser l'IRQ
selectionnee. Linux garde une trace de l'affectation des
interruptions, et si une IRQ est en cours d'utilisation, votre
peripherique ne pourra pas s'initialiser. Celui-ci n'a aucun moyen de
vous prevenir, excepte par le message ``device-busy'' lorsque vous
tentez de l'utilisez. Verifiez alors les interruptions de toutes vos
cartes (serie, ethernet, SCSI, etc.) et les conflits eventuels.
1133..33.. LLee mmeessssaaggee ````IIdd SS_N rreessppaawwnniinngg ttoooo ffaasstt:: ddiissaabblleedd ffoorr 55 mmiinn--
uutteess'''' ss''aaffffiicchhee ppeerriiooddiiqquueemmeenntt
Assurez-vous que votre modem est correctement configure. Examinez
particulierement les registres E et Q. Ce probleme peut apparaitre
lorque getty discute avec le modem.
Verifiez egalement les parametres que vous passez a getty dans
/etc/inittab. Une syntaxe ou un nom de peripherique errone peut causer
de serieux problemes.
La syntaxe de /etc/gettydefs peut etre verifiee par la commande
suivante :
linux# getty -c /etc/gettydefs
Ce probleme arrive quelquefois lors de l'echec de l'initialisation de
uugetty. Reportez-vous a la section ``getty ou uugetty ne fonctionne
toujours pas''.
1133..44.. MMeess ppeerriipphheerriiqquueess sseerriiee ssoonntt lleennttss oouu uunniiddiirreeccttiioonnnneellss
La cause la plus probable est un conflit d'IRQ. Assurez-vous qu'aucune
IRQ n'est partagee. Verifiez les cavaliers sur les differentes cartes
(serie, ethernet, SCSI, etc.) ainsi que les parametres passes a
setserial pour tous les peripheriques serie. Les conflits peuvent etre
localises avec /proc/ioports et /proc/interrupts.
1133..55.. MMoonn mmooddeemm nnee rreeppoonndd pplluuss aapprreess llee rraaccccrroocchhaaggee,, oouu uuuuggeettttyy ne se
relance plus automatiquement
Cela peut se produire si le modem n'est pas reinitialise lorque le
signal DTR retombe. J'ai vu les LED RD et SD devenir folles quand ca
m'est arrive. Il faut alors reinitialiser 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. Verifiez dans la
documentation de votre modem.
1133..66.. UUnn tteerrmmiinnaall eesstt ccoonnnneeccttee aa mmoonn PPCC,, mmaaiiss iill ssee bbllooqquuee ddeess qquuee
jj''aaii eennttrree mmoonn nnoomm dd''uuttiilliissaatteeuurr
+o Si vous utilisez getty, vous devez faire figurer CLOCAL dans
l'entree correspondante de /etc/gettydefs, et utiliser un cable
null-modem complet. L'option CLOCAL indique a Linux d'ignorer les
signaux de controle specifiques 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 lancee avec les entrees mises a jour.
+o Si vous utilisez agetty, ajoutez l'option -L a la ligne
correspondante de /etc/inittab, pour indiquer que vous desirez
ignorer les signaux de controle specifiques aux modems. Redemarrez
init en tapant init q. L'entree doit ressembler a :
s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
1133..77.. MMoonn mmooddeemm ppeerrdd ddeess ddoonnnneeeess aa hhaauuttee vviitteessssee
Si vous essayez de faire fonctionner votre modem a plus de 38400 bps,
vous devez obligatoirement passer en UART 16550A. Reportez-vous a la
section ``Qu'est-ce que les UART ?''.
1133..88.. AAuu ddeemmaarrrraaggee,, LLiinnuuxx nn''aaffffiicchhee ppaass lleess ppoorrttss sseerriiee tteellss qquuee jjee
lleess aaii ppaarraammeettrreess
Effectivement, Linux ne cherche pas a detecter les IRQ au demarrage,
mais seulement les ports serie. Il suppose que vous utilisez les
interruptions par defaut, car leur detection est hasardeuse et peut se
reveler inexacte.
Ainsi, meme si j'ai force ttyS2 a 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 a Linux. Apres le demarrage, vous pouvez verifier le
parametrage effectif dans le fichier /proc/interrupts.
1133..99.. rrzz et/ou sz ne fonctionne pas quand j'appelle mon systeme Linux
avec un modem
Si Linux recherche le peripherique /dev/modem quand vous tentez de
transferer des fichiers, regardez les alias definis dans /etc/profile
et /etc/csh.cshrc. Ils peuvent etre nombreux suivant les
distributions (notamment Slackware) et redefinir les programmes
zmodem. Enlevez ces alias, ou corrigez-les.
1133..1100.. MMoonn eeccrraann iimmpprriimmee ddeess ccaarraacctteerreess bbiizzaarrrreess
Ce phenomene se produit sur les consoles virtuelles, et parfois sur
les lignes serie, quand elles recoivent des donnees binaires. Il faut
alors taper echo ^v^[c, c'est-a-dire :
linux% echo <ctrl>v<esc>c
1133..1111.. ggeettttyy ou uugetty ne fonctionne toujours pas
getty_ps fournit une option DEBUG que l'on peut specifier dans le
fichier de configuration /etc/conf.{uu}getty.ttyS_N. Editez-le pour
ajouter la ligne DEBUG=_N_N_N ou _N_N_N est une combinaison de valeurs
octales definissant 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 depart.
Si syslogd tourne, ces informations apparaitront dans les fichiers
log. Dans le cas contraire, elles seront enregistrees dans
/tmp/getty:ttyS_N pour getty, dans /tmp/uugetty:ttyS_N pour uugetty, et
dans /var/adm/getty.log. Consultez ces fichiers pour determiner ce
qui se passe. Vous devrez tres probablement ajuster certains
parametres dans le fichier de configuration, et reconfigurer votre
modem.
Vous pouvez egalement essayer mgetty : certaines personnes ont plus de
chance avec...
1144.. AAuuttrreess ssoouurrcceess dd''iinnffoorrmmaattiioonn
+o les pages de manuel pour : agetty(8), getty(1m), gettydefs(5),
init(1), login(1), mgetty(8), setserial(8)
+o la documentation de votre modem
+o NET-3 HOWTO : tout sur les reseaux, dont SLIP, CSLIP, et PPP
+o PPP HOWTO : aide sur PPP
+o Printing HOWTO : pour installer une imprimante serie
+o Term HOWTO : tout ce que vous voulez savoir sur le programme term
+o UPS HOWTO : pour la connexion d'onduleurs sur un port serie
+o UUCP HOWTO : pour des informations sur le parametrage de UUCP
+o forums de discussion Usenet :
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
+o la liste de diffusion consacree aux ports serie sous Linux. Pour
vous abonnez, envoyez un message electronique a
[email protected], 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
supportees. Ce serveur gere egalement d'autres listes consacrees a
Linux ; pour les connaitre, envoyez la commande ``lists''.
+o un document traitant des communications serie et des cartes
multiports est disponible sur :
http://www.cyclades.com.
+o FAQ sur les modems :
+o programmation serie :
Advanced Programming in the UNIX Environment <
http://heg-
school.aw.com/cseng/authors/stevens/advanced/advanced.nclk>, par W.
Richard Stevens (ISBN 0-201-56317-7; Addison-Wesley)
POSIX Programmer's Guide <
http://www.ora.com/catalog/posix/>, by
Donald Lewine (ISBN 0-937175-73-0; O'Reilly)
1155.. CCoonnttrriibbuuttiioonnss
Il ne m'aurait pas ete possible de rediger ce HOWTO tout seul. Meme
si j'en ai ecrit la plus grande partie, j'ai du reprendre pas mal
d'articles existants. Merci a tous ceux qui ont contribue a ce
document, ou qui l'ont commente. La liste de ces personnes est
maintenant trop longue pour figurer ici (plus d'une centaine).
J'adresse plus particulierement mes remerciements a Ted T'so pour
toutes ses reponses sur les peripheriques serie, a Kris Gleason pour
la maintenance de getty_ps, et a Gert Doering pour mgetty.
_N_o_t_e _d_u _t_r_a_d_u_c_t_e_u_r _: _u_n _g_r_a_n_d _m_e_r_c_i _a _O_l_i_v_i_e_r _T_h_a_r_a_n _e_t _F_l_o_r_i_a_n
_S_a_l_a_m_i_n _p_o_u_r _l_a _r_e_l_e_c_t_u_r_e_, _a_i_n_s_i _q_u_'_a _E_r_i_c _D_u_m_a_s _p_o_u_r _l_a _g_e_s_t_i_o_n _d_e_s
_t_r_a_d_u_c_t_i_o_n_s _f_r_a_n_c_a_i_s_e_s _e_t _a _S_e_b_a_s_t_i_e_n _B_l_o_n_d_e_e_l _p_o_u_r _l_a _m_i_s_e _e_n _p_l_a_c_e
_d_'_u_n _s_y_s_t_e_m_e _c_e_n_t_r_a_l_i_s_e _d_e_s _r_e_l_e_c_t_u_r_e_s_.
FIN DU LINUX HOWTO POUR LES PORTS SERIE