Manuale di FreeBSD
Indietro | Capitolo 24 Comunicazioni Seriali | Avanti

# 24.3 Terminali

Contributo di Sean Kelly.

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.

## 24.3.1 Uso e Tipi di Terminali

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:

- terminali “stupidi”

- PC che interpretano terminali

- terminali X

Le sottosezioni rimanenti descrivono ognuno di questi tipi.

### 24.3.1.1 Terminali “Stupidi”

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.

### 24.3.1.2 PC che Emulano Terminali

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.

### 24.3.1.3 Terminali X

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.

## 24.3.2 Configurazione

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:

1. Aggiungi una linea a `/etc/ttys` relativa al file in `/dev` per la porta seriale, se non è già presente.

2. Specifica che `/usr/libexec/getty` deve essere eseguito sulla porta, e specifica il tipo appropriato di `getty` dal file `/etc/gettytab`.

3. Specifica il tipo di terminale predefinito.

4. Imposta la porta su “on”.

5. Specifica se la porta deve essere “sicura”.

6. 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.

### 24.3.2.1 Aggiunta di un Elemento in `/etc/ttys`

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 primo campo in genere specifica il nome del file speciale per il terminale, come si trova in `/dev`.
  Il secondo campo è il comando da eseguire per questa linea, generalmente getty(8). `getty` inizializza ed apre la linea, imposta la velocità, richiede all'utente un nome di login e poi esegue il programma login(1).

  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.

  Il terzo campo è il tipo di terminale generalmente collegato alla linea tty. Per le porte dial-up, viene usato tipicamente `unknown` o `dialup` poiché gli utenti possono collegarsi con praticamente qualunque tipo di terminale o programma. Per i terminali connessi direttamente, il tipo di terminale non cambia, quindi puoi mettere un vero tipo di terminale preso dal file database di termcap(5) in questo campo.

  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.

  Il quarto campo specifica se la porta deve essere abilitata. Scrivere `on` qui farà sì che il processo `init` avvii il programma nel secondo campo, `getty`. Se metti `off` in questo campo, non ci sarà nessun `getty`, e dunque nessun login sulla porta.
  Il campo finale è usato per specificare se la porta è sicura. Segnare una porta come sicura significa confidare nel fatto che non ci sia rischio nel permettere all'account di `root` (o ad un altro con user ID uguale a 0) di effettuare il login da quella porta. Porte insicure non permettono il login a `root`. Su una porta insicura, gli utenti devono effettuare un login con accesso non privilegiato, e poi usare su(1) o un meccanismo simile per ottenere privilegi superiori.

  È 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.

### 24.3.2.2 Come Forzare `init` a Rileggere `/etc/ttys`

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.

## 24.3.3 Risoluzione dei Problemi di Connessione

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.

### 24.3.3.1 Non Appare Nessun Prompt per il Login

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.

### 24.3.3.2 Compaiono Caratteri Strani Invece di un Prompt di Login

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`.

### 24.3.3.3 I Caratteri Appaiono Duplicati; la Password Viene Visualizzata Quando la Scrivo

Cambia l'impostazione del terminale (o del programma di emulazione) da “half duplex” o “local echo” a “full duplex”.

Indietro | Partenza | Avanti
Introduzione | Risali | Servizio di Ricezione Chiamate

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 <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.