
                          mini-HOWTO PPP-par-minicom

Winfried Trmper ( winni@xpilot.org)
Traduction : Philippe Martin ( feloy@wanadoo.fr)

   v0.0 09 December 1996
     _________________________________________________________________

   _Vous dsirez un outil command par menu pour traiter avec PPP ? Un
   annuaire tlphonique puissant et facile d'utilisation avec les
   numros de tlphone de votre ISP ? Vous voulez voir ce qui se passe
   lors d'une connexion ? Alors ce mini-HowTo est pour vous !_
     _________________________________________________________________

1. Introduction

   PPP est devenu le protocole rseau standard pour se relier 
   l'internet via le rseau tlphonique. Le dmon pppd associ est un
   outil de connexion trs primitif qui manie seulement des
   configurations trs simples.
   Je vais dcrire ici une alternative base sur minicom.

   Cette documentation est une version simplifie du document allemand
   _Internetanbindung mit PPP_ (
   http://www.uni-koeln.de/themen/linux/ppp/).

1.1 Le terminal minicom

   minicom est un outil trs sophistiqu pour se connecter  d'autres
   ordinateurs (ISP ou BBS). Il possde un menu en couleur d'une grande
   qualit, un annuaire tlphonique et un puissant langage de script. Il
   convient donc absolument pour une utilisation conjointe avec pppd.

   Mais attention, si vous excutez /sbin/mgetty /dev/modem, toute
   personne ayant un compte valide sur votre machine peut utiliser la
   connexion (par exemple avec minicom). Mais ceci est une autre
   histoire. Veuillez consulter la documentation sur mgetty pour plus
   d'informations.

1.2 Commentaires

   Je suis uniquement interess par des remarques qui pourraient faire
   voluer ce mini-HowTo. Je ne rpondrai pas aux questions gnrales sur
   Linux, PPP, SLIP ou les rseaux.

1.3 Bogues connues

   A l'heure o j'cris ce document, il semble y avoir quelques bogues
   dans minicom, runscript et dans la mthode dcrite ci-dessous :

     * runscript n'attend pas que les programmes externes finissent
        print "ding"
        ! sleep 10
        print "dong"
       Ce script se termine immdiatement (mais pas sous strace ...)
     * pppd retire le port srie  minicom (quand il n'est pas aliment
       par stdin).

   Il semblerait que Miquel van Smoorenburg (l'auteur de minicom) soit
   trop occup pour y mettre le doigt dessus. Les volontaires seront
   alors les bienvenus.

2. Se connecter avec minicom

   Un grand nombre de documentations sur PPP recommandent de quitter
   minicom aprs l'avoir utilis pour se connecter. Mais vous n'avez
   vraiment pas besoin de quitter cet agrable programme...

2.1 Configurer minicom

   Excutez minicom -s et choisissez l'article de menu _Serial port setup_
   (Configuration du port srie). La premire entre devrait tre _Serial
   device_ (Priphrique srie) et c'est le paramtre le plus important :
   le priphrique srie auquel votre modem est rattach. (Des
   volontaires pour retoucher minicom afin qu'il puisse grer plusieurs
   priphriques srie  la fois ?)

   Pressez _<return>_ pour confirmer puis _<esc>_ pour revenir au menu de
   configuration initial. Choisissez _Exit to minicom_ (Sortie vers
   minicom) et tapez atdt99999. Votre modem devrait commencer  composer
   le numro immdiatement et vous devriez entendre un _click_ lorsque le
   modem se relie  la ligne. Heureusement, 99999 n'est pas un numro de
   tlphone valide.

2.2 Dmarrer PPP  la main

   Peut-tre avez-vous dj essay de composer le numro de tlphone de
   votre ISP au lieu de 99999. Vous avez alors srement vu de drles de
   caractres apparatre  l'cran aprs tre entr dans le systme
   (sinon, tapez ppp). Ils proviennent du dmon pppd (ou quivalent)
   dmarr  l'autre bout de la ligne. Dans ce cas, vous pouvez essayer
   de dmarrer le dmon pppd de votre ct, et valuer le fichier _log_
   par la suite.

   Pour dmarrer pppd depuis minicom, vous pouvez dfinir une nouvelle
   mthode de chargement (voyez comment par vous-mme) ou redfinir le
   paramtre _kermit program_ depuis le menu de configuration _Filename
   and paths_(Fichiers et rpertoires) :
        A - Download directory :
        B -   Upload directory :
        C -   Script directory :
        D -     Script program : /usr/bin/runscript
        E -     Kermit program : /usr/sbin/pppd file /etc/ppp/mini_options

   Maintenant, si vous voyez apparatre ces drles de caractres la
   prochaine fois que vous appelez votre ISP, vous pouvez presser les
   touches <Alt>+<K> pour dmarrer pppd.

   La suite de ce mini-HowTo traite de l'automatisation du processus de
   connexion et de dmarrage de pppd.

2.3 Evaluer le fichier log

   Bien que mon but ne soit pas d'expliquer comment configurer PPP, je
   donne un petit conseil pour lire le fichier _log_. Pour extraire les
   informations essentielles du fichier _log_ /var/log/debug (ou
   /var/log/daemon.log), excutez la commande
        tail -n 40  /var/log/debug |\
                grep -E " pppd\[[0-9]*\]:" |\
                sed -e "s/^.*pppd\[/[/"

   Vous devriez voir des messages comme
        sent [LCP ConfReq id=0x1 <mru 296>]
        rcvd [LCP ConfRej id=0x1 <mru 296>]

   qui indiquent que nous avons envoy (_sent_) une requte de
   configuration (_Config-request_) pour mettre le bloc maximal de
   rception (_maximum receive unit - mru_)  296. Le second message
   refuse cette configuration (_configuration rejected_). Dans ce cas,
   j'ai juste retir l'option mru dans /etc/ppp/options (voir plus loin).

2.4 Configurer un numro de tlphone

   Si tout a bien march jusqu'ici, vous voudrez srement enregistrer un
   numro de tlphone dans l'annuaire de minicom. Pressez <ALT>+<D> pour
   faire apparatre le menu de composition d'un numro (_dialing menu_)
   et utilisez les touches du curseur pour slectionner Edit :
        A -  Name                : Xeno
        B -  Number              : 022039697303
        C -  Dial string #       : 1
        D -  Local echo          : No
        E -  Script              : /etc/ppp/login.script
        F -  Username            : ppp-382
        G -  Password            : top-secret
        H -  Terminal Emulation  : VT102
        I -  Backspace key sends : Delete
        J -  Linewrap            : Off
        K -  Line Settings       : Curr 8N1

   Ceci est un exemple d'entres pour me connecter  l'un de mes ISP. Le
   script /etc/ppp/login.script apparat plus loin. Deux variables
   particulires sont passes au script : $(LOGIN) et $(PASS) qui
   prennent les valeurs entres comme nom d'utilisateur (_F - Username_)
   et mot de passe (_G - Password_). Cette caractristique rend minicom
   assez souple car il utilise un unique script pour automatiser la
   connexion  diffrents ISP.

2.5 Un script de connexion

   minicom lance le script de connexion aprs avoir reu la chane de
   caractres CONNECT. Pour tre plus prcis, minicom ne le lance pas
   lui-mme, mais appelle pour a l'utilitaire runscript comme
   sous-procesus.

   En voici un exemple (que j'utilise pour mon ISP) :
        # v1.0, 20.08.96 Winfried Trumper <winni@xpilot.org>
        print ""
        print "Connexion automatique via /etc/ppp/login.script"

        ## Retirez le commentaire si vous devez presser Entree
        ## pour obtenir le prompt
        #send ""

        expect {
                "ogin:"
                "ogin>"
                "sername:"
                "sername>"
                "NO CARRIER" exit 1
        }
        send "$(LOGIN)"
        expect {
                "assword:"
                "assword>"
                timeout 20
        }
        send "$(PASS)"
        expect {
                "port"  send "ppp"
                "Start your PPP now"
                "}!}!}"
                timeout 10
        }
        print ""
        print "Passage en mode PPP ..."
        print ""

        ! /usr/sbin/pppd  file /etc/ppp/mini_options


        print ""
        print "la commande   killall -TERM pppd   termine pppd"

   L'aptitude de runscript  appeler des programmes externes est utilise
   pour dmarrer pppd. Copiez votre fichier d'options original pour ppp
   vers /etc/ppp/options.ttyS1 (remplacez ttyS1 par le nom du
   priphrique auquel votre modem est rattach) et supprimez toutes les
   lignes dans /etc/ppp/options spcifiques  votre modem (comme connect,
   crtscts ou modem).

   Mettez les options spcifiques  la connexion PPP via minicom dans
   /etc/ppp/mini_options. Une de ces options devrait tre
        disconnect "chat '' '\d\d+++\d\dATH\r\c'"

   Ceci est indispensable car pppd est aliment par stdin et ne peut pas
   racccrocher le modem via crtscts.

2.6 Numrotation automatique au dmarrage

   Utilisez l'option -d pour numroter un numro de tlphone particulier
   au dmarrage de minicom.
   Vous pouvez aussi essayer
        open -sl -- minicom -d 1

   pour envoyer minicom sur une autre console (voir le mini-howTo
   Consoles-Many pour plus de dtails).

2.7 Extensions futures

   pppd tant un dmon, il n'est pas conu pour une interaction avec
   l'utilisateur ou pour l'observation. C'est clair. Aprs tout, nous
   utilisons un systme unix...

   La solution canonique est un programme d'arrire-plan. Des volontaires
   pour tailler minicom en pices ?

   Des extensions intressantes seraient :
     * la gnration automatique du script de connexion par l'observation
       de l'utilisateur se connectant manuellement,
     * l'valuation automatique du fichier _log_ avec correction
       automatique des options,
     * l'extraction de messages comme ceux vus  la section Evaluer le
       fichier log.
