Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 1c8dd3ad2a7f81676a3a01bf6b47f616 > files > 189

howto-sgml-fr-9.0-1mdk.noarch.rpm

<!doctype linuxdoc system>

<article>

<title>mini-HOWTO PPP-par-minicom
<author>Winfried Tr&uuml;mper (<htmlurl url="winni@xpilot.org" name="winni@xpilot.org">)&nl;
Traduction&nbsp;: Philippe Martin (<htmlurl url="mailto:feloy@wanadoo.fr" name="feloy@wanadoo.fr">)
<date>v0.0  09 December 1996

<abstract>
Vous d&eacute;sirez un outil command&eacute par menu pour traiter avec PPP&nbsp;?
Un annuaire t&eacute;l&eacute;phonique puissant et facile d'utilisation
avec les num&eacute;ros de t&eacute;l&eacute;phone de votre ISP&nbsp;?
Vous voulez voir ce qui se passe lors d'une connexion&nbsp;?
Alors ce mini-HowTo est pour vous&nbsp;!

<toc>

<sect>Introduction

<p>
PPP est devenu le protocole r&eacute;seau standard pour se relier 
&agrave; l'internet via le r&eacute;seau t&eacute;l&eacute;phonique.
Le d&eacute;mon <tt>pppd</tt> associ&eacute; est un outil de connexion 
tr&egrave;s primitif qui manie seulement des configurations tr&egrave;s simples.&nl;
Je vais d&eacute;crire ici une alternative bas&eacute;e sur <tt>minicom</tt>.

<p>
Cette documentation est une version simplifi&eacute;e du document allemand 
<it>Internetanbindung mit PPP</it>
(<htmlurl url="http://www.uni-koeln.de/themen/linux/ppp/" name="http://www.uni-koeln.de/themen/linux/ppp/">).


<sect1>Le terminal minicom

<p>
<tt>minicom</tt> est un outil tr&egrave;s sophistiqu&eacute; pour se 
connecter &agrave; d'autres ordinateurs (ISP ou BBS). 
Il poss&egrave;de un menu en couleur d'une grande qualit&eacute;,
un annuaire t&eacute;l&eacute;phonique et un puissant langage de 
script.
Il convient donc absolument pour une utilisation conjointe avec <tt>pppd</tt>.

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


<sect1>Commentaires

<p>
Je suis uniquement interess&eacute; par des remarques qui pourraient
faire &eacute;voluer ce mini-HowTo. Je ne r&eacute;pondrai pas aux 
questions g&eacute;n&eacute;rales sur Linux, PPP, SLIP ou les r&eacute;seaux.


<sect1>Bogues connues

<p>
A l'heure o&ugrave; j'&eacute;cris ce document, il semble y avoir quelques 
bogues dans <tt>minicom</tt>, <tt>runscript</tt> et dans la m&eacute;thode d&eacute;crite 
ci-dessous&nbsp;:

<itemize>
<item><tt>runscript</tt> n'attend pas que les programmes externes finissent
<verb>
        print "ding"
        ! sleep 10
        print "dong"
</verb>
Ce script se termine imm&eacute;diatement (mais pas sous <tt>strace</tt> ...)

