  Le Linux HOWTO pour les ports serie
  Greg Hankins, greg.hankins@cc.gatech.edu
  traduit par Eric Festinger, eric@midix.frmug.org
  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.

  11..  IInnttrroodduuccttiioonn

  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.

  11..11..  CCooppyyrriigghhtt

  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.

  11..22..  NNoouuvveelllleess vveerrssiioonnss ddee ccee ddooccuummeenntt

  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.

  11..33..  RReettoouurr dd''iinnffoorrmmaattiioonnss

  Merci de me faire  parvenir  par  email  a  greg.hankins@cc.gatech.edu
  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.

  11..44..  AAvveerrttiisssseemmeenntt

  Votre systeme peut varier par rapport aux exemples, et  les  solutions
  presentees dans ce HOWTO peuvent ne pas fonctionner.

  22..  MMaatteerriieell ssuuppppoorrttee

  Les materiels suivants fonctionnent correctement sous Linux.

  22..11..  CCaarrtteess sseerriiee ssttaannddaarrddss ppoouurr PPCC

  +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.

  22..22..  MMooddeemmss PPlluugg AAnndd PPllaayy ((PPnnPP))

  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 :-)

  22..33..    CCaarrtteess   sseerriiee    mmuullttiippoorrttss    ssiimmpplleess    ((eeqquuiippeeeess    dd''UUAARRTT
  88225500//1166445500//1166555500AA))

  +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.

  22..44..  CCaarrtteess sseerriiee mmuullttiippoorrttss iinntteelllliiggeenntteess

  +o  Comtrol RocketPort (ASIC 36MHz ; 4, 8, 16 ou 32 ports)
     contact : info@comtrol.com 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, mhw@wittsend.atl.ga.us
     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 : sales@cyclades.com 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 : pccom8@signum.se
     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 : sales@dgii.com 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, si@wimpol.demon.co.uk
     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,
     fray@krypton.mankato.msus.edu  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 : sales@equinox.com 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 : spot@gtek.com 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,    arobinso@nyx.net    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 : info@maxpeed.com 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 : info@moxa.com.tw 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 : sales@sdlcomm.com 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, simonallen@cix.compulink.co.uk
     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 : sales@stallion.com 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.

  22..55..  MMaatteerriieell nnoonn ssuuppppoorrttee

  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.

  33..  CCoommmmeenntt ssee nnoommmmeenntt lleess ppoorrttss sseerriiee ??

  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.

  33..11..  PPeerriipphheerriiqquueess sseerriiee eett nnuummeerrooss ddaannss //ddeevv

  /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*

  33..11..11..  CCrreeeerr lleess ppeerriipphheerriiqquueess ddaannss //ddeevv

  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.

  33..22..  RReemmaarrqquueess ppoouurr lleess ccaarrtteess mmuullttiippoorrttss ssiimmpplleess

  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.

  33..33..  RReemmaarrqquueess ppoouurr lleess ccaarrtteess mmuullttiippoorrttss iinntteelllliiggeenntteess

  Lisez  les  informations  fournies  avec  le gestionnaire.  Ces cartes
  utilisent des peripheriques non-standards.  Ces  informations  varient
  suivant le materiel.

  44..  QQuueellqquueess pprrooggrraammmmeess iinntteerreessssaannttss aa ccoonnnnaaiittrree

  44..11..  QQuu''eesstt--ccee qquuee ggeettttyy ?

  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.

  44..11..11..  AA pprrooppooss ddee ggeettttyy__ppss

  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.

  44..11..22..  AA pprrooppooss ddee mmggeettttyy

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

  44..11..33..  AA pprrooppooss ddee aaggeettttyy

  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.

  44..22..  QQuu''eesstt--ccee qquuee sseettsseerriiaall ?

  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.

  55..  CCoommmmeenntt ppuuiiss--jjee aappppeelleerr aavveecc mmoonn mmooddeemm ??

  55..11..  MMaatteerriieell nneecceessssaaiirree

  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.

  55..11..11..  RReemmaarrqquueess ppoouurr lleess mmooddeemmss iinntteerrnneess

  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.

  55..22..  ````PPaarrlleezz'''' aa vvoottrree mmooddeemm

  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.

  55..33..  CCoonnffiigguurraattiioonn dduu mmooddeemm eenn mmooddee aappppeellaanntt

  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.

  55..44..  CCoonnttrroollee ddee fflluuxx mmaatteerriieell

  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.

  66..   CCoommmmeenntt  ppuuiiss--jjee  aappppeelleerr  eett  eettrree  aappppeellee  aavveecc  mmoonn  mmooddeemm  eett
  ggeettttyy__ppss ?

  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.

  66..11..  CCoonnffiigguurraattiioonn eenn mmooddeess aappppeellaanntt eett aappppeellee

  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.

  66..22..  IInnssttaalllleerr ggeettttyy__ppss

  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.

  66..33..  CCoonnffiigguurreerr uuuuggeettttyy

  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

  66..44..  PPeerrssoonnnnaalliisseerr uuuuggeettttyy

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

  77..  CCoommmmeenntt ccoonnffiigguurreerr uunn tteerrmmiinnaall rraaccccoorrddee aa mmoonn PPCC ??

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

  77..11..  BBeessooiinnss mmaatteerriieellss

  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.

  77..22..  CCoonnffiigguurreerr ggeettttyy

  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.

  77..33..  RReemmaarrqquueess ssuurr llaa ccoonnffiigguurraattiioonn dd''uunn PPCC eenn ttaanntt qquuee tteerrmmiinnaall

  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.

  88..  PPuuiiss--jjee uuttiilliisseerr pplluuss ddee ddeeuuxx ppoorrttss sseerriiee ??

  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.

  88..11..  CChhooiissiirr lleess iinntteerrrruuppttiioonnss ddeess ppeerriipphheerriiqquueess sseerriiee

  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.

  88..22..  CChhooiissiirr lleess aaddrreesssseess ddeess ppeerriipphheerriiqquueess sseerriiee

  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.

  99..   CCoommmmeenntt  ccoonnffiigguurreerr  ddeess vviitteesssseess pplluuss iimmppoorrttaanntteess ppoouurr mmeess ppoorrttss
  sseerriiee ?? AA qquueellllee vviitteessssee ddooiiss--jjee ffiixxeerr mmoonn mmooddeemm ??

  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

  1100..  PPrrooggrraammmmeess eett uuttiilliittaaiirreess ddee ccoommmmuunniiccaattiioonnss

  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.

  1111..  TTrruuccss eett aassttuucceess ssuurr lleess lliiaaiissoonnss sseerriiee

  Je  vous  presente  ici  quelques  astuces  que  vous  pourrez trouver
  utiles...

  1111..11..  kkeerrmmiitt 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.

  1111..22..  PPaarraammeettrreerr lleess ttyyppeess ddee tteerrmmiinnaauuxx aauuttoommaaggiiqquueemmeenntt

  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.

  1111..33..  llss 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.

  1111..44..  IImmpprriimmeerr ssuurr uunnee iimmpprriimmaannttee aattttaacchheeee aa uunn tteerrmmiinnaall

  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.

  1111..55..     LLiinnuuxx    ppeeuutt--iill    ccoonnffiigguurreerr   lleess   ppeerriipphheerriiqquueess   sseerriiee
  aauuttoommaaggiiqquueemmeenntt ??

  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.

  1111..55..11..  RReemmaarrqquueess ppoouurr lleess ccaarrtteess mmuullttiippoorrttss

  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.

  1111..66..  UUttiilliisseerr uunnee ccoonnssoollee sseerriiee

  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)

  1111..77..  OObbtteenniirr ddeess ddeebbiittss pplluuss iimmppoorrttaannttss

  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.

  1122..  UUnn ppaass ddee pplluuss......

  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.

  1122..11..  QQuu''eesstt--ccee qquuee lleess ffiicchhiieerrss vveerrrroouuss ??

  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.

  1122..22..  ````bbaauudd'''' eett ````bbppss''''

  ``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 !
     bbaauudd
        Le  baud  represente la frequence de (de)modulation d'un signal,
        par exemple celui envoye  ou  recu  par  un  modem  (mmoodulateur-
        ddeemmodulateur),  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.

     bbppss
        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.

  1122..33..   QQuu''eesstt--ccee  qquuee  lleess  UUAARRTT  ??   CCoommmmeenntt  iinnfflluueenntt--iillss  ssuurr  lleess
  ppeerrffoorrmmaanncceess ??

  Les  UART  (UUniversal  AAsyncronous  RReceiver  TTransmitter  --  EEmmeetttteeuurr
  RReecceepptteeuurr  UUnniivveerrsseell  AAssyynncchhrroonnee))  ssoonntt  ddeess  cciirrccuuiittss   eelleeccttrroonniiqquueess
  eeqquuiippaanntt  lleess  ccaarrtteess  sseerriiee  ddeess  PPCC..   IIllss sseerrvveenntt aa ttrraannssffoorrmmeerr lleess
  ddoonnnneeeess eenn bbiittss,, aa lleess eennvvooyyeerr ssuurr llaa lliiggnnee sseerriiee,, ppuuiiss aa rreeccoonnssttrruuiirree
  cceess  ddoonnnneeeess  aa  ll''aauuttrree  bboouutt..  IIllss  ttrraavvaaiilllleenntt  ssuurr ddeess oocctteettss,, qquuii
  ccoorrrreessppoonnddeenntt jjuusstteemmeenntt aa llaa ttaaiillllee ddeess ccaarraacctteerreess AASSCCIIII..

  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.

  1133..  RReessoouuddrree lleess pprroobblleemmeess

  1133..11..   LLee mmeessssaaggee ````lliinnee _N_N_N ooff iinniittttaabb iinnvvaalliidd'''' ss''aaffffiicchhee eenn ppeerrmmaa--
  nneennccee

  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.

  1133..22..  LLee mmeessssaaggee ````//ddeevv//ccuuaa_N::  DDeevviiccee  oorr  rreessoouurrccee  bbuussyy''''  aappppaarraaiitt
  qquuaanndd jj''eessssaaiiee dd''aappppeelleerr

  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.

  1133..33..  LLee mmeessssaaggee ````IIdd SS_N rreessppaawwnniinngg ttoooo ffaasstt::  ddiissaabblleedd  ffoorr  55  mmiinn--
  uutteess'''' ss''aaffffiicchhee ppeerriiooddiiqquueemmeenntt

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

  1133..44..  MMeess ppeerriipphheerriiqquueess sseerriiee ssoonntt lleennttss oouu uunniiddiirreeccttiioonnnneellss

  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.

  1133..55..  MMoonn mmooddeemm nnee rreeppoonndd pplluuss aapprreess llee rraaccccrroocchhaaggee,, oouu uuuuggeettttyy 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.

  1133..66..   UUnn  tteerrmmiinnaall  eesstt ccoonnnneeccttee aa mmoonn PPCC,, mmaaiiss iill ssee bbllooqquuee ddeess qquuee
  jj''aaii eennttrree mmoonn nnoomm dd''uuttiilliissaatteeuurr

  +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

  1133..77..  MMoonn mmooddeemm ppeerrdd ddeess ddoonnnneeeess aa hhaauuttee vviitteessssee

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

  1133..88..  AAuu ddeemmaarrrraaggee,, LLiinnuuxx nn''aaffffiicchhee ppaass lleess ppoorrttss sseerriiee tteellss  qquuee  jjee
  lleess aaii ppaarraammeettrreess

  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.

  1133..99..  rrzz 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.

  1133..1100..  MMoonn eeccrraann iimmpprriimmee ddeess ccaarraacctteerreess bbiizzaarrrreess

  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

  1133..1111..  ggeettttyy 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...

  1144..  AAuuttrreess ssoouurrcceess dd''iinnffoorrmmaattiioonn

  +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
     majordomo@vger.rutgers.edu, avec ``subscribe linux-serial'' dans le
     corps  du  message.   La commande ``help'' dans le corps du message
     vous permet de  recevoir  une  message  d'aide  sur  les  commandes
     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)

  1155..  CCoonnttrriibbuuttiioonnss

  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

