PPP-over-minicom mini-HOWTO
 Winfried Tr�mper ([email protected])
 v0.2 01 Maggio 1998

 Desiderate controllare il PPP utilizzando una utility controllata da
 un men�? Un database facile ma potente con i numeri di telefono del
 vostro ISP? Volete vedere cosa succede quando vi loggate? Allora
 questo mini-HOWTO � per voi!

 1.  Introduzione

 PPP � diventato il protocollo standard per collegarsi ad internet
 tramite connessione dialup. Il demone associato "pppd" comprende una
 utility molto primitiva per il collegamento, che gestisce bene
 solamente configurazioni molto semplici.

 Questo mini-HOWTO descrive una soluzione alternativa basata su
 "minicom".


 1.1.  Il programma terminale "minicom"

 "minicom" � un programma molto complicato per collegarsi ad altri
 computer (ISP o BBS). Ha un men� colorato, un database delle
 connessioni dialup e un potente linguaggio di scripting. Cos� viene
 idealmente adattato per l'uso in congiunzione con "pppd".


 1.2.  Commenti e critiche

 Sono solamente interessato a commenti e critiche che possano
 migliorare questo mini-HOWTO. Non risponder� a domande generali su
 Linux, PPP, SLIP o networking.


 1.3.  Bug conosciuti

 Al tempo della scrittura, sembrava che ci fossero alcuni bug in
 "minicom", "runscript" e il metodo descritto sotto:

 �  "runscript" non aspetta che i programmi esterni finiscano


      print "blah"
      ! sleep 10
      print "blup"




 Questo script esce immediatamente (ma non quando lo si analizza
 tramite strace...)

 �  "pppd" si impossessa del dispositivo seriale negandolo a minicom
    (quando non alimentato da stdin)
    Sembra che Miquel van Smoorenburg (l'autore di minicom) sia troppo
    occupato per mettersi a lavorare sul problema di cui sopra. Indi
    per cui volontari sono benvenuti.


 2.  Effettuare una chiamata con minicom

 Molte guide su PPP raccomandano di lasciare minicom dopo che � stato
 usato per collegarsi. Ma non c'� in realt� alcuna ragione per lasciare
 questo confortevole programma...

 2.1.  Configurare minicom

 Eseguite "minicom -s" e scegliete dal men� la voce "Serial port
 setup". La prima voce dovrebbe essere "Serial Device".  Questa �
 l'opzione pi� importante: il dispositivo seriale a cui � collegato il
 vostro modem.  (Qualche volontario per fare in modo che minicom
 gestisca pi� dispositivi seriali alla volta?)

 Per avere il nome del file del dispositivo, al quale � collegato il
 vostro modem, digitate i seguenti commandi:



      for i in 0 1 2 3
      do
        if (chat -v -t 5 "" ATZ "" \\d "" ATZ OK "" > /dev/ttyS$i < /dev/ttyS$i)
        then
           echo "Modem in /dev/ttyS$i (= COM$[$i+1] sotto DOS)"
        else
           echo "Nessun Modem trovato in ttyS$i."
        fi
      done




 Il codice sopra assicura che il modem sia configurato correttamente.
 Alcune persone hanno problemi con i modem plug-and-play, il che
 dimostra che "plug-and-play" � pi� che una "lite" di mercato.

 Adesso provate a comporre un numero col comando "atdt5" (dt sta per
 "componi usando il metodo a toni"). Se non sentite un dialtone,
 controllate i cablaggi. Il vostro modem protester� con il messaggio
 "no dialtone" e annuller� il comando. Se il vostro sistema telefonico
 non ha un dialtone, potete voler dirlo al vostro modem con "x3",
 perci� il comando da provare � "atx3dt5".

 Se ottenete il dialtone, ma la composizione non ha effetto, allora
 potete riprovare con il metodo "pulse dialing" (usate "dp" invece del
 "dt" di prima). In ogni caso, premete la barra spazio per interrompere
 l'ultimo comando.

 Prendete nota del comando che ha successo. Infine andate su "Modem and
 dialing parameter setup" in minicom e modificate "Dialing prefix" per
 adattarvi ai vostri bisogni. Potete inserire "l0m0" direttamente dopo
 AT per spegnere lo speaker prima di prendere la linea telefonica.


 2.2.  Far partire PPP manualmente

 Pu� darsi che abbiate gi� provato a comporre il numero telefonico del
 vostro ISP invece di "5". Avete visto caratteri divertenti sullo
 schermo dopo il login (altrimenti, digitate "ppp")?  Risultano dal
 "pppd" (o equivalente) fatto partire all'altra parte della linea. Se �
 cos�, potete provare a far partire il pppd daemon sul vostro sistema e
 poi valutare i file di log.

 Per far partire "pppd" dentro minicom, potete definire un nuovo metodo
 di upload (capite da soli come) o ridefinire l'opzione "kermit
 program" dal men� di configurazione "Filename and paths":






 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




 Adesso se vedete quei caratteri divertenti la prossima volta che vi
 collegate al vostro ISP potete premere <Alt-K> per far partire "pppd".

 Il resto di questo mini-HOWTO si occupa di automatizzare il processo
 di login e di partenza di "pppd".


 2.3.  Valutare i file di log

 Sebbene io non voglia spiegare come PPP deve essere configurato, do un
 breve consiglio su come leggere il file di log. Per estrarre le
 informazioni essenziali dal file di log "/var/log/debug" (o
 l'altervativo "/var/log/daemon.log") eseguite i comandi


      tail -n 40  /var/log/debug |\
              grep -E " pppd\[[0-9]*\]:" |\
              sed -e "s/^.*pppd\[/[/"




 Dovreste vedere messaggi del tipo



      sent [LCP ConfReq id=0x1 <mru 296>]
      rcvd [LCP ConfRej id=0x1 <mru 296>]




 che indicano che abbiamo spedito una config-request per configurare la
 "maximum receive unit" a 296. L'altro lato rifiuta questa opzione
 ("configuration rejected"). In questo caso ho solamente rimosso
 l'opzione "mru" da "/etc/ppp/options" (vedete sotto).


 2.4.  Configurare un numero telefonico

 Se ci� che abbiamo visto sopra ha avuto successo, potete voler
 immagazzinare un numero telefonico nel database di minicom. Premete
 <Alt-D> per vedere il men� di composizione e usate i tasti cursore per
 selezionare "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




 Questa � una entry di esempio per collegarmi a uno dei miei ISP. Lo
 script "/etc/ppp/login.script" viene mostrato sotto. Due variabili
 speciali sono passate a questo script: $(LOGIN) e $(PASS) che sono
 impostate ai valori scelti per username (F) e password (G). Questa
 caratteristica rende minicom piuttosto flessibile perch� avete bisogno
 di un solo script per automatizzare il vostro login a molti ISP.


 2.5.  Uno script di login

 "minicom" fa partire lo script di login dopo che riceve la stringa
 "CONNECT". Ad essere precisi, "minicom" non esegue lo script da solo
 ma chiama l'utility "runscript" come sottoprocesso.

 Sotto c'� un esempio, � quello che uso per i miei ISP.




































 # v1.0, 20.08.96 Winfried Tr�mper <[email protected]>
 print ""
 print "Automatic login via /etc/ppp/login.script"

 ## uncomment if you need to press enter to get the 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 "Now switching into ppp-mode ..."
 print ""

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

 print ""
 print "the command   killall -TERM pppd   terminates pppd"




 La capacit� di "runscript" di chiamare programmi esterni � usata per
 far partire "pppd". Copiate il vostro file di opzioni per ppp in
 "/etc/ppp/options.ttyS1" (dove dovete sostituire "ttyS1" col
 dispositivo a cui il vostro modem � connesso) e cancellate tutte le
 linee da /etc/ppp/options che sono specifiche per il vostro modem
 (come "connect", "crtscts" o "modem"). Mettete le opzioni che
 dovrebbero essere specifiche alla connessione ppp con minicom in
 "/etc/ppp/mini_options". Una di queste opzioni dovrebbe essere


      disconnect "chat '' '\d\d+++\d\dATH\r\c'"




 Questo � un must perch� "pppd" � alimentato dallo standard input e non
 pu� scollegare il modem con "crtscts". Ecco il mio
 /etc/ppp/mini_options:









 debug
 -detach
 defaultroute
 netmask 255.255.255.0
 mru 1500
 mtu 1500
 asyncmap 00000000
 disconnect "chat '' '\d\d+++\d\dATH\r\c'"





 2.6.  Connessione automatizzata alla partenza di minicom

 Usate l'opzione "-d" per comporre un certo numero telefonico all'avvio
 di minicom. Potete anche provare



      open -sl -- minicom -d 1




 Per mettere minicom su un'altra console (consultate il Consoles-Many
 mini-HOWTO per i dettagli).


 2.7.  Estensioni future

 Poich� "pppd" � un demone non � stato designato per interagire con
 l'utente o essere osservato. In questo modo � ok. Dopo tutto, stiamo
 usando un sistema operativo unix-like...

 La soluzione canonica � un backend. C'� qualche volontario per
 lavorare a questo per minicom? Delle estensioni carine potrebbero
 essere:


 �  generazione automatica della script di login guardando l'utente che
    si collega manualmente

 �  valutazione automatica del file di log con la correzione delle
    opzioni

 �  estrazione di messaggio come mostrato in 2.3.

 Fine del PPP-over-minicom mini-HOWTO

 Traduzione italiana a cura di Nicola Girardi ([email protected])