<item><tt>pppd</tt> retire le port s&eacute;rie &agrave; <tt>minicom</tt>
(quand il n'est pas aliment&eacute; par <tt>stdin</tt>).
</itemize>

<p>
Il semblerait que Miquel van Smoorenburg (l'auteur de <tt>minicom</tt>)
soit trop occup&eacute; pour y mettre le doigt dessus. Les volontaires
seront alors les bienvenus. 

<sect>Se connecter avec minicom

<p>
Un grand nombre de documentations sur PPP recommandent de quitter 
<tt>minicom</tt> apr&egrave;s l'avoir utilis&eacute; pour se connecter.
Mais vous n'avez vraiment pas besoin de quitter cet agr&eacute;able 
programme...

<sect1>Configurer minicom

<p>
Ex&eacute;cutez <tt>minicom -s</tt> et choisissez l'article de menu
<it>Serial port setup</it> (Configuration du port s&eacute;rie).
La premi&egrave;re entr&eacute;e devrait &ecirc;tre <it>Serial device</it>
(P&eacute;riph&eacute;rique s&eacute;rie) et c'est le param&egrave;tre le plus important&nbsp;:
le p&eacute;riph&eacute;rique s&eacute;rie auquel votre modem est rattach&eacute;.
(Des volontaires pour retoucher <tt>minicom</tt> afin qu'il puisse
 g&eacute;rer plusieurs p&eacute;riph&eacute;riques s&eacute;rie &agrave; la fois ?)&nl;

Pressez <bf>&lt;return&gt;</bf> pour confirmer puis <bf>&lt;esc&gt;</bf> 
pour revenir au menu de configuration initial. Choisissez 
<it>Exit to minicom</it> (Sortie vers minicom) et tapez <tt>atdt99999</tt>.
Votre modem devrait commencer &agrave; composer le num&eacute;ro 
imm&eacute;diatement et vous devriez entendre un <it>click</it> lorsque 
le modem se relie &agrave; la ligne. Heureusement, <tt>99999</tt> n'est pas 
un num&eacute;ro de t&eacute;l&eacute;phone valide.


<sect1>D&eacute;marrer PPP &agrave; la main

<p>
Peut-&ecirc;tre avez-vous d&eacute;j&agrave; essay&eacute; de composer le 
num&eacute;ro de t&eacute;l&eacute;phone de votre ISP au lieu de 
<tt>99999</tt>.
Vous avez alors s&ucirc;rement vu de dr&ocirc;les de caract&egrave;res 
appara&icirc;tre &agrave; l'&eacute;cran apr&egrave;s &ecirc;tre 
entr&eacute; dans le syst&egrave;me (sinon, tapez <tt>ppp</tt>). Ils 
proviennent du d&eacute;mon <tt>pppd</tt> (ou &eacute;quivalent) 
d&eacute;marr&eacute; &agrave; l'autre bout de la ligne. 
Dans ce cas, vous pouvez essayer de d&eacute;marrer le d&eacute;mon
<tt>pppd</tt> de votre c&ocirc;t&eacute;, et &eacute;valuer le fichier 
<it>log</it> par la suite.

<p>
Pour d&eacute;marrer <tt>pppd</tt> depuis <tt>minicom</tt>, 
vous pouvez d&eacute;finir une nouvelle m&eacute;thode de 
chargement (voyez comment par vous-m&ecirc;me) ou red&eacute;finir 
le param&egrave;tre <it>kermit program</it> depuis le menu de configuration
<it>Filename and paths</it>(Fichiers et r&eacute;pertoires)&nbsp;:
<verb>
        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
</verb>

Maintenant, si vous voyez appara&icirc;tre ces dr&ocirc;les de 
caract&egrave;res la prochaine fois que vous appelez votre ISP,
vous pouvez presser les touches <tt>&lt;Alt&gt;</tt>+<tt>&lt;K&gt;</tt>
pour d&eacute;marrer <tt>pppd</tt>.

<p>
La suite de ce mini-HowTo traite de l'automatisation du processus 
de connexion et de d&eacute;marrage de <tt>pppd</tt>.


<sect1>Evaluer le fichier log<label id="eval-log">

<p>Bien que mon but ne soit pas d'expliquer comment configurer PPP,
je donne un petit conseil pour lire le fichier 
<it>log</it>. Pour extraire les informations essentielles du fichier
<it>log</it> <tt>/var/log/debug</tt> (ou <tt>/var/log/daemon.log</tt>),
ex&eacute;cutez la commande
<verb>
        tail -n 40  /var/log/debug |\
                grep -E " pppd\[[0-9]*\]:" |\
                sed -e "s/^.*pppd\[/[/" 
</verb>
Vous devriez voir des messages comme
<verb>
        sent [LCP ConfReq id=0x1 <mru 296>]
        rcvd [LCP ConfRej id=0x1 <mru 296>]
</verb>
qui indiquent que nous avons envoy&eacute; (<it>sent</it>)
une requ&ecirc;te de configuration (<it>Config-request</it>)
pour mettre le bloc maximal de r&eacute;ception
(<it>maximum receive unit - mru</it>) &agrave; 296. 
Le second message refuse cette configuration
(<it>configuration rejected</it>). Dans ce cas, j'ai juste
retir&eacute; l'option <tt>mru</tt> dans <tt>/etc/ppp/options</tt> 
(voir plus loin).


<sect1>Configurer un num&eacute;ro de t&eacute;l&eacute;phone

<p>
Si tout a bien march&eacute; jusqu'ici, vous voudrez s&ucirc;rement
enregistrer un num&eacute;ro de t&eacute;l&eacute;phone dans l'annuaire
de <tt>minicom</tt>. Pressez <tt>&lt;ALT&gt;</tt>+<tt>&lt;D&gt;</tt> pour
faire appara&icirc;tre le menu de composition d'un num&eacute;ro 
(<it>dialing menu</it>) et utilisez les touches du curseur pour
s&eacute;lectionner <tt>Edit</tt>&nbsp;:
<verb>
        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
</verb>

<p>
Ceci est un exemple d'entr&eacute;es pour me connecter &agrave; l'un de 
mes ISP.
Le script <tt>/etc/ppp/login.script</tt> appara&icirc;t plus loin.
Deux variables particuli&egrave;res sont pass&eacute;es au script&nbsp;: 
<tt>&dollar;(LOGIN)</tt> et <tt>&dollar;(PASS)</tt> qui prennent les valeurs
entr&eacute;es comme nom d'utilisateur (<it>F - Username</it>)
et mot de passe (<it>G - Password</it>).
Cette caract&eacute;ristique rend <tt>minicom</tt> assez souple
car il utilise un unique script pour automatiser la connexion
&agrave; diff&eacute;rents ISP.


<sect1>Un script de connexion

<p><tt>minicom</tt> lance le script de connexion apr&egrave;s avoir 
re&ccedil;u la cha&icirc;ne de caract&egrave;res <tt>CONNECT</tt>.
Pour &ecirc;tre plus pr&eacute;cis, <tt>minicom</tt> ne le lance pas
lui-m&ecirc;me, mais appelle pour &ccedil;a l'utilitaire <tt>runscript</tt>
comme sous-procesus. 

<p>
En voici un exemple (que j'utilise pour mon ISP)&nbsp;:
<verb>
        # 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"
</verb>

<p>
L'aptitude de <tt>runscript</tt> &agrave; appeler des programmes
externes est utilis&eacute;e pour d&eacute;marrer <tt>pppd</tt>.
Copiez votre fichier d'options original pour ppp vers 
<tt>/etc/ppp/options.ttyS1</tt> (remplacez <tt>ttyS1</tt> par
le nom du p&eacute;riph&eacute;rique auquel votre modem est rattach&eacute;) et 
supprimez toutes les lignes dans <tt>/etc/ppp/options</tt>
sp&eacute;cifiques &agrave; votre modem (comme <tt>connect</tt>,
<tt>crtscts</tt> ou <tt>modem</tt>).

<p>
Mettez les options sp&eacute;cifiques &agrave; la connexion PPP
via <tt>minicom</tt> dans <tt>/etc/ppp/mini_options</tt>.
Une de ces options devrait &ecirc;tre 
<verb>
        disconnect "chat '' '\d\d+++\d\dATH\r\c'"
</verb>
Ceci est indispensable car <tt>pppd</tt> est aliment&eacute; par <tt>stdin</tt>
et ne peut pas racccrocher le modem via <tt>crtscts</tt>.


<sect1>Num&eacute;rotation automatique au d&eacute;marrage

<p>Utilisez l'option <tt>-d</tt> pour num&eacute;roter
un num&eacute;ro de t&eacute;l&eacute;phone particulier au d&eacute;marrage
de <tt>minicom</tt>.&nl;
Vous pouvez aussi essayer
<verb>
        open -sl -- minicom -d 1
</verb>
pour envoyer <tt>minicom</tt> sur une autre console (voir le mini-howTo 
Consoles-Many pour plus de d&eacute;tails).


<sect1>Extensions futures

<p>
<tt>pppd</tt> &eacute;tant un d&eacute;mon, il n'est pas con&ccedil;u 
pour une interaction avec l'utilisateur ou pour l'observation.
C'est clair. Apr&egrave;s tout, nous utilisons un syst&egrave;me
unix...

<p>
La solution canonique est un programme d'arri&egrave;re-plan. Des volontaires
pour tailler <tt>minicom</tt> en pi&egrave;ces ?

<p>
Des extensions int&eacute;ressantes seraient&nbsp;:
<itemize>

<item>la g&eacute;n&eacute;ration automatique du script de 
connexion par l'observation de l'utilisateur se connectant 
manuellement,

<item>l'&eacute;valuation automatique du fichier <it>log</it>
avec correction automatique des options,

<item>l'extraction de messages comme ceux vus &agrave; la section
<ref id="eval-log" name="Evaluer le fichier log">.

</itemize>

</sect>
</article>