Avanti Indietro Indice

12. Uugetty per dial-in (dal vecchio Serial-HOWTO)

Sappiate che potreste usare mgetty come (migliore?) alternativa a uugetty. mgetty è più nuovo e più famoso di uugetty. Vedere Cos'è getty? per un breve confronto tra questi 2 getty.

12.1 Installare getty_ps

Visto che uugetty è parte di getty_ps dovete prima installare getty_ps. Se non lo avete procuratevi l'ultima versione da metalab.unc.edu:/pub/Linux/system/serial. In particolare, se volete usare alte velocità (57600 and 115200 bps), dovete procurarvi la versione 2.0.7j o superiore. Dovrete anche avere libc 5.x o superiore.

Per default, getty_ps sarà configurato come Linux FSSTND (File System Standard) compatibile, il che significa che si troverà in /sbin, ed i file di configurazione saranno chiamati /etc/conf.{uu}getty.ttySN. Questo non è ben chiaro dalla documentazione! Si aspetta che i file di lock vadano in /var/lock. Assicuratevi di avere una directory /var/lock.

Se non volete la compatibilità FSSTND, i file binari andranno in /etc, quelli di configurazione in /etc/default/{uu}getty.ttySN ed i file di lock in /usr/spool/uucp. Vi raccomando di agire in questo modo se state usando UUCP, visto che UUCP avrà problemi se spostate i file di lock in posti dove non sa di doverli cercare.

getty_ps può anche usare syslogd per registrare messaggi. Vedere le pagine di manuale per syslogd(1) e syslog.conf(5) per impostare syslogd, se già non è in esecuzione. I messaggi sono registrati con priorità LOG_AUTH, gli errori usano LOG_ERR e per il debugging si usa LOG_DEBUG. Se non volete usare syslogd potete modificare tune.h nei file sorgente di getty_ps per usare invece un file di registrazione di messaggi, diciamo /var/adm/getty.log per default.

Decidete se volete la compatibilità FSSTND e la capacità di syslog. Potrete anche scegliere una combinazione dei due. Modificate Makefile, tune.h e config.h per adeguarli alle vostre decisioni. Poi compilate ed installate in base alle istruzioni incluse nel pacchetto.

Da questo punto in poi, tutti i riferimenti a getty faranno capo a getty_ps. I riferimenti a uugetty si riferiranno a uugetty che viene incluso nel pacchetto getty_ps. Queste istruzioni non funzioneranno per mgetty o agetty.

12.2 Impostare uugetty

Con uugetty potreste chiamare l'esterno con il vostro modem mentre uugetty sta controllando la porta per eventuali login. uugetty esegue degli importanti controlli di file lock. Aggiornate /etc/gettydefs per includere una voce di riferimento al vostro modem. Per un aiuto sul significato delle voci che mettete in /etc/gettydef, vedere la "serial_suite" raccolta da Vern Hoxie. Come recuperarla è spiegato nella sezione A proposito di getty_em. Quando avete finito di modificare /etc/gettydefs, potrete verificare l'esattezza della sintassi facendo:

linux# getty -c /etc/gettydefs

I modem moderni

Se avete dei modem con velocità di 9600 bps e superiori con compressione dati potete bloccare la vostra porta seriale con una sola velocità. Ad esempio:

# 115200 fixed speed
F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B
login: #F115200

Se avete impostato il modem per un controllo di flusso hardware RTS/CTS dovete aggiungere a CRTSCTS alle voci:

# 115200 fixed speed with hardware flow control
F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS
#@S @L @B login: #F115200

Vecchi e lenti modem

Se avete un modem lento (sotto i 9600 bps), allora invece di una sola riga per una singola velocità, avrete bisogno di parecchie righe per tentare velocità diverse. Notate che queste righe sono legate tra loro dalla ultima "parola" della riga come ad esempio #38400. Le righe vuote sono richieste dopo ogni voce


# Voci 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

Messaggio di login

Se volete, potete far stampare a uugetty delle cosette interessanti nel messaggio di login. Negli esempi di Greg, egli ha il nome del sistema, la linea seriale, la velocità in bps corrente. Potete aggiungere altre cose:

       @B    La velocità in bps corrente (determinato quando viene visto @B)
       @D    La data corrente nel formato MM/GG/AA.
       @L    La linea seriale alla quale uugetty è attaccato
       @S    Il nome del sistema
       @T    L'ora corrente nel formato HH:MM:SS (24 ore).
       @U    Il numero degli utenti attualmente collegati. Si tratta del 
             conteggio del numero di voci nel file /etc/utmp file che
             hanno un campo ut_name non vuoto
       @V    Il valore di VERSION, così come risulta nei file di default      
       Per visualizzare un singolo carattere '@' usate '\@' o '@@'.

12.3 Personalizzare uugetty

Ci sono molti parametri da affinare per ogni porta che avete. Essi sono implementati in file di configurazione separati per ogni porta. Il file /etc/conf.uugetty verrà usato da tutte per tutti i riferimenti a uugetty e /etc/conf.uugetty.ttySN sarà usato solo da quella porta. Esempi di file di configurazione possono essere trovati con i file sorgente di getty_ps, che sono inclusi in diverse distribuzioni di Linux. Per motivi di spazio non sono elencati qui. Notate che se state usando vecchie versioni di uugetty (inferiori a 2.0.7e) o non state usando FSSTND, allora il file di default sarà /etc/default/uugetty.ttySN. Il /etc/conf.uugetty.ttyS3 di Greg si presenta come segue:

# configurazione di esempio di uugetty per un modem Hayes compatibile
# per consentire chiamate modem dall'esterno
# 
# riga da inizializzare
INITLINE=ttyS3
# timeout per disconnettere se inattivo ...
TIMEOUT=60
# stringa di inizializzazione del modem ...
# formato: <expect> <send> ... (chat sequence)
INIT="" AT\r OK\r\n
WAITFOR=RING
CONNECT="" ATA\r CONNECT\s\A
# questa riga imposta il tempo da far trascorrere prima di inviare il
# messaggio di login 
DELAY=1
#DEBUG=010

Aggiungete la seguente riga al vostro /etc/inittab, così che uugetty sia eseguito sulla vostra porta seriale (sostituendo le informazioni corrette per il vostro ambiente - run-level (2345 o 345 ecc.) posizione del file di configurazione, porta, velocità e tipo di terminale predefinito)

S3:2345:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100
Rilanciate init:
linux# init q 
Per i parametri di velocità in /etc/inittab, usate la più alta velocità in bps che il vostro modem può supportare.

Ora Linux controllerà la vostra porta seriale per individuare delle connessioni. Componete il numero da un'altra macchina ed entrate nel vostro sistema Linux.

uugetty ha molte altre opzioni, controllate la pagina di manuale per uugetty (spesso chiamato semplicemente getty) per una completa descrizione. Tra le altre, c'è la capacità di scheduling ed anche di ringback automatica.


Avanti Indietro Indice