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