[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Il programma di gestione del terminale è quello che consente di collegarsi con il sistema operativo e di poter interagire con questo. Quello utilizzato originariamente per questo scopo è getty (del pacchetto Getty_ps), ma quasi tutte le distribuzioni GNU/Linux preferiscono utilizzare programmi alternativi, come agetty, mingetty e mgetty.
In questo capitolo viene descritto l'uso generale di alcuni di questi programmi, fino alla connessione di un terminale attraverso la porta seriale, senza però affrontare il problema della connessione remota attraverso una linea commutata.
La tabella 85.1 elenca i programmi e i file a cui si accenna in questo capitolo.
Tabella 85.1. Riepilogo dei programmi e dei file per l'attivazione dei terminali a caratteri. |
Nella procedura di inizializzazione del sistema, Getty è quel programma che si occupa di attivare il terminale e iniziare la procedura di accesso. Come dice la pagina di manuale getty(1): «Getty è il secondo dei tre programmi (init(1), getty(1) e login(1)) utilizzati dal sistema per permettere all'utente di accedere». In pratica, il programma Getty si occupa di:
aprire la linea di terminale e impostare le modalità necessarie;
ricevere il nominativo usato dall'utente per identificarsi;
attivare il programma per la procedura di accesso (convenzionalmente si tratta di /bin/login
), fornendogli già il nominativo-utente (successivamente è compito di login la richiesta di inserire la parola d'ordine).
Il programma Getty tipico fa uso di alcuni file:
/etc/gettydefs
per la definizione delle caratteristiche delle linee dei terminali;
/etc/issue
per definire un testo di «benvenuto» da inviare all'utente che tenta di connettersi.
Un programma Getty non è fatto per l'utilizzo manuale diretto, ma per essere inserito nel file /etc/inittab
, in modo da essere attivato direttamente da Init durante la fase di inizializzazione del sistema. In un sistema GNU/Linux, l'attivazione delle sei console virtuali consuete avviene con record simili a quelli seguenti:
|
Come si vede dall'esempio, viene usato un argomento per specificare il terminale da utilizzare, ovvero il nome del file di dispositivo corrispondente contenuto nella directory /dev/
. Questo elemento, viene definito normalmente come «linea», alludendo al tipo di terminale in base al tipo di connessione utilizzata.
Quando il programma Getty viene utilizzato per attivare una connessione attraverso un terminale seriale, si pone il problema di configurare opportunamente la porta seriale stessa. In tal caso si utilizzano altri argomenti, oppure la configurazione del file /etc/gettydefs
.
Se oltre alla linea seriale si utilizzano dei modem, si aggiunge anche il problema della loro inizializzazione. Il programma Getty può solo occuparsi di quello connesso dalla sua parte, ma anche in tal caso si pone il problema di definire la stringa di inizializzazione adatta.
Quando si vuole ottenere una connessione attraverso modem, utilizzando una linea telefonica commutata, Getty deve essere in grado di controllare il modem anche in questo modo, rispondendo e distinguendo eventualmente se la chiamata proviene da un altro modem o se si tratta di un segnale sonoro normale.
Getty_ps (1) è un pacchetto composto da due parti: getty per la connessione attraverso la console e i terminali seriali e uugetty per la connessione attraverso modem.
I due programmi Getty di Getty_ps utilizzano sia il file di configurazione /etc/gettydefs
, sia il file di introduzione /etc/issue
. Eventualmente, vengono utilizzati anche altri file, la cui posizione cambia a seconda del modo con cui vengono compilati i sorgenti.
I due programmi eseguibili, getty e uugetty, possono essere compilati in modo da utilizzare il registro del sistema per annotare gli eventi importanti, oppure in modo da utilizzare un file apposito, generalmente /var/log/getty.log
. Ciò serve a chiarire che dipende dalle scelte fatte da chi organizza la distribuzione GNU/Linux l'esistenza o meno di tale file e la sua collocazione.
Oltre alla configurazione standard dei programmi Getty, definita attraverso il file /etc/gettydefs
, si possono utilizzare diversi file di configurazione, uno per ogni linea (o terminale), definiti da nomi nella forma seguente, dove questi si riferiscono rispettivamente a getty e a uugetty.
/etc/conf.getty.linea |
/etc/conf.uugetty.linea |
Oppure, in alternativa:
/etc/default/getty.linea |
/etc/default/uugetty.linea |
La «linea» è in pratica il nome del dispositivo che fa riferimento al terminale corrispondente, senza il prefisso della directory (per esempio: tty1, tty2,... ttyS0, ecc.).
La distinzione della collocazione e dei nomi utilizzati, dipende sempre dalle scelte fatte in fase di compilazione dei sorgenti.
Se il file previsto per una linea particolare non risulta presente, getty, oppure uugetty, utilizzano un file di configurazione generale, rispettivamente:
/etc/conf.getty |
/etc/conf.uugetty |
Oppure:
/etc/default/getty |
/etc/default/uugetty |
Le direttive dei file di configurazione di «linea» sono espresse semplicemente da assegnamenti, nella solita forma:
nome=valore |
Di seguito sono elencate solo alcune direttive che possono essere utilizzate in questi file.
Tabella 85.3. Alcune direttive.
|
La sintassi indicata qui, a proposito del programma getty, rappresenta una semplificazione di quella effettiva. Il primo dei due casi mostra la situazione più comune, in cui getty viene avviato in modo da controllare una linea di terminale; il secondo caso rappresenta la sintassi utilizzabile per verificare la validità formale del file /etc/gettydefs
:
getty [opzioni] linea [velocità [tipo] ] |
getty -c file_gettydefs |
Il programma getty è strettamente dipendente dal file di configurazione /etc/gettydefs
, dove l'argomento indicato come «velocità» fa riferimento a uno dei suoi record. Quindi, con questo termine, non si fa tanto riferimento a un numero che esprime la velocità della linea, ma alla sigla corrispondente utilizzata nel file di configurazione, dal quale si ottengono anche altre informazioni.
L'argomento indicato come «tipo» si riferisce al nome del terminale, secondo quanto definito da Termcap e Terminfo. Questa informazione è utile a getty per conoscere la stringa necessaria a ripulire lo schermo e per impostare la variabile di ambiente TERM.
Tabella 85.4. Alcune opzioni. |
Negli esempi seguenti si fa riferimento prevalentemente a record del file /etc/inittab
, dove getty viene usato senza la presenza di un file di configurazione di linea corrispondente (tutto si vede dalla riga di comando). A questo fa eccezione l'ultimo esempio, che richiama espressamente il file di configurazione di linea.
Segue la descrizione di alcuni esempi.
|
Avvia getty per controllare la linea di terminale /dev/tty1
, cioè la prima console virtuale. La voce del file /etc/gettydefs
non viene definita, utilizzando in modo predefinito il primo record, che dovrebbe corrispondere alla voce VC. Anche il terminale non viene definito e probabilmente si utilizza il nome unknown.
|
Come nell'esempio precedente, con la differenza che viene indicata esplicitamente la voce del file /etc/gettydefs
e il nome del terminale (linux).
|
Avvia getty per controllare la seconda linea seriale, /dev/ttyS1
, a cui così si può connettere un terminale seriale normale (senza modem). All'interno del file /etc/gettydefs
viene selezionata la voce DT19200, che indica una velocità di 19 200 bit/s per un Dumb terminal (la sigla «DT» sta appunto per questo). Il tipo di terminale utilizzato è stato vt100 corrispondente al più semplice e comune.
|
Come nell'esempio precedente, definendo esplicitamente un file di configurazione di linea: /etc/default/getty.ttyS1
.
Il programma uugetty si comporta in modo analogo a getty (con la stessa sintassi e le stesse opzioni), con la differenza fondamentale che utilizza lo stesso sistema per la condivisione e il blocco delle porte seriali, usato dai programmi UUCP. Ciò costituisce uno standard importante, usato anche da altri programmi, consentendo di determinare se una linea (il dispositivo corrispondente) è libera prima di impegnarla. (2)
uugetty [opzioni] linea [velocità [tipo] ] |
In pratica uugetty viene usato tutte le volte che entra in gioco il modem.
Si è accennato al fatto che, in generale, i programmi Getty utilizzano un paio di file comuni per la configurazione delle linee e per definire il messaggio introduttivo di invito della procedura di accesso.
Inoltre, generalmente è a carico di questi programmi l'aggiornamento del file /var/run/utmp
, che viene descritto nella sezione 95.1.5.
Il file /etc/issue
viene usato per emettere un messaggio introduttivo prima dell'avvio della procedura di accesso da parte dei programmi Getty. Può utilizzare alcuni codici di escape per ottenere effetti particolari. Questi codici dipendono dall'interpretazione del programma Getty che li utilizza. In particolare, l'elenco della tabella 85.9 è adatto sia a AGetty, sia a MinGetty, quello della tabella 85.10 è adatto solo ai programmi di Getty_ps, mentre quello della tabella 85.11 è adatto solo a Mgetty+Sendfax.
Tabella 85.9. Elenco dei codici che agetty e mingetty riconoscono nel file
|
Tabella 85.10. Elenco dei codici che Getty_ps riconosce all'interno del file
|
Tabella 85.11. Elenco dei codici di escape e dei parametri utilizzabili all'interno del file
|
Dal momento che esistono differenze così grandi tra i vari programmi Getty per i codici di escape utilizzabili nel file /etc/issue
, l'unico modo per predisporne una versione standard unificata, è quello di fare a meno di questi. Alcune distribuzioni GNU/Linux, a questo proposito, predispongono il file /etc/issue
attraverso la procedura di inizializzazione del sistema.
Il file /etc/gettydefs
contiene informazioni utilizzate dai programmi Getty per definire la velocità e altre impostazioni per una linea particolare. Le voci contenute in questo file servono anche per definire l'aspetto dell'invito della procedura di accesso (il prompt del login), in aggiunta al messaggio di pubblicazione (/etc/issue
, o ciò che ne fa la funzione), e la voce da utilizzare come successiva, nel caso di ricezione di un carattere break.
La definizione dell'impostazione della linea avviene in due fasi: inizialmente, prima di fare apparire l'invito della procedura di accesso, quindi subito prima di avviare /bin/login
. Questa configurazione è la parte più difficile, ma spesso è sufficiente utilizzare il file /etc/gettydefs
già esistente, al massimo ritoccando qualcosa che non riguarda questa fase di definizione della linea. In ogni caso, la descrizione completa dei valori che possono essere utilizzati è ottenibile dalla pagina di manuale termios(3).
Il file /etc/gettydefs
ha una struttura particolare: è composto da voci rappresentate da righe necessariamente seguite da una riga vuota (soltanto una); inoltre le righe che iniziano con il carattere # sono ignorate e trattate come commenti. È importante chiarire che le righe vuote non sono trattate come commenti: dopo una riga contenente una voce, si deve trovare esattamente una riga vuota; se dovessero essercene di più, la lettura del file verrebbe interrotta, ignorando di fatto le voci successive.
Le righe che descrivono una voce particolare sono suddivise in campi, secondo la sintassi seguente:
etichetta# opzioni_iniziali # opzioni_finali # invito #etichetta_successiva |
Come si può osservare, i vari campi sono riconoscibili per la presenza del simbolo # come elemento di separazione. I campi vengono usati nel modo seguente:
etichetta
Si tratta di un nome che identifica la voce, che viene usato nella riga di comando del programma Getty per farvi riferimento. Tradizionalmente, il nome usato contiene un qualche riferimento alla velocità da utilizzare per la comunicazione. Questo nome è seguito immediatamente dal simbolo # in modo da non includere spazi superflui nel nome stesso.
opzioni_iniziali
Si tratta di una stringa contenente una serie di opzioni rappresentate da nomi particolari, spaziati liberamente. Ciò serve a definire l'impostazione della linea prima che questa venga utilizzata, a meno che il programma Getty abbia ricevuto l'indicazione di un tipo di terminale, solitamente attraverso la riga di comando, dalle cui caratteristiche estrapolare tale informazione.
opzioni_finali
Si tratta di una stringa contenente una serie di opzioni rappresentate da nomi particolari, spaziati liberamente. Ciò serve a definire l'impostazione della linea subito prima che venga avviato il programma /bin/login
.
invito
Definisce la stringa da utilizzare come invito della procedura di accesso. Questa stringa non sostituisce il messaggio di pubblicazione (issue), ma si aggiunge a questo, alla fine. Generalmente si tratta semplicemente della stringa login:.
La stringa in questione preserva gli spazi e può contenere sequenze di controllo che poi devono essere interpretate dal programma Getty particolare. Generalmente, i programmi Getty che fanno uso di questo file di configurazione, ammettono l'uso degli stessi codici che possono essere inseriti nel file /etc/issue
.
etichetta_successiva
L'ultimo campo è un riferimento a una voce alternativa. Generalmente, quando il programma Getty riceve un carattere break, cerca di gestire la linea nel modo definito dalla voce successiva, indicata da questo nome. Per evitare problemi con gli spazi, questo nome inizia immediatamente dopo il simbolo #.
È importante ricordare che l'eseguibile getty standard (quello del pacchetto Getty_ps), permette di verificare la correttezza formale di questo file, attraverso l'opzione -c. |
Come accennato, la configurazione della linea attraverso le opzioni relative è un'operazione piuttosto delicata, tanto che generalmente conviene usare le impostazioni già presenti nel file /etc/gettydefs
. Tuttavia, la conoscenza delle opzioni più comuni può aiutare a leggere tale file.
È importante tenere a mente che, nella maggior parte dei casi, tali opzioni possono essere usate come sono, oppure precedute da un trattino (-). Nel primo caso si intende l'attivazione della funzione a cui l'opzione fa riferimento, nel secondo la sua disattivazione.
Tabella 85.12. Alcune impostazioni di linea.
|
Segue la descrizione di alcuni esempi.
|
Si riferisce alla linea di una console virtuale. Trattandosi di un collegamento che non fa uso né di porta seriale, né di modem, mancano le opzioni HUPCL e CRTSCTS. Si può osservare che il nome del riferimento finale è fatto alla stessa voce, dal momento che non esistono modalità differenti ammissibili.
|
Si tratta della voce adatta a un terminale connesso direttamente attraverso la porta seriale, senza modem. In questo caso, la bassa velocità, B9600, ammette l'uso di un controllo di flusso software e per questo è assente l'opzione CRTSCTS.
Nei terminali connessi in questo modo, non ha senso la possibilità di modificare automaticamente la velocità della linea, pertanto il riferimento finale è fatto alla stessa voce.
|
Questa voce (suddivisa su due righe per motivi tipografici) è analoga a quella dell'esempio precedente, con la differenza fondamentale che la velocità della linea è più elevata. Questo costringe anche all'utilizzo del controllo di flusso hardware.
|
Questa voce si distingue dall'esempio precedente per l'utilizzo di un modem. Per questo è scomparso l'uso dell'opzione CLOCAL e al suo posto è apparsa HUPCL.
|
Rispetto all'esempio precedente, questa voce ha un riferimento finale a un'altra voce che utilizza una velocità inferiore. Ciò permette di adattare la velocità in modo automatico in funzione dell'invio del carattere break.
Mgetty+Sendfax (3) è un programma Getty tra i più sofisticati, adatto esclusivamente per le connessioni attraverso porte seriali, modem incluso. Qui si intende introdurne il suo funzionamento, in particolare per ciò che riguarda i terminali seriali, senza modem.
Il sistema di condivisione e blocco delle porte seriali adottato da Mgetty+Sendfax è compatibile con lo stile UUCP, quindi può convivere anche con uugetty.
Il problema più importante di Mgetty+Sendfax sta nel fatto che alcuni dettagli sulla sua configurazione possono essere definiti solo in fase di compilazione. Per questo motivo, quando si connette un terminale attraverso una porta seriale (senza l'uso di modem), è necessario utilizzare un cavo Null-modem a sette fili (tabella 746.2) in modo da permettere un controllo di flusso hardware. |
Con GNU/Linux i dispositivi seriali utilizzabili con Mgetty+Sendfax sono esclusivamente quelli che corrispondono al modello |
Teoricamente, Mgetty+Sendfax dovrebbe essere in grado di utilizzare la configurazione definita dal file /etc/gettydefs
. In pratica, ciò potrebbe risultare piuttosto difficile, o inopportuno. Generalmente, il file /etc/mgetty+sendfax/mgetty.config
svolge il ruolo di file di configurazione più importante di Mgetty+Sendfax.
L'eseguibile mgetty è ciò che rappresenta in pratica Mgetty+Sendfax. Si tratta di un programma di connessione molto complesso. La sua configurazione avviene fondamentalmente attraverso il file /etc/mgetty+sendfax/mgetty.config
, ma alcune caratteristiche possono essere ridefinite anche attraverso le opzioni della riga di comando.
mgetty [opzioni] linea_tty |
Tabella 85.18. Alcune opzioni.
|
Gli esempi seguenti si riferiscono a record del file /etc/inittab
, in cui la riga di comando di mgetty definisce il suo funzionamento, supponendo che il file di configurazione /etc/mgetty+sendfax/mgetty.config
non sia stato predisposto.
|
Attiva mgetty per una connessione diretta, senza modem, a una velocità di 19 200 bit/s, con la seconda porta seriale (/dev/ttyS1
).
|
Come nell'esempio precedente, con la differenza che viene attivato il controllo diagnostico nel file /var/log/log_mg.ttyS1
.
A meno che Mgetty+Sendfax sia stato compilato con una configurazione particolare, può essere gestito un file di registrazioni per ogni porta seriale utilizzata. Il nome di questi file dovrebbe risultare conforme al modello seguente, dove la parte finale risulta corrispondere al dispositivo della linea seriale utilizzata (ttyS0, ttyS1, ecc.):
/var/log/log_mg.linea |
La registrazione non è automatica e dipende dalla richiesta esplicita attraverso l'opzione -x oppure dalla direttiva debug del file /etc/mgetty+sendfax/mgetty.config
.
Come già accennato, Mgetty+Sendfax potrebbe essere predisposto in fase di compilazione per l'utilizzo del registro del sistema per lo scarico di queste informazioni.
Se è presente il file /etc/nologin.tty...
Mgetty+Sendfax impedisce l'accesso attraverso il terminale corrispondente al dispositivo /dev/ttyx
. Nel caso di GNU/Linux, si tratta dei file di dispositivo seriale /dev/ttyS0
, /dev/ttyS1
, ecc.
Per esempio, se è presente il file /etc/nologin.ttyS1
, non viene consentito l'accesso attraverso un terminale connesso alla seconda porta seriale.
Questo meccanismo permette anche di impedire e di consentire l'accesso in modo dinamico, in dipendenza di altri fattori. Un programma potrebbe verificare periodicamente l'esistenza di condizioni determinate, creando o eliminando il file /etc/nologin.ttyx
corrispondente.
Il file /etc/mgetty+sendfax/mgetty.config
rappresenta la forma di configurazione principale di Mgetty+Sendfax. Le direttive di questo file sono molto semplici; si esprimono indicando una parola chiave seguita da uno spazio bianco e quindi, eventualmente, dal valore che le si vuole abbinare, nella forma seguente:
parola_chiave [valore] |
Le righe vuote e quelle che iniziano con il simbolo #, cioè i commenti, sono ignorate. Il contenuto del file è divisibile in sezioni contenenti ognuna la configurazione riferita a ogni porta seriale utilizzata. In pratica, quando si incontra la direttiva port, tutto quello che segue fino alla prossima direttiva port, riguarda solo quella porta seriale particolare. Inoltre, tutto ciò che precede la prima direttiva port, viene inteso come riferito a tutte le porte seriali nel loro insieme.
L'esempio seguente dovrebbe chiarire il meccanismo.
|
Il valore abbinabile alle varie parole chiave può essere di tipo diverso:
una stringa senza delimitatori;
una sequenza di attesa e invio per il modem, dove le varie stringhe di attesa e invio, a cominciare da quella di attesa iniziale, sono separate tra loro da uno spazio bianco;
un numero intero che può essere interpretato in modo decimale, ottale o esadecimale, a seconda che questo inizi con un numero diverso da zero, con uno zero o con il prefisso 0x;
un valore booleano, esprimibile con le sigle y, yes, t e true, per il valore Vero, n, no, f e false, per il valore Falso.
Una parola chiave può anche non essere seguita da alcun valore; in tal caso si intende che questa non è stata definita, quando possibile, oppure viene inteso come un errore se un assegnamento è obbligatorio, come nel caso dei dati booleani.
Le opzioni della riga di comando di mgetty prendono la precedenza sulla configurazione di questo file.
Le direttive descritte nella tabella seguente sono limitate a quelle che possono essere utili nel caso di connessione diretta senza modem.
Tabella 85.22. Alcune direttive. |
Segue la descrizione di alcuni esempi.
|
Definisce l'inizio di una sezione specifica per la seconda porta seriale (/dev/ttyS1
).
|
Definisce la velocità della porta seriale a 38 400 bit/s.
|
Specifica che si tratta di una connessione diretta senza modem.
|
Fissa un livello diagnostico intermedio.
|
Indica il tipo del terminale come vt100.
L'esempio seguente mostra il file mgetty.config
e il record di /etc/inittab
necessario ad attivare la prima porta seriale per una connessione diretta senza modem.
|
|
Il file /etc/mgetty+sendfax/login.config
permette di distinguere la modalità di accesso a seconda del nominativo-utente utilizzato. La documentazione standard di questo file è contenuta semplicemente nei commenti dell'esempio che viene distribuito assieme a Mgetty+Sendfax. In generale, il file è composto da record corrispondenti a righe contenenti dei campi distinti in base alla presenza di uno o più caratteri di spaziatura orizzontale (spazi e tabulazioni), secondo la sintassi seguente:
nominativo_utente identità_utente voce_utmp programma_login [argomenti_del_programma_login...] |
Inoltre, come consuetudine diffusa, le righe bianche, o vuote, assieme a quelle che iniziano con il simbolo #, sono ignorate. I campi hanno il significato seguente:
nominativo_utente
rappresenta il nome utilizzato per accedere, o un gruppo di nomi se inizia o termina con un asterisco (*), indicando in questo modo, rispettivamente, i nomi che terminano o iniziano con la stringa indicata;
identità_utente
rappresenta il nominativo-utente del sistema (secondo quanto contenuto nel file /etc/passwd
) che si vuole sia utilizzato per avviare il programma della procedura di accesso;
voce_utmp
rappresenta la voce da inserire nel file /var/run/utmp
, in pratica ciò che appare quando si utilizza il comando who;
programma_login
rappresenta il programma da utilizzare per la procedura di accesso e può essere seguito da un numero indefinito di argomenti.
Per iniziare a comprendere il senso di queste informazioni, basti pensare che è mgetty a ricevere il nome inserito dall'utente che vuole accedere e, in base a questo, può selezionare un comportamento differente. Precisamente:
inserisce una voce nel file /var/run/utmp
, utilizzando per questo il nominativo indicato nel terzo campo (voce_utmp);
cambia l'utente attivo facendo in modo che coincida con quello specificato nel secondo campo (identità_utente);
esegue il programma indicato nel quarto campo, con gli argomenti specificati eventualmente nei campi successivi.
Il secondo e il terzo campo, ovvero identità_utente e voce_utmp, possono contenere un trattino (-) a indicare che per questi dati non viene fissato alcun valore; il terzo campo, voce_utmp, può contenere il simbolo @ che sta a rappresentare lo stesso nome utilizzato per l'identificazione attraverso la procedura di accesso. Nello stesso modo, se appare il simbolo @ tra gli argomenti del programma della procedura di accesso, questo viene sostituito con il nominativo utilizzato effettivamente per accedere.
Segue la descrizione di alcuni esempi.
|
Questa è la direttiva predefinita, con cui, per ogni nominativo usato per accedere viene utilizzato il programma /bin/login
seguito dallo stesso nominativo-utente, rappresentato dal simbolo @. In generale, questo record va posto alla fine del file.
|
Questa direttiva rappresenta una variante dell'esempio precedente, in cui si fa in modo che un utente acceda utilizzando uno pseudonimo. In questo caso si deve accedere utilizzando il nome marameo-maramao per essere riconosciuti come l'utente daniele.
|
Questa direttiva permette di accedere con il nome marameo, senza la richiesta di una parola d'ordine. Chi accede in questo modo ottiene i privilegi dell'utente nobody.
|
In questo modo, chi accede con il nome marameo non può fare nulla, perché invece di /bin/login
viene avviato /bin/false
che blocca di fatto ogni attività.
A fianco dei programmi Getty visti fino a questo punto, ne esistono altri meno complessi e realizzati per esigenze specifiche. In particolare, MinGetty e AGetty non richiedono file di configurazione, a parte /etc/issue
.
MinGetty(4) è un programma Getty minimo, per l'accesso esclusivo attraverso console virtuali di GNU/Linux. Per questo, è indicato particolarmente per risparmiare memoria nei sistemi minimi e non richiede file di configurazione, a parte il messaggio di pubblicazione nel file /etc/issue
. È composto da un solo file eseguibile, che potrebbe avere il nome mingetty, o getty.
mingetty [opzioni] console_virtuale |
getty [opzioni] console_virtuale |
Tabella 85.34. Alcune opzioni. |
L'esempio seguente si riferisce a record del file /etc/inittab
:
|
Questi record attivano le prime sei console virtuali in corrispondenza dei livelli di esecuzione da due a cinque. In particolare, la prima console virtuale viene attivata anche con il livello uno.
AGetty, (5) ovvero Alternative Linux getty, è un programma Getty ridotto, per l'accesso attraverso console virtuali di GNU/Linux e le porte seriali. Non richiede file di configurazione, a parte il messaggio di pubblicazione nel file /etc/issue
, mentre le impostazioni eventuali vanno date attraverso la riga di comando.
agetty [opzioni] velocità[,...] porta [variabile_term] |
getty [opzioni] velocità[,...] porta [variabile_term] |
Tabella 85.36. Argomenti e alcune opzioni valide con il programma agetty. |
Segue la descrizione di alcuni esempi.
|
Attiva la prima console virtuale in un sistema GNU/Linux.
|
Attiva un terminale locale, connesso direttamente attraverso la prima porta seriale. Viene anche indicato un tipo di terminale pari alla sigla vt100.
|
Attiva un terminale remoto, collegato attraverso un modem alla prima porta seriale, utilizzando diverse velocità alternative.
Un terminale seriale può essere predisposto semplicemente utilizzando un elaboratore con un sistema operativo qualunque, purché provvisto di software necessario a emulare un terminale seriale. Per fare un esempio con lo stesso GNU/Linux, si può utilizzare il programma Minicom.
Il parametro più importante che può essere modificato è la velocità espressa in bit al secondo, che deve essere stabilita precisamente e in modo identico tra Getty e il programma di emulazione di terminale all'altro capo del filo.
Il controllo di flusso dovrebbe essere sempre di tipo hardware, cioè RTS/CTS. Eccezionalmente si può usare un controllo di flusso software, cioè XON/XOFF, per esempio quando si è costretti a utilizzare un cavo seriale a tre fili; ciò purché Getty sia in grado di operare in questo modo e che la velocità di comunicazione sia sufficientemente bassa da permetterlo (da 9 600 bit/s in giù).(6)
Come ultimo problema, occorre verificare per quali tipi di terminali standard può essere configurato il programma di emulazione. Generalmente, tutti i programmi di questo tipo dovrebbero essere in grado di operare come terminali vt100; se però il programma a disposizione offre di meglio, è sempre il caso di sfruttare tali caratteristiche.
Per fare un esempio semplice e comune, si immagini di volere predisporre un terminale seriale utilizzando Getty_ps da una parte e Minicom dall'altra, collegando i due elaboratori con un cavo seriale adatto per il controllo di flusso hardware (sette fili). Nell'elaboratore in cui è in funzione Getty si utilizza la prima porta seriale, mentre in quello che funge da terminale si vuole utilizzare la seconda porta seriale. La velocità di trasmissione sia di 38 400 bit/s. Infine, per evitare problemi di compatibilità, si decide di utilizzare l'emulazione per il tipo di terminale vt100.
La prima cosa da fare è predisporre il file /etc/gettydefs
nell'elaboratore da usare per ricevere il collegamento attraverso il programma Getty. Normalmente dovrebbe essere già presente la direttiva seguente (qui appare divisa su due righe per motivi tipografici).
|
Quindi occorre modificare il file /etc/inittab
in modo da avviare il programma getty di Getty_ps utilizzando questa voce del file di configurazione per la prima porta seriale, specificando l'utilizzo di un terminale vt100.
|
Dall'altro capo, nell'elaboratore che funge da terminale, occorre configurare Minicom (l'eseguibile corrispondente è minicom) almeno per ciò che riguarda la connessione seriale (in particolare, è stato stabilito l'uso della seconda porta seriale). Per quanto riguarda la configurazione e l'uso di Minicom si veda in particolare il capitolo 194. Alla fine, la maschera della configurazione della porta seriale dovrebbe apparire nel modo seguente:
|
Si osservi la scelta della seconda porta seriale, /dev/ttyS1
; si osservi la velocità, la dimensione dei caratteri (data bit), la parità e la durata dello stop (8N1); infine si osservi l'attivazione del controllo di flusso hardware.
Minicom opera normalmente emulando il terminale vt102, compatibile con il tipo vt100.
L'uso di un terminale rispetto a una console comporta delle conseguenze operative non trascurabili, legate al comportamento della tastiera e alla visualizzazione dei caratteri sul video.
Questo problema è già presentato nel capitolo 81, nelle sezioni dedicate ai sistemi Termcap e Terminfo.
In pratica, la visualizzazione di certi simboli può variare, specialmente le bordature vengono sostituite con caratteri normali; inoltre, alcuni tasti funzionali e alcune combinazioni di tasti diventano inutilizzabili.
Davi S. Lauer, Greg Hankins, Serial HOWTO
<http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html>
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) Getty_ps software non libero: non è consentita la commercializzazione a scopo di lucro e in generale non è consentito alcun profitto economico derivante dall'uso o dalla riproduzione dello stesso
2) Per comprendere il problema, basta immaginare ciò che accade quando si utilizza lo stesso modem, sia per una connessione attraverso terminale remoto (da linea commutata), sia come fax: prima di trasmettere un fax occorre almeno verificare che il modem sia libero (in pratica si deve controllare la porta seriale corrispondente).
3) Mgetty+Sendfax software libero con licenza speciale che scade: dopo due anni dalla data di un'edizione particolare, si ricade nella licenza GNU GPL
5) AGetty non specifica alcuna condizione, tuttavia viene indicato come «distribuibile liberamente» e di norma viene distribuito con la licenza GNU-GPL
6) È il caso di ricordare che mgetty è quasi sempre predisposto per operare esclusivamente con un controllo di flusso hardware.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome getty.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]