<HTML> <HEAD> <TITLE>Se connecter avec minicom</TITLE> </HEAD> <BODY> <H1>2. <A NAME="s2"></A>Se connecter avec minicom</H1> <P> <A HREF="PPP-over-minicom.html#toc2">Contenu de cette section</A></P> <P>Un grand nombre de documentations sur PPP recommandent de quitter <CODE>minicom</CODE> après l'avoir utilisé pour se connecter. Mais vous n'avez vraiment pas besoin de quitter cet agréable programme...</P> <P></P> <H2>2.1 <A NAME="ss2.1"></A> Configurer minicom</H2> <P>Exécutez <CODE>minicom -s</CODE> et choisissez l'article de menu <I>Serial port setup</I> (Configuration du port série). La première entrée devrait être <I>Serial device</I> (Périphérique série) et c'est le paramètre le plus important : le périphérique série auquel votre modem est rattaché. (Des volontaires pour retoucher <CODE>minicom</CODE> afin qu'il puisse gérer plusieurs périphériques série à la fois ?)<BR></P> <P>Pressez <B><return></B> pour confirmer puis <B><esc></B> pour revenir au menu de configuration initial. Choisissez <I>Exit to minicom</I> (Sortie vers minicom) et tapez <CODE>atdt99999</CODE>. Votre modem devrait commencer à composer le numéro immédiatement et vous devriez entendre un <I>click</I> lorsque le modem se relie à la ligne. Heureusement, <CODE>99999</CODE> n'est pas un numéro de téléphone valide.</P> <P></P> <P></P> <H2>2.2 <A NAME="ss2.2"></A> Démarrer PPP à la main</H2> <P>Peut-être avez-vous déjà essayé de composer le numéro de téléphone de votre ISP au lieu de <CODE>99999</CODE>. Vous avez alors sûrement vu de drôles de caractères apparaître à l'écran après être entré dans le système (sinon, tapez <CODE>ppp</CODE>). Ils proviennent du démon <CODE>pppd</CODE> (ou équivalent) démarré à l'autre bout de la ligne. Dans ce cas, vous pouvez essayer de démarrer le démon <CODE>pppd</CODE> de votre côté, et évaluer le fichier <I>log</I> par la suite.</P> <P></P> <P>Pour démarrer <CODE>pppd</CODE> depuis <CODE>minicom</CODE>, vous pouvez définir une nouvelle méthode de chargement (voyez comment par vous-même) ou redéfinir le paramètre <I>kermit program</I> depuis le menu de configuration <I>Filename and paths</I>(Fichiers et répertoires) : <PRE> 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 </PRE> </P> <P>Maintenant, si vous voyez apparaître ces drôles de caractères la prochaine fois que vous appelez votre ISP, vous pouvez presser les touches <CODE><Alt></CODE>+<CODE><K></CODE> pour démarrer <CODE>pppd</CODE>.</P> <P></P> <P>La suite de ce mini-HowTo traite de l'automatisation du processus de connexion et de démarrage de <CODE>pppd</CODE>.</P> <P></P> <P></P> <A NAME="eval-log"></A> <H2>2.3 <A NAME="ss2.3"></A> Evaluer le fichier log</H2> <P>Bien que mon but ne soit pas d'expliquer comment configurer PPP, je donne un petit conseil pour lire le fichier <I>log</I>. Pour extraire les informations essentielles du fichier <I>log</I> <CODE>/var/log/debug</CODE> (ou <CODE>/var/log/daemon.log</CODE>), exécutez la commande <PRE> tail -n 40 /var/log/debug |\ grep -E " pppd\[[0-9]*\]:" |\ sed -e "s/^.*pppd\[/[/" </PRE> Vous devriez voir des messages comme <PRE> sent [LCP ConfReq id=0x1 <mru 296>] rcvd [LCP ConfRej id=0x1 <mru 296>] </PRE> qui indiquent que nous avons envoyé (<I>sent</I>) une requête de configuration (<I>Config-request</I>) pour mettre le bloc maximal de réception (<I>maximum receive unit - mru</I>) à 296. Le second message refuse cette configuration (<I>configuration rejected</I>). Dans ce cas, j'ai juste retiré l'option <CODE>mru</CODE> dans <CODE>/etc/ppp/options</CODE> (voir plus loin).</P> <P></P> <P></P> <H2>2.4 <A NAME="ss2.4"></A> Configurer un numéro de téléphone</H2> <P>Si tout a bien marché jusqu'ici, vous voudrez sûrement enregistrer un numéro de téléphone dans l'annuaire de <CODE>minicom</CODE>. Pressez <CODE><ALT></CODE>+<CODE><D></CODE> pour faire apparaître le menu de composition d'un numéro (<I>dialing menu</I>) et utilisez les touches du curseur pour sélectionner <CODE>Edit</CODE> : <PRE> 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 </PRE> </P> <P></P> <P>Ceci est un exemple d'entrées pour me connecter à l'un de mes ISP. Le script <CODE>/etc/ppp/login.script</CODE> apparaît plus loin. Deux variables particulières sont passées au script : <CODE>$(LOGIN)</CODE> et <CODE>$(PASS)</CODE> qui prennent les valeurs entrées comme nom d'utilisateur (<I>F - Username</I>) et mot de passe (<I>G - Password</I>). Cette caractéristique rend <CODE>minicom</CODE> assez souple car il utilise un unique script pour automatiser la connexion à différents ISP.</P> <P></P> <P></P> <H2>2.5 <A NAME="ss2.5"></A> Un script de connexion</H2> <P><CODE>minicom</CODE> lance le script de connexion après avoir reçu la chaîne de caractères <CODE>CONNECT</CODE>. Pour être plus précis, <CODE>minicom</CODE> ne le lance pas lui-même, mais appelle pour ça l'utilitaire <CODE>runscript</CODE> comme sous-procesus. </P> <P></P> <P>En voici un exemple (que j'utilise pour mon ISP) : <PRE> # 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" </PRE> </P> <P></P> <P>L'aptitude de <CODE>runscript</CODE> à appeler des programmes externes est utilisée pour démarrer <CODE>pppd</CODE>. Copiez votre fichier d'options original pour ppp vers <CODE>/etc/ppp/options.ttyS1</CODE> (remplacez <CODE>ttyS1</CODE> par le nom du périphérique auquel votre modem est rattaché) et supprimez toutes les lignes dans <CODE>/etc/ppp/options</CODE> spécifiques à votre modem (comme <CODE>connect</CODE>, <CODE>crtscts</CODE> ou <CODE>modem</CODE>).</P> <P></P> <P>Mettez les options spécifiques à la connexion PPP via <CODE>minicom</CODE> dans <CODE>/etc/ppp/mini_options</CODE>. Une de ces options devrait être <PRE> disconnect "chat '' '\d\d+++\d\dATH\r\c'" </PRE> Ceci est indispensable car <CODE>pppd</CODE> est alimenté par <CODE>stdin</CODE> et ne peut pas racccrocher le modem via <CODE>crtscts</CODE>.</P> <P></P> <P></P> <H2>2.6 <A NAME="ss2.6"></A> Numérotation automatique au démarrage</H2> <P>Utilisez l'option <CODE>-d</CODE> pour numéroter un numéro de téléphone particulier au démarrage de <CODE>minicom</CODE>.<BR> Vous pouvez aussi essayer <PRE> open -sl -- minicom -d 1 </PRE> pour envoyer <CODE>minicom</CODE> sur une autre console (voir le mini-howTo Consoles-Many pour plus de détails).</P> <P></P> <P></P> <H2>2.7 <A NAME="ss2.7"></A> Extensions futures</H2> <P><CODE>pppd</CODE> étant un démon, il n'est pas conçu pour une interaction avec l'utilisateur ou pour l'observation. C'est clair. Après tout, nous utilisons un système unix...</P> <P></P> <P>La solution canonique est un programme d'arrière-plan. Des volontaires pour tailler <CODE>minicom</CODE> en pièces ?</P> <P></P> <P>Des extensions intéressantes seraient : <UL> <LI>la génération automatique du script de connexion par l'observation de l'utilisateur se connectant manuellement, </LI> <LI>l'évaluation automatique du fichier <I>log</I> avec correction automatique des options, </LI> <LI>l'extraction de messages comme ceux vus à la section <A HREF="#eval-log">Evaluer le fichier log</A> . </LI> </UL> </P> <P></P> <HR> <P> Chapitre <A HREF="PPP-over-minicom-1.html">Précédent</A> <P> Table des matières de <A HREF="PPP-over-minicom.html#toc2">ce chapitre</A>, <A HREF="PPP-over-minicom.html#toc">Table des matières</A> générale</P> <P> <A HREF="PPP-over-minicom.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>