I terminali forniscono un sistema di accesso conveniente ed a basso costo al tuo sistema FreeBSD quando non sei davanti alla console del computer o connesso ad una rete. Questa sezione descrive l'uso dei terminali con FreeBSD.
I sistemi UNIX® originali non avevano console. Invece, la gente effettuava il login ed avviava programmi attraverso terminali connessi alle porte seriali del computer. Ciò era abbastanza simile all'uso di modem e programmi terminale per collegarsi telefonicamente ad un sistema remoto e lavorare da riga di comando.
I PC di oggi hanno console capaci di grafica di alta qualità, ma l'abilità di stabilire una sessione di login su una porta seriale esiste ancora in quasi ogni sistema operativo in stile UNIX di oggi; FreeBSD non fa eccezione. Usando un terminale attaccato ad una porta seriale inutilizzata, puoi effettuare il login ed eseguire qualsiasi programma testuale che potresti lanciare normalmente dalla console o da una finestra xterm in X Window.
Un utente aziendale può connettere molti terminali ad un sistema FreeBSD e porli sulle scrivanie dei propri impiegati. Un utente casalingo può usare qualcosa come un vecchio PC IBM o un Macintosh® come terminale connesso a un computer più potente che faccia girare FreeBSD. Puoi anche trasformare quello che sarebbe un computer singolo utente in un potente sistema per utenti multipli.
Per FreeBSD, esistono tre tipi di terminali:
Le sottosezioni rimanenti descrivono ognuno di questi tipi.
Questi terminali sono oggetti hardware specializzati che permettono di connettere dei computer tramite linee seriali. Essi vengono detti “stupidi” poiché hanno solo la potenza di calcolo necessaria per mostrare, inviare, e ricevere testo. Non potete eseguire nessun programma su di essi. È il computer al quale vi collegate che ha la potenza per eseguire editor di testo, compilatori, email, giochi, e così via.
Ci sono centinaia di tipi di terminali di questo tipo, venduti da molti produttori, incluso il VT-100 della Digital Equipment Corporation e il WY-75 della Wyse. Quasi tutti funzioneranno con FreeBSD. Alcuni terminali di alto livello possono anche mostrare della grafica, ma solo alcuni pacchetti software possono avvalersi di queste caratteristiche.
I terminali stupidi sono popolari negli ambienti di lavoro nei quali i lavoratori non hanno bisogno di accedere ad applicazioni grafiche come quelle fornite dal sistema X Window.
Se un terminale stupido ha appena le capacità per mostrare, inviare, e ricevere testo, allora di certo un qualunque personal computer può funzionare come un terminale stupido. Tutto ciò di cui hai bisogno è il cavo appropriato ed un qualche programma per l'emulazione di terminale sul tuo computer.
Una simile configurazione è comune in molte case. Ad esempio, se il tuo coniuge sta lavorando alla console del sistema FreeBSD, tu puoi fare del lavoro testuale allo stesso momento da un PC meno potente connesso come terminale al sistema FreeBSD.
I terminali X sono i terminali più sofisticati tra quelli disponibili. Invece di collegarsi alla porta seriale, in genere ci si collega ad essi tramite un rete come Ethernet. Invece di essere relegati alle applicazioni testuali, essi possono mostrare applicazioni X.
Introduciamo i terminali X solo per una questione di completezza. Ad ogni modo, questo capitolo non affronta in modo completo l'installazione, la configurazione, o l'uso dei terminali X.
Questa sezione descrive quello che hai bisogno di configurare sul tuo sistema FreeBSD per abilitare una sessione di login via terminale. Si assume che tu abbia già configurato il kernel con il supporto per la porta seriale alla quale è connesso il terminale — e che questo sia già connesso.
Dovresti ricordare dal Capitolo 12 che il processo init è responsabile del controllo di tutti i processi e dell'inizializzazione del sistema all'avvio. Uno dei compiti svolti da init è la lettura del file /etc/ttys e l'avvio di un processo getty sui terminali disponibili. Il processo getty è responsabile della lettura di un nome di login e dell'avvio del programma login.
Dunque, per configurare i terminali per il tuo sistema FreeBSD devono essere effettuati come root i seguenti passi:
Aggiungi una linea a /etc/ttys relativa al file in /dev per la porta seriale, se non è già presente.
Specifica che /usr/libexec/getty deve essere eseguito sulla porta, e specifica il tipo appropriato di getty dal file /etc/gettytab.
Specifica il tipo di terminale predefinito.
Imposta la porta su “on”.
Specifica se la porta deve essere “sicura”.
Forza init alla rilettura del file /etc/ttys.
Come passo opzionale, potresti desiderare di creare un tipo di getty personale da usare nel secondo passo aggiungendo una linea in /etc/gettytab. Questo capitolo non spiega come fare ciò; sei incoraggiato a leggere le pagine man di gettytab(5) e getty(8) per maggiori informazioni.
Il file /etc/ttys elenca tutte le porte del tuo sistema FreeBSD dalle quali vuoi permettere un login. Ad esempio, la prima console virtuale ttyv0 è elencata in questo file. Si può accedere al sistema dalla console grazie a questa voce. Questo file contiene anche delle voci per altre console virtuali, porte seriali, e pseudo-tty. Per un terminale connesso fisicamente, basta copiare l'elenco delle porte seriali in /dev senza la parte /dev (ad esempio, /dev/ttyv0 verrà scritta come ttyv0).
Un'installazione predefinita di FreeBSD include un file /etc/ttys con supporto per le prime quattro porte seriali: da ttyd0 a ttyd3. Se vuoi collegare un terminale a una di queste porte, non hai bisogno di aggiungere un'altra voce.
Esempio 24-1. Aggiunta di Voci per Altri Terminali a /etc/ttys
Supponiamo che si vogliano collegare due terminali ad un sistema: un Wyse-50 ed un vecchio PC IBM 286 con Procomm come programma di emulazione di terminale VT-100. Colleghiamo il Wyse alla seconda porta seriale ed il 286 alla sesta (una porta su scheda seriale multiporta). Le voci corrispondenti nel file /etc/ttys apparirebbero così:
ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Il programma getty accetta un parametro (opzionale) da riga di comando, il tipo di getty. Un tipo di getty configura le caratteristiche della linea del terminale, come la frequenza di bit per secondo e la parità. Il programma getty legge questa caratteristiche dal file /etc/gettytab.
Il file /etc/gettytab contiene molte voci per le linee di terminale sia vecchie che nuove. In quasi tutti i casi, le voci che cominciano per std funzioneranno con i terminali connessi fisicamente. Queste voci ignorano la parità. C'è una voce std per ogni frequenza di bps da 110 a 115200. Naturalmente, puoi aggiungere le tue voci a questo file. La pagina man di gettytab(5) fornisce maggiori informazioni.
Nell'impostare il tipo di getty nel file /etc/ttys, assicurati che le impostazioni di comunicazione sul terminale corrispondano.
Nel nostro esempio, il Wyse-50 non usa parità e si connette a 38400 bps. Il PC 286 non usa parità e si connette a 19200 bps.
Per il nostro esempio, il Wyse-50 usa il tipo per il vero terminale mentre il PC 286 con Procomm in esecuzione verrà impostato per emulare un VT-100.
È fortemente consigliato l'uso di “insecure” anche per i terminali che si trovano dietro porte chiuse a chiave. È abbastanza semplice effettuare il login e usare su se si ha bisogno di privilegi da superutente.
Dopo aver effettuato i cambiamenti necessari al file /etc/ttys si deve mandare un segnale SIGHUP (hangup) al processo init affinché sia costretto a rileggere il suo file di configurazione. Ad esempio:
# kill -HUP 1
Nota: init è sempre il primo processo eseguito su un sistema dunque avrà sempre PID 1.
Se tutto è stato impostato correttamente, tutti i cavi sono collegati, ed i terminali sono accesi, allora un processo getty dovrebbe essere in esecuzione su ogni terminale e a questo punto dovresti vedere dei prompt per il login sui tuoi terminali.
Anche con la più meticolosa attenzione ai dettagli, qualcosa potrebbe comunque andare storto nell'impostazione di un terminale. Questa è una lista dei sintomi e di alcuni suggerimenti per risolverli.
Assicurati che il terminale sia connesso e acceso. Se è un personal computer che funziona da terminale, assicurati che il programma di emulazione di terminale sia attivo sulla porta seriale giusta.
Assicurati che il cavo sia ben connesso sia al terminale che al computer FreeBSD. Assicurati che sia il giusto tipo di cavo.
Assicurati che il terminale e FreeBSD siano concordi sul valore di bps e sulle impostazioni di parità. Se hai un terminale con un display video, assicurati che il contrasto e la luminosità siano giusti. Se è un terminale di stampa, assicurati che ci siano carta e inchiostro sufficienti.
Assicurati che il processo getty sia attivo per quel terminale. Ad esempio, per avere una lista dei processi getty con ps, scrivi:
# ps -axww | grep getty
dovresti vedere una voce per il terminale. Ad esempio, la schermata seguente mostra che getty è in esecuzione sulla seconda porta seriale ttyd1 e sta usando la voce std.38400 in /etc/gettytab:
22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1
Se non c'è nessun processo getty in esecuzione, assicurati di aver abilitato la porta in /etc/ttys. Ricordati anche di eseguire kill -HUP 1 dopo aver modificato il file ttys.
Se il processo getty è attivo ma il terminale non mostra ancora un prompt di login, o se mostra un prompt ma non ti permette di digitare nulla, il tuo terminale o il tuo cavo potrebbero non supportare la transazione hardware. Prova a cambiare il valore in /etc/ttys da std.38400 a 3wire.38400 (e ricordati di dare un kill -HUP 1 dopo aver modificato /etc/ttys). La voce 3wire è simile a std, ma ignora l'handshake hardware. Potresti aver bisogno di ridurre i baud o di abilitare un controllo di flusso software usando 3wire per evitare dei buffer overflow.
Assicurati che il terminale e FreeBSD siano concordi sui bps e sulle impostazioni di parità. Verifica i processi getty per assicurarti che sia in funzione il tipo corretto di getty. Se non è così, modifica /etc/ttys ed esegui kill -HUP 1.
Cambia l'impostazione del terminale (o del programma di emulazione) da “half duplex” o “local echo” a “full duplex”.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Per domande su FreeBSD, leggi la documentazione prima di contattare <[email protected]>.
Per domande su questa documentazione, invia una e-mail a <[email protected]>.