img
img

Ri/Utilizzo efficace di vecchi

computer in una rete scolastica

Gian Carlo Stagni
Vittoriano Lambertucci


per contatti: labinfo@keynes.scuole.bo.it


Indice dei contenuti.

:: Introduzione

:: Schema di funzionamento

:: Casi di studio

:: Capitolo 1: sequenza di avvio del servizio

:: Capitolo 2: installare e configurare LTSP sul server

:: Capitolo 3: installazione delle workstation

:: Capitolo 4: Screen Script (sessioni multiple dello schermo delle WS)

:: Capitolo 5: la scelta del kernel

:: Capitolo 6: le voci del file di conf lts.conf

:: Link utili




Introduzione.

Alcune considerazioni preliminari...

Qual'è l'uso comune di un computer in una situazione scolastica?
- Scrivere documenti
- mandare email
- fare ricerche su internet

Qual'è la dotazione minima di un PC acquistabile oggi?
- Processore Pentium 4 3Ghz/AMD athlonXP 2800
- RAM 512 Mb
- HD 80/120/160 Gb
[spreco di risorse inutilizzare,  consumi energetici elevati]


Il progetto LTSP (Linux Teminal Server Project) fornisce un modo semplice per utilizzare in modo più razionale le risorse HW e/o (ri)utilizzare computer bsoleti come terminali, collegandoli ad un server GNU/Linux piuttosto potente e dal prezzo ragionevole.



In una tipica situazione scolastica i computer, basati su processori Intel o compatibili, ognuno con molti Gb di spazio su disco fisso, processori che da soli consumano oltre 100 Watt, si ha un inaccettabile spreco di risorse. Ha veramente un senso avere un computer completo su ciascuna scrivania? Non sempre. Utilizzando LTSP, si possono usare anche PC piuttosto datati o comunque di scarse prestazioni. Basta, rimuovere, il disco rigido, il floppy ed il CDRom, e, qualora non sia presente, aggiungere una scheda ethernet con supporto per il boot da rete.


Fattori decisivi per la scelta:

A) - Risparmio sull' hardware: sia riciclando vecchie macchine, sia acquistando ex novo computer diskless.

B) - Risparmio sul softtware: tutti i programmi in ambiente GNU/Linux non hanno costi di licenza.

C) - Risparmio energetico: non ci sono HD, Lettori CD, processori che consumano energia (tranne sul server)

D) - Ampia possibilità di personalizzazione dell'ambiente grafico (i vari Gnome, KDE, WindowMaker, Fluxbox ecc)

E) - Disponibilità di tutto il software anche didattico in ambiente GNU/Linux.

F) - L'installazione dei pacchetti avviene una volta per tutte solo sul server.

G) - Si forza l'utilizzo di GNU/Linux con computer che altrimernti resterebbero inutilizzati rompendo la diffidenza iniziale degli utenti.


Schema di funzionamento.

- Durante la fase di accensione (la fase di boot), il computer senza dischi ottiene le informazioni necessarie per far funzionare la rete (indirizzo IP) ed il kernel Linux dal server, quindi accede ai dischi (monta il root filesystem) tramite il servizio NFS, e carica l'interfaccia grafica.

- Da questo momento utilizzerà le risorse e le capacità di elaborazione del server (RAM e processore).

La cosa interessante è che si possono avere molte workstation (22 nel nostro caso) servite da un solo server con sistema GNU/Linux.

Il numero dei terminali dipende dalla dimensione e dalle capacità del server e da quali e quante applicazioni verranno usate nello stesso momento.


Casi di studio.

- A questo link potete trovare una serie di
Casi di studio e un elenco di Istituzioni scolastiche che utilizzano di LTSP, con molti dati tecnici.


Capitolo 1:
sequenza di avvio del servizio.

Far partire (fargli fare il boot) un computer da usare come terminale (workstation) che sia senza dischi richiede una sequenza di operazioni che descriveremo di seguito.

La comprensione di cosa accade nei vari passi del procedimento, renderà più facile risolvere eventuali problemi.

Ci sono quattro servizi di base che sono necessari per far partire una workstation (un terminale) con LTSP.

Questi sono:

* DHCP

* TFTP
* NFS
* XDMCP

Ad essi aggiungiamo:
 
* LDAP


Ognuno dei servizi qui sopra elencati può essere fornito dallo stesso server o da più server. Negli esempi descriveremo il caso di una semplice configurazione in cui c'è un solo server che fornisce tutti i servizi.

La struttura della rete del nostro Istituto invece è più complessa:


img
Figura 1. Implementazione di LTSP nella LAN del Keynes



[ Struttura della rete del Keynes ] [ Alcune immagini dei laboratori ] [ Applicazioni didattiche ]


Capitolo 2: installare LTSP sul server.

Occorre premettere che esistono diverse Distribuzioni GNU/Linux che integrano LTSP, alcune di veramente facile installazione, ottime per chi partye da zero, non deve cioè integrare il servizio in una rete già esistente.

- Debian-edu
- Ubuntu
- LTSP-Mosix

La cosa migliore è pensare a LTSP come ad una distribuzione completa di Linux, che si aggiunge ad una distribuzione normalmente utilizzata per installare linux su un computer. La distribuzione host può essere quella che preferite (noi abbiamo scelto Debian GNU/Linux).

[ Alcune indicazioni specifiche per Debian Sarge ]

In realtà non c'è neppure alcuna reale motivo per cui il server debba aver il sistema operativo Linux. L'unico requisito necessario è che il sistema operativo del server sia in grado di fornire i servizi NFS (Network File System). La maggior parte dei sistemi operativi Unix è in grado di fornire questo servizio.

L'implementazione di un server LTSP avviene in tre passi:

  1. Installazione delle utility LTSP (dei programmi di utilità di LTSP)
  2. Installazione dei pacchetti client di LTSP
  3. Configurazione dei servizi necessari a LTSP

2.1.
Installazione delle utility LTSP


LTSP è dotata di un insieme di utility per l'installazione e la gestione dei pacchetti client. (I programmi che sono eseguiti dai thin client) e per configurare i servizi sul server LTSP. Lo strumento per l'amministrazione si chiama ltspadmin e lo strumento per la configurazione si chiama ltspcfg. Entrambi questi strumenti fanno parte del pacchetto ltsp-utilstsp-utils disponibile come pacchetto -deb.
date il solito comando...

># apt-get install ltsp-utils

2.1.1.
Completata l'istallazione del pacchetto ltsp-utils, si ha a disposizione il comando ltspadmin.


Questa utility permette di gestire i pacchetti del client LTSP. L'utility svolge il compito di interrogare il deposito per i download di LTSP e di ottenere l'elenco dei pacchetti attualmente disponibili. Lanciate il comando ltspadmin e vedrete una schermata come quella riportata qui:

img
Figura 2-1. Installazione di LTSP - Schermata principale

Da questa schermata potete scegliere "Install/Update" (Installa/Aggiorna).
Se è la prima volta che si utilizza questa utility verrà mostrata la schermata di configurazione del programma d'installazione, come mostrato nella seguente figura.

img
Figura 2-2. Installazione di LTSP - Schermata di configurazione

Nella schermata di configurazione si possono impostare alcuni parametri che saranno utilizzati dal programma d'installazioe per fare il download dei pacchetti LTSP e per installarli.
Questi parametri sono:

- Where to retrieve packages from (Da dove prelevare i pacchetti) Specifica l'URL del deposito dei pacchetti. Tipicamente sarà http://www.ltsp.org/ltsp-4.1
Tuttavia nel caso in cui si voglia installare i pacchetti da un supporto locale (come un disco fisso o un CD), si può utilizzare una URL che inizi per file: . Ad esempio se i pacchetti sono su un CD-ROM e questo CD_ROM è stato montato sotto la directory /mnt/cdrom, allora il valore per questa opzione sarà: file:///mnt/cdrom. Se invece avete scaricato l'immagine .iso disponibile sul sito, dovrete montarla con l'opzione "-o loop".

- In which directory would you like to place the LTSP client tree (In quale directory volete mettere i file e le sottodirectory del client LTSP). Questa è la direcotry sul server dove volete che saranno messi i file e le sotto directory del client LTSP. Tipicamente sarà: /opt/ltsp. La directory specificata, se non esiste di già, verrà creata automaticamente. A partire da questa directory verranno create una directory principale per ciascuna delle architetture supportate. Attualmente soltanto l'architettura x86 è ufficialmente supportata da LTSP

- HTTP Proxy (Proxy per le connessioni HTTP) se il server è protetto da un firewall e se le connessioni al web devono passare dal proxy, questo parametro permette di configurare il programma d'installazione per poter utilizzare il proxy.  Se non c'è alcun proxy o non è necessario utilizzarlo, questo parametro deve essere impostato a "none".

- FTP Proxy (Proxy per le connessioni FTP) Se i pacchetti sono collocati su un server FTP ed è necessario passare attraverso un proxy FTP, questo parametro permette di specificare le necessarie informazioni. La sintassi è simile al caso del Proxy per la connessione HTTP. Se non c'è alcun proxy o non è necessario utilizzarlo, questo parametro deve essere impostato a "none". Una volta inserito le necessarie informazioni nella schermata di configurazione, il programma d'installazione procederà mostrando la lista dei componenti al momento disponibili,

img
Figura 2-3. Installazione di LTSP - Lista dei componenti

Potete selezionare i componenti uno ad uno. Per selezionare un componente, muovete la barra evidenziata sulla riga del componente voluto e premete il tasto 'I'.
Per selezionare tutti i componenti basta premere il tasto 'A'.
Nella maggior parte dei casi probabilmente è questa la cosa da fare. In questo modo potete supportare la più vasta gamma di hardware come client. Ci sono alcuni tasti che possono essere utilizzati per spostarsi all'interno dello schermo.
Per ottenere una schermata d'aiuto potete premere il tasto 'H'.

img
Figura 2-4. LTSP installer - Finestra d'Aiuto

Se volete vedere la lista dei pacchetti che sono presenti in un certo componente, premete il tasto 'S', e verrà mostrata la lista dei pacchetti.
Verrà indicata la versione attualmente installata e l'ultima versione disponibile.

img
Figura 2-5. LTSP installer - Package list

Una volta terminata la selezione, uscite dalla schermata di selezione dei componenti, premendo il tasto 'S'.
Il programma vi chiederà se volete realmente installare o aggiornare i pacchetti selezionati.
Rispondete premendo il tasto ' Y' per fare iniziare il download e l'installazione dei pacchetti selezionati.


2.3.
Configurazione dei servizi necessari a LTSP

I servizi principali necessari per permettere l'avvio (il boot) delle workstation LTSP sono i quattro qui sotto elencati: * DHCP * TFTP * NFS * XDMCP Il programma ltspcfg permette di configurare tutti e quattro questi servizi. Inoltre permette di configurare molti altri parametri necessari a LTSP. Si può accedere a ltspcfg da ltspadmin, oppure può essere lanciato da riga di comando digitando ltspcfg. Una volta lanciato il programma ltspcofg, verrà fatta una scansione (un'analisi) del server per accertarsi di cosa sia installato sul server e quali programmi siano in esecuzione.
Verrà visualizzata una schermata del tipo:

img
Figura 2-6. ltspcfg - Schermata iniziale

Questa schermata mostra tutto ciò che è stato cercato dal programma.
Per configurare i parametri di configurazione premete il tasto ' C'.
Verrà mostrato il menù di configurazione Dal menù di configurazione dovete controllare sotto ogni voce che tutti i parametri siano correttamente configurati per servire le workstation LTSP.

img
Figura 2-7. ltspcfg - Schermata dei servizi 1 - Runlevel

La variabile Runlevel viene usata dal programma init. Nei sistemi operativi Linux ed Unix il sistema può essere in uno specifico "Runlevel" tra più possibili Runlevel.

1 - Runlevel
2 e 3 in genere sono utilizzati per avere il server in modalità testo. Il Runlevel 5 avvia il sistema in modalità grafica.
La maggior parte dei servizi sono già configurati per rispondere alle le richieste NFS e XDMCP quando il sistema è in Runlevel 5.

2 - Interface selection (selezione dell'interfaccia)
Nel caso di sistemi con più di un'interfaccia (scheda) di rete, bisogna specificare su quale interfaccia sono collegati i client Thin (i terminali). Il programma di configurazione, una volta nota quale sia l'interfaccia da utilizzare, creerà gli altri file di configurazione in modo opportuno. Tra i quali i file dhcpd.conf e /etc/exports.

3 - DHCP configuration (Configurazione del DHCP)
Il sistema DHCP deve essere configurato per poter fornire le necessarie informazioni alle workstation. I parametri necessari sono fixed-address, filename, subnet-mask, broadcast-address e root-path. Utilizzando questo menù il programma sarà in grado di creare il file di configurazione dhcpd.conf e il programma dhcpd verrà attivato all'avvio del server.

4 - TFTP configuration (Configurazione del TFTP)
Il servizio TFTP viene utilizzato dalle workstation (client) per fare il download del kernel linux. Per far sì che il kernel possa essere fornito in questo modo il servizio tftpd deve essere attivato sul server.

5 - Portmapper configuration (Configurazione della mappa delle porte)
Il Portmapper è utilizzato dai servizi RPC, quali ad esempio NFS.

6 - NFS configuration (Configurazione di NFS)
Il servizio NFS permette di far fare il mount di directory locali da parte di computer remoti. Nella configurazione LTSP è necessario che questo servizio sia attivo sul server per permettere alle workstation di fare il mount del proprio root filesystem dal server. Questo menù permette di configurare l'avvio di NFS all'avvio del server. I dettagli sul file di configurazione /etc/exports e sulla sua creazione vengono dati più avanti in questa sezione.

7 - XDMCP configuration (Configurazione del XDMCP)
XDMCP è l'abbreviazione di "X Display Manager Control Protocol" (Protocollo di Controllo e Gestione di Diplay X). Il server X invia una richiesta al programma di gestione (manager) del server per ottenere un finestra grafica di login. I display manager di uso più comune sono XDM, GDM e KDM. Questo menù mostra i display manager disponibili e indica quale è stato selezionato. Per ragioni di sicurezza, il Display Manager è configurato di default (come impostazione predefinita) per rifiutare le connessioni remote delle workstation. Questa è, in genere, la causa del comune problema di vedere soltanto una schermata nera con una cursore a forma di X. Il programma ltspcfg può essere utilizzato, in genere, per configurare il display manager in modo da consentire la connessione da parte di workstation (terminali) remoti.

8 - Create /etc/hosts entries (Creare delle linee di riferimento all'interno del file /etc/hosts)
Molti servizi, tra cui NFS e il Display manager, hanno bisogno di avere una mappa di corrispondenza tra gli indirizzi IP della workstation e il nome del computer (hostname). Si può utilizzare e configurare , a questo scopo, il Berkeley Intenet Naming Daemon (BIND),ma bisogna essere certi che il sistema reverses (per il riconoscimento a ritroso) sia configurato in modo corretto. Probabilmente utilizzare bind è il miglior modo per ottenere lo scopo, tuttavia la spiegazione della configurazione di bind è al di là degli scopi di questa documentazione e del programma ltspcfg. Un metodo più semplice per configurare la mappa di corrispondenza tra gli indirizzi IP e i nomi dei computer (hostname) è quello di utilizzare il file /etc/hosts.

9 - Create /etc/hosts.allow entries (Creare delle linee di riferimenteo nel file /etc/hosts.allow)
Alcuni servizi usano un sistema di sicurezza chiamato tcpwrappers. Questo sistema viene configurato tramite il file /etc/hosts.allow. Questo menù permette di configurare questo file.

10 - Create the /etc/exports file (Creare il file /etc/exports)
Questo è il file utilizzato da NFS, per determinare quali sono le directory che è consentito che vengano montate da una macchina remota. Questo menù permette di creare e configurare questo file.

11 - Create the lts.conf file (Creare il file lts.conf)
La configurazione di ogni singola workstation viene stabilita da delle linee del file lts.conf. Se si utilizzano workstation recenti con il bus PCI, non dovrebbe essere necessario inserire alcuna linea aggiuntiva al file lts.conf file. Tuttavia è necessario che questo file esista. Questo menù creerà un file lts.conf con delle configurazione preimpostate (default). 2.4. Configurazione specifica delle workstation A questo punto è necessario fornire al server LTSP le informazioni specifiche di ogni singola workstation. Ci sono tre file che contengono le informazioni specifiche delle singole workstation.

1. /etc/dhcpd.conf
2. /etc/hosts
3. /opt/ltsp/i386/etc/lts.conf



2.4.1.
/etc/dhcpd.conf

La workstation ha bisogno di un indirizzo IP e di altre informazioni.
Riceverà le seguenti informazioni dal server DHCP:
Nella nostr configurazione abbiamo scelto che l'indirizzo IP sia gestito dal server DHCP, che lo assegna alle workstation in base al MAC address.
Durante l'esecuzione dello script ltsp_initialize, viene installato un file dhcpd.conf di esempio.
Potete copiare il file /etc/dhcpd.conf.example come file /etc/dhcpd.conf ed usarlo come base per la vostra configurazione del dhcp.
Bisogna modificare questo file per adattarlo alle specifico ambiente in cui sono presenti le workstation e il server (questo è il nostro):

#
# Sample configuration file for ISC dhcpd
#
# Make changes to this file and copy it to /etc/dhcp3/dhcpd.conf.sample
#

ddns-update-style none;

default-lease-time 21600;
max-lease-time 21600;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
option domain-name "isicm.bo.it";

option ntp-servers 192.168.0.254;

##option domain-name "ltsp"; # <--Fix this domain name

option root-path "192.168.0.254:/opt/ltsp/i386";

option option-128 code 128 = string;
option option-129 code 129 = text;

subnet 192.168.0.0 netmask 255.255.255.0 {
use-host-decl-names on;
option log-servers 192.168.0.254;


##
## If you want to use static IP address for your workstations, then un-comment
## the following section and modify to suit your network.
## Then, duplicate this section for each workstation that needs a static
## IP address.
##
## host ws001 { <----- Fix this hostname
## hardware ethernet 00:11:22:33:44:55; <-- Fix this MAC addr
## fixed-address 192.168.0.1; <-- Fix this IP addr
## filename "/tftpboot/lts/vmlinuz-2.4.26-ltsp-1";
## }

################ Inizio GC #######################

host ltspc3 {
hardware ethernet 00:d0:b7:17:3b:fa;
fixed-address 192.168.0.100;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp01 {
hardware ethernet 00:d0:b7:17:3a:c1;
fixed-address 192.168.0.101;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp02 {
hardware ethernet 00:d0:b7:17:38:b3;
fixed-address 192.168.0.102;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp03 {
hardware ethernet 00:d0:b7:17:37:99;
fixed-address 192.168.0.103;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp04 {
hardware ethernet 00:d0:b7:17:3c:35;
fixed-address 192.168.0.104;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp05 {
hardware ethernet 00:d0:b7:17:38:b9;
fixed-address 192.168.0.105;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp06 {
hardware ethernet 00:d0:b7:17:38:b6;
fixed-address 192.168.0.106;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp07 {
hardware ethernet 00:d0:b7:17:3b:fb;
fixed-address 192.168.0.107;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp08 {
hardware ethernet 00:d0:b7:17:3b:f9;
fixed-address 192.168.0.108;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
 host ltsp09 {
hardware ethernet 00:d0:b7:17:3c:2a;
fixed-address 192.168.0.109;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}
host ltsp10 {
hardware ethernet 00:d0:b7:17:3c:2b;
fixed-address 192.168.0.110;
# filename "/tftpboot/lts/2.4.26-ltsp-3/pxelinux.0";
filename "/tftpboot/lts/2.6.9-ltsp-3/pxelinux.0";
}

################ Fine GC #######################


##
## If you want to use a dynamic pool of addresses, then un-comment the following
## lines and modify to match your network.
##
## subnet 192.168.0.0 netmask 255.255.255.0 {
## range dynamic-bootp 192.168.0.1 192.168.0.253;
## }
##

}


#

# If you need to pass parameters on the kernel command line, you can
# do it with option-129. In order for Etherboot to look at option-129,
# you MUST have option-128 set to a specific value. The value is a
# special Etherboot signature of 'e4:45:74:68:00:00'.
#
# Add these two lines to the host entry that needs kernel parameters
#
# option option-128 e4:45:74:68:00:00; # NOT a mac address
# option option-129 "NIC=ne IO=0x300";
#scaricabile qui

Sopra il file /etc/dhcpd.conf


A partire dalla vesione 2.09 di LTSP, non c'è più bisogno di specificare quale particolare kernel caricare in memoria.
Il pacchetto standard del kernel supporta tutte le schede di rete supportate da Linux. Nel pacchetto del kernel distribuito da LTSP ci sono due file per il kernel.
Uno che ha applicata la Linux Progress Patch (LPP) e l'altro che non le ha.
I nomi di questi file sono:

vmlinuz-2.4.9-ltsp-5
vmlinuz-2.4.9-ltsp-lpp-5


Probabilmente avete notato che questi file del kernel risiedono nella directory /tftpboot/lts, ma nella punto dove inserire il nome del file ("filename") nel file /etc/dhcpd.conf manca la parte iniziale del nome del path, /tftpboot . Questo è dovuto al fatto che nelle versioni più recenti di TFTP viene eseguito con l'opzione '-s' in modalità sicura: all'avvio viene eseguito un chroot alla directory /tftpboot, pertanto tutti i file accessibili al demone tftpd sono relativi a tale dir. Per le distribuzioni di Linux che non utilizzano l'opzione '-s' per tftpd, dovete aggiungere il prefisso /tftpboot al path del kernel. 2.4.2.


127.0.0.1		localhost.localdomain	localhost
192.168.8.52 tserver.isicm.bo.it tserver

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

## LTSP-begin ##
#
# The lines between 'LTSP-begin' and 'LTSP-end' were added
# on: Tue Sep 6 09:41:20 2005, by the ltspcfg configuration tool.
# For more information, visit the LTSP homepage
# at http://www.LTSP.org
#

192.168.0.100 ltspc3.isicm.bo.it ltspc3
192.168.0.101 ltsp101.isicm.bo.it ltsp101
192.168.0.102 ltsp102.isicm.bo.it ltsp102
192.168.0.103 ltsp103.isicm.bo.it ltsp103
192.168.0.104 ltsp104.isicm.bo.it ltsp104
192.168.0.105 ltsp105.isicm.bo.it ltsp105
192.168.0.106 ltsp106.isicm.bo.it ltsp106
192.168.0.107 ltsp107.isicm.bo.it ltsp107
192.168.0.108 ltsp108.isicm.bo.it ltsp108
192.168.0.109 ltsp109.isicm.bo.it ltsp109
192.168.0.110 ltsp110.isicm.bo.it ltsp110

## LTSP-end ##

Sopra il file /etc/hosts

I computer utilizzano normalmente soltanto l'indirizzo IP per comunicare.
Tuttavia noi umani abbiamo bisogno di dare dei nomi ai computer perché è troppo difficile ricordare tutti i numeri. Da qui entra in gioco la necessità di usare DNS o il file /etc/hosts.
Questa mappa di corrispondenza tra gli indirizzi IP e il nome dei computer (hostname) di solito non è necessaria.
Tuttavia è necessario nel caso di un ambiente LTSP, perché se non ci fosse il sistema NFS darebbe dei permessi erronei quando una workstation tenta di montare il filesystem principale. Oltre ai problemi con NFS, se la workstation non è compresa nel file /etc/hosts, potrebbero esserci problemi con i display manager GDM o KDM. 2.4.3. /opt/ltsp/i386/etc/lts.conf
Nel file lts.conf ci sono parecchie voci che possono configurate.
Il file lts.conf ha una sintassi semplice.
C'è una sezione di default (per i valori predefiniti) chiamata [default] e poi possono esserci delle sezioni per ciascuna singola workstation.
La workstation può essere identificata dal nome del computer (hostname), dall'indirizzo IP oppure dal MAC-address.
Un tipico file lts.conf è mostrato qui sotto:


#
# Copyright (c) 2003 by James A. McQuillan (McQuillan Systems, LLC)
#
# This software is licensed under the Gnu General Public License.
# The full text of which can be found at http://www.LTSP.org/license.txt
#
#
# Config file for the Linux Terminal Server Project (www.ltsp.org)
#

[Default]scaricabile qui
XkbModel=pc105
XkbLayout=it

SERVER = 192.168.0.254
# XSERVER = i740
# XSERVER = fbdev
# XSERVER = XF86_SVGA
XSERVER = auto
# XF86CONFIG_FILE = XF86Config.LAB3


# X_MOUSE_PROTOCOL = "PS/2"
# X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS0"
# X_MOUSE_RESOLUTION = 400
X_MOUSE_RESOLUTION = 50
X_MOUSE_BUTTONS = 3
X_MOUSE_BAUD = 1200

USE_XFS = Y
XFS_SERVER = 192.168.0.254

SCREEN_01 = startx
SCREEN_02 = shell

RCFILE_01 = sincronizza_orario

# Risorse sulla macchina locale (client)
LOCAL_DEVICE_01 = /dev/fd0:floppy
LOCAL_DEVICE_02 = /dev/hdc:cdrom




# Consente questo: "/usr/sbin/ltspinfo --host=ws001 --shutdown" (or --reboot)
# Oppure... "/usr/sbin/ltspinfo --host=ws001 --proc=meminfo"
# (da verificare)
ALLOW_SHUTDOWN = Y
ALLOW_PROCREAD = Y


Sopra il file lts.conf


Potete mettere una linea di configurazione nel file lts.conf per ogni workstation oppure potete metterne una nella sezione default, che verrà condivisa da tutte le workstation.
Le nostre workstation hanno una scheda video con chipset Intel i340 video e vengono correttamente rivelate. Pertanto non abbiamo bisogno di una linea di configurazione XSERVER nel file lts.conf file.
La linea di configurazione  XSERVER può essere specificata, se volete, oppure può essere posta ad 'auto' per indicare che deve essere effettuato l'autodetect.
Se vogliamo utilizzare la workstation n modalità grafica dobbiamo indicare come Runlevel il valore '5'.
Questo viene fatto con l'apposita linea di configurazione del file lts.conf. 2.5. Visualizzazione dela configurazione corrente Con il programma ltspcfg, si può guardare lo stato corrente dei tutti i servizi necessari con LTSP.
Dal menù principale (main menu) di ltspcfg premendo il tasto ' S' viene mostrato lo stato corrente.

img
Figura 2-9. ltspcfg - Current Status

Capitolo 3: la configurazione della workstation.

Una volta configurato il server è arrivato il momento di configurare le workstation.
Il progetto LTSP copre tutto quello che succede dopo che il kernel è caricato in memoria.
Ci sono diversi metodi per caricare il kernel in memoria. Tra questi ci sono:

img
Figura 2-10. NETboot - la voce nel BIOS

- Etherboot
- Netboot
- PXE
- Da disco floppy
- Da una partizione fat32


3.1.
Avviare il computer con PXE

Se la vostra scheda di rete ha il supporto PXE o se lo ha il vostro computer, potete usarlo per caricare il kernel Linux.
PXE è una tecnologia bootrom, simile a Etherboot or Netboot.
Potreste essere in grado di utilizzare il bootrom PXE sulla vostra scheda di rete. Bisogna cambiare il settaggio nel BIOS per far sì che il "Boot from LAN" sia la prima scelta tra i metodi di boot, invece di "floppy" o "hard disk".
Il sistema PXE ha la limitazione di essere in grado di caricare soltanto file che siano non più grandi di 32 kB.
Il kernel di LInux è parecchio più grande.
Pertanto non è possibile caricare direttamente il kernel Linux con PXE.
Bisogna caricare qualcosa come un 'Network Bootstrap Program' o NBP.
Uno degli NBP disponibili per caricare il kernel Linux chiamato pxelinux.0.
Fa parte del pacchetto syslinux per il kernel sviluppato da H. Peter Anvin.
Il pacchetto del kernel fornito con LTSP comprende lo NBP pxelinux.0 e i file di configurazione necessari per caricare il kernel Linux sul disco ram iniziale.
Il funzionamento avviene in questo modo:

  1. Il bootrom PXE inizializza la scheda di rete e manda una richiesta DHCP.
  2. Il server DHCP risponde fornendo un indirizzo IP e il nome del NBP da caricare...
  3. Il bootrom PXE prende lo NBP, lo mette in memoria e lo fa eseguire.
  4. Lo NBP usa tftp per far il download del file di configurazione dal server.
  5. Il file scaricato contiene il nome del kernel, il nome del file del ramdisk e le opzioni da passare al kernel.
  6. Lo NBP, a questo punto, usa tftp per fare il download del kernel Linux e del disco ram (initrd).
  7. ll controllo viene passato al kernel Linux, avviene il boot, prosegue l'avvio della workstation.
/var/log/messages sul terminal server:


Oct 28 07:41:42 tserver dhcpd: DHCPDISCOVER from 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:42 tserver dhcpd: DHCPOFFER on 192.168.0.110 to 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:44 tserver dhcpd: DHCPDISCOVER from 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:44 tserver dhcpd: DHCPOFFER on 192.168.0.110 to 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:48 tserver dhcpd: DHCPDISCOVER from 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:48 tserver dhcpd: DHCPOFFER on 192.168.0.110 to 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:56 tserver dhcpd: DHCPREQUEST for 192.168.0.110 (192.168.0.254) from 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:56 tserver dhcpd: DHCPACK on 192.168.0.110 to 00:d0:b7:17:3c:2b via eth1 Oct 28 07:41:56 tserver in.tftpd30606?: connect from 192.168.0.110 (192.168.0.110) Oct 28 07:41:56 tserver atftpd30606?: Advanced Trivial FTP server started (0.7) Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.0 to 192.168.0.110:2070 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.0 to 192.168.0.110:2071 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/01-00-d0-b7-17-3c-2b to 192.168.0.110:57089 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C0A8006E to 192.168.0.110:57090 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C0A8006 to 192.168.0.110:57091 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C0A800 to 192.168.0.110:57092 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C0A80 to 192.168.0.110:57093 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C0A8 to 192.168.0.110:57094 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C0A to 192.168.0.110:57095 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C0 to 192.168.0.110:57096 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/C to 192.168.0.110:57097 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/pxelinux.cfg/default to 192.168.0.110:57098 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/bzImage-2.6.9-ltsp-3 to 192.168.0.110:57099 Oct 28 07:41:56 tserver atftpd30606?: Serving /tftpboot/lts/2.6.9-ltsp-3/initrd-2.6.9-ltsp-3.gz to 192.168.0.110:57100 Oct 28 07:42:00 tserver dhcpd: DHCPDISCOVER from 00:d0:b7:17:3c:2b via eth1 Oct 28 07:42:00 tserver dhcpd: DHCPOFFER on 192.168.0.110 to 00:d0:b7:17:3c:2b via eth1 Oct 28 07:42:00 tserver dhcpd: DHCPREQUEST for 192.168.0.110 (192.168.0.254) from 00:d0:b7:17:3c:2b via eth1 Oct 28 07:42:00 tserver dhcpd: DHCPACK on 192.168.0.110 to 00:d0:b7:17:3c:2b via eth1 Oct 28 07:42:00 tserver rpc.mountd: authenticated mount request from ltsp110.isicm.bo.it:932 for /opt/ltsp/i386 (/opt/ltsp) Oct 28 07:42:01 ltsp110 syslogd started: BusyBox? v0.60.4 (2005.04.19-03:04+0000) Oct 28 07:42:04 ltsp110 init: Entering runlevel: 5 Oct 28 07:46:56 tserver atftpd30606?: atftpd terminating after 300 seconds
Sopra i messaggi di syslog sul server, all'avvio di un client

3.2.
Avviare il computer con Etherboot

Etherboot è un programma software che permette di creare immagini ROM che possono essere downlodate sulla scheda Ethernet per essere eseguita da un computer x86. Molte schede di rete hanno un'alloggio in cui può essere collocato un chip ROM. Il codice Etherboot può essere collocato in questo chip ROM. -- Ken Yap Etherboot è disponibile come Open Source, con la licenza GNU General Public License, Version 2 (GPL2). Per usare Etherboot, se avete una scheda Ethernet cone il bootrom Etherboot, avete bisogno di cambiare la configurazione del BIOS per dirgli di fare l'avvio dalla LAN ("Boot from LAN") prima di tentare di fare il boot dai dischi floppy o dall'harddisk. Se non avete un bootrom Etherboot potete o fare un bootrom o potete fare un disco floppy con l'immagine di Etherboot nel suo boot sector. Etherboot supporta un numero molto grande di schede di rete. Più di 200 modelli, e di nuovi ne vengono continuamene aggiunti Sia che decidiate di fare un dico floppy sia che mettiate il codice nel chip Eprom, avrete bisogno di conoscere il modello di scheda di rete che avete.

3.2.1.
Scelta del driver Etherboot per la scheda di rete ISA


Per le vecchie schede di rete di tipo ISA non è così tanto importante determinare il tipo di scheda. Per prima cosa la maggior parte di queste schede sono schede ne2000 oppure 3Com 3c509. Vi basta prendere il driver Etherboot giusto, quello che utilizza il giusto sistema di collegamento a seconda della vostra scheda tra il 10 base-2 (Coax, per il cavo coassiale) e il 10 base-T (Twisted pair, per il cavo con i fili intrecciati).

3.2.2.
Scelta del driver Etherboot per la scheda di rete PCI


Con le schede di rete PCI è essenziale che sia scelto il driver Etherboot che combaci con il numeri PCI Vendor e Device ID della scheda di rete. Alcune volte può andarvi bene e conoscete esattamente quale sia il modello della vostra scheda perché c'è scritto sulla scheda e corrisponde esattamente alla descrizione di uno dei moduli di Etherboot. Tuttavia in molti casi dovrete ottenere i numeri di identificazione PCI. se la vostra workstation) ha un disco floppy potete fare il boot con un disco tomsrtbt (Tom's Root Boot). Altrimenti se la vostra workstation ha un lettore di CD-ROM potete fare il boot con un disco Knoppix. Se non siete in grado di caricare il kernel Linux sulla vostra workstation allora la vostra unica speranza è quella di spostare la scheda di rete su un computer che riesca a fare il boot. Una volta che avete avviato Linux, potete usare il comando lspci con l'opzione '-n'

[root@jamlap root]# lspci -n

3.2.3.
Creare un disco floppy di avvio


Potete prelevare il pacchetto Etherboot package e configurarlo per il tipo di bootrom di cui avete bisogno. Quindi compilate il sorgente per produrre un immagine del bootrom che può essere scritta in EPROM oppure su un disco floppy.
Una soluzione più semplice è andare sul sito web www.Rom-O-Matic.net di Marty Connor.
Sul sito, selezionate il tipo di scheda di rete che avete, e che tipo si immagine volete.
Inoltre avete la possibilità di modificare alcune opzioni di configurazine del Etherboot.
A questo punto premete il pulsante 'Get ROM' (ottieni ROM) e una immagine personalizzata del bootrom verrà generata in breve tempo. Per avere il formato per il chip ROM scegliete 'Floppy Bootable ROM Image'. Questa scelta aggiunge un header di 512 byte che fa sì che il boot loader venga caricato in memoria da dove poi viene eseguito. Dopo alcuni secondi che avete premuto il bottone, il vostro browser farà comparire una finestra pop-up "Save As" (o "Salva con nome") in cui sceglierete il nome con cui salvare il file sul vostro computer. Una volta che avete salvata l'immagine sul vostro disco fisso dovete scriverla sul vostro floppy.
Inserite il disco floppy nel vostro lettore di floppy e date il seguente comando per scrivere sul floppy:

dd if=Image of=/dev/fd0

dove al posto di Image dovete mettere il nome del vostro file immagine scaricato.

3.2.4.
Creare un bootrom


Per scrivere l'immagine sulla eprom serve un sistema per la programmazione di EPROM. Questo strumento hardware ha un costo che varia, a seconda dei modelli, da poche centinaia di dollari a parecchie migliaia di dollari (da poche centinaia di euro a parecchie migliaia di euro) Le modalità da seguire per creare il bootrom dipende completamente da sistema di programmazione di EPROM. Questo va al di là dello scopo di questa documentazione.

3.2.5.
Avviare da una partizione dos/fat32

E' anche possibile utilizzare il disco IDE esistente sul computer client per avviare il kernel linux iniziale.
Occore copiare il file loadlin.exe (scaricabile qui), il kernel e il file initrd.img in una directory (ad esempio C:\linux) e avviare tramite apposito "config.sys" (scaricabile qui).
E' possibile mantenere eventualmente la possibilità di avviare anche la precedente installazione di windows, in dual boot.


Capitolo 4: gli script per le sessioni dello schermo (Screen Script).

Una caratteristica che è stata affinata nella versione 4.0 di LTSP è quella denominata Screen Scripts (Script per le sessioni dello schermo). Questi script permettono di far partire sessioni di diverso tipo. Si può specificare più di uno screen script per una workstation. In questo modo si ottengono delle sessioni multiple.
Possono essere sessioni di diverso tipo o sessioni dello stesso tipo. Per esempio è possibile specificare nel seguente modo:

SCREEN_01 = startx
SCREEN_02 = shell


Questa configurazione farà partire un server X (una sessione grafica) sul primo schermo e una sessione a caratteri (con un prompt di una shell) sul secondo schermo. Per passare al primo schermo si premono contemporaneamente i tasti Ctrl-Alt-F1 e per passare al secondo schermo si premono contemporaneamente i tasti Ctrl-Alt-F2.
Si possono specificare fino a 12 screen script per workstation.
Tuttavia nella maggior parte dei casi basta averne uno solo.

I possibili tipi di screen scripts sono:

startx
Questo script lancerà il server X con l'opzione -query.
Con questa opzione verrà fatta una richiesta XDCPM al display manager del server per ottenere una schermata di login sullo schermo.

shell
Questo script lancerà una finestra shell sul terminale. Questo serve principalmente per risolvere eventuali problemi con la workstation. Fornisce una sessione sul sulla workstation e non sul server. Pertanto non è utile per eseguire delle applicazioni.

telnet
Questo script lancia una sessione telnet che si connetterà al server dando una sessione in modalità carattere con il server. Di default telnet si connetterà al server LTSP. Se volete indicare un server differente, potete passare il suo nome sulla stessa linea del nome del screen script.
Per esempio: SCREEN_01 = telnet server2.mydomain.com
Si può anche specificare una qualsiasi altra opzione che telnet sia in grado di comprendere. Però se si specifica una o più opzioni deve anche essere indicato il nome del server a cui connettersi.

rdesktop
Questo script lancerà il programma rdesktop,che si collegherà ad un server Microsoft Window server. Sulla linea è possibile specificare, dopo il nome dello screen script, qualsiasi opzione rdesktop.
Per esempio, se si vuole specificare il server a cui connettersi, si può fare nel seguente modo:
SCREEN_01 = rdesktop -f w2k.mydomain.com
Con la configurazione di questo esempio verrà lanciato rdesktop in modalità tutto schermo.
L'utente vedrà una finestra di login di Windows e avrà bisogno di loggarsi una volta sola.
Questa cosa è molto utile quando avete bisogno soltanto di un finestra di login Windows senza avere la login Linux o il window manager. L'utente non saprà neppure di essere su una macchina Linux.

I file che contengono gli screen script risiedono nella directory /opt/ltsp/i386/etc/screen.d

Potete anche creare il vostro script personalizzato e collocarlo in questa directory. La cosa migliore, in questo caso, è partire da uno script già esistente ed usarlo come esempio.

Capitolo 5: scelta del Kernel.

Ci sono alcune decisioni da prendere a riguardo del kernel che si vuole far girare sulla workstation. Potete decidere di utilizzare un versione standard del kernel, disponibile per il download, oppure di costruirne uno voi stessi. E dovete decidere se volete visualizzare le schermate grafiche, complete con la barra di progressione, cosa possibile grazie al Linux Progress Patch (LPP).

5.1.
Kernel standard forniti con LTSP


Il pacchetto del kernel fornito con LTSP contiene in realtà due kernel. Una con la Linux Progress Patch già applicata e configurata, e l'altra che non ha questa patch applicata. Entrambi i kernel hanno la patch NFS Swap applicata.

5.2.
Costuitevi il vostro kernel

Ci sono due modi di configurare un kernel per LTSP. Il metodo usuale è quello di utilizzare un 'Disco Ram Iniziale' o initrd in breve. L'immagine initrd immagine è un piccolo filesystem che viene aggiunto al kernel. Il filesystem initrd è caricato in memoria e quando il kernel ha finito il boot lo monta come filesystem principale. Ci sono alcuni vantaggi ad utilizzare l'immagine initrd. Come prima cosa permette di compilare i driver per le schede di rete come moduli e di caricare il modulo corretto durante il boot. Questo permette di avere un solo kernel che è in grado di supportare praticamente tutte le schede di rete. Un altro vantaggio è che possiamo eseguire il client DHCP nello spazio dell'utente anziché nello spazio del kernel. Eseguire il client DHCP nello spazio dell'utente fornisce un migliore controllo sulle opzioni richieste e ricevute dal server. Inoltre questo fa diventare il kernel un po' più piccolo. L'altro modo di configurare il kernel è senza initrd. La costruzione di un kernel senza initrd richiede che il driver della specifica scheda di rete sia staticamente unito al kernel e richiede che siano impostati i parametri IP-Autoconfig e "Root filesystem on NFS" quando si compila il kernel. Il vantaggio di non utilizzare initrd è che leggermente più piccolo e farà fare il boot più velocemente. Una volta che la workstation è stata avviata ed è in funzione teoricamente non c'è alcuna differenza a riguardo di come funzioni la workstation. Il kernel standard per LTSP include un disco ram iniziale (initrd) che si prende carico di identificare la scheda di rete e di fare la richiesta DHCP nello spazio dell'utente. Uno degli obiettivi ricercati nel fare questa immagine è stata quella di farla più piccola possibile. Per questo motivo abbiamo scelto di utilizzare la libreria uClinux al posto della libc e busybox per le utility necessarie durante il boot. Se volete costruirvi il vostro kernel dovete procurarvi il pacchetto ltsp_initrd_kit. Contiene la gerarchia del filesystem principale e uno script per costruire l'immagine.

5.2.1.
Ottenere i sorgenti del kernel


Quando si costruisce un kernel personalizzato, è generalmente una buona idea partire con dei sorgenti non modificati, presi direttamente dal sito ftp.kernel.org. Questo perché molte distribuzioni, tra cui ad esempio Red Hat, applicano molte patch ai sorgenti e l'insieme dei sorgenti che forniscono non coincide con quello ufficiale del kernel. Scaricate il pacchetto dei sorgenti del kernel di vostra scelta e salvatelo nella directory /usr/src. I kernel sono collocati nella directory /pub/linux/kernel del server ftp ftp.kernel.org ftp server. Avrete bisogno di una versione recente (la 2.4.x ), perché avete bisogno di includere il supporto devfs. Inoltre se volete applicare le patch per lo swapping su NFS o la Linux Progress Patch (LPP), avrete bisogno di prendere le patch che corrispondono alla versione del kernel che vi siete procurati. Al momento della scrittura di questo documento la versione 2.4.9 del kernel è la più nuova che supporta queste caratteristiche. In questo esempio useremo il kernel 2.4.9 kernel. Il percorso completo è ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.9.tar.bz2 Scomprimete i sorgenti del kernel nella directory /usr/src. Dovete prestare attenzione perché quando scomprimete il file tar verrà scompresso nella directory linux . Potreste già avere una directory chiamata linux con un diversa versione del codice sorgente e di certo non volete che uno copra l'altro. Pertanto,prima di estrarre il file tar, controllate se già esiste una directory con il nome linux e se esiste rinominatela con un altro nome. Il pacchetto dei sorgenti che abbiamo scaricato è stato compresso con l'utility di compressione bzip2. Pertanto dobbiamo scomprimerla prima di passarla al programma tar. Potete utilizzare il seguente programma per estrarre il pacchetto: bunzip2 <../linux-2.4.9-nfs-swap.diff Questo comando farà solo una prova, per controllare che possa essere applicata senza problemi. se il test funziona senza errori, potete applicare la patch ripetendo il comando precedente senza l'opzione --dry-run. patch -p1 <../linux-2.4.9-nfs-swap.diff

5.2.2.2.
Linux Progress Patch (LPP)


La patch Linux Progress Patch (LPP) permette di configurare un'immagine grafica che venga mostrata durante la fase d'avvio. I normali messaggi che apparirebbero sullo schermo sono dirottati ad un altro schermo tty e alcune speciali istruzioni, aggiunte agli script d'avvio, fanno sì che l'avanzamento della barra mostrata sullo schermo rifletta l'avanzamento del processo d'avvio. come nel caso della patch NFS Swap patch potete verificare questa patch con il comando: patch -p1 --dry-run <../lpp-2.4.9 Se il test funziona senza errori, potete applicare la patch con: patch -p1 <../lpp-2.4.9

5.2.3.
Configurare i parametri del kernel


Potete ora eseguire il programma che preferite per la configurazione. Tra le varie possibilità ci sono: * make xconfig Utility di configurazione del kernel nella versione X Windows. * make menuconfig Utility di configurazione del kernel nella versione basata su curses * make config Utility di configurazione del kernel nella versione con una semplice interfaccia a caratteri riga per riga. 8.2.3.1. Configurazione del Kernel per l'uso con initrd La configurazione del kernel per l'uso di initrd richiede che siano impostate le seguenti opzioni: * File systems -> /dev filesystem support Il supporto per il filesystem /dev deve essere abilitato. Questa impostazione si trova nella sezione 'File systems'. NON specificate 'Automatically mount at boot'. L'operazione di mount di questo filesystem verrà fatto dallo script /linuxrc. * Block devices -> RAM disk support Le workstations LTSP hanno bisogno del supporto del kernel per i dischi RAM. Questa impostazione è nella sezione 'Block devices'. * Block devices -> Initial RAM disk (initrd) support Anche questo deve essere attivato. * Processor type and features -> Processor family Dovete accertarvi che il kernel che stato costruendo possa veramente essere eseguito sulla CPU della workstation. Controllate la sezione 'Processor type and features'. Dovete anche disattivare il supporto SMP, a meno che non abbiate veramente delle CPU multiple. * File systems -> Network file systems -> NFS Client support La workstation monta il filesystem principale tramite NFS, pertanto è necessario che il supporto per il client NFS sia attivato. Questo per quanto riguarda le impostazioni necessarie. Potete anche disattivare parecchie funzioni del kernel, per ridurre le dimensioni del kernel.

5.2.3.2.
Configurazione del Kernel per l'uso senza initrd


La configurazione del the kernel per l'uso senza initrd è diversa da quella con initrd per alcuni aspetti:
* Block devices -> RAM disk support
Le workstation LTSP hanno bisogno del supporto del kernel per i dischi RAM. Questa impostazione è nella sezione 'Block devices'.
* Block devices -> Initial RAM disk (initrd) support
Questa opzione deve essere disabilitata.
* Networking options -> IP:kernel level autoconfiguration
Questo deve essere abilitato. Questa impostazione dà informazioni a kernel di configurare automaticamente l'interfaccia di rete ethernet eth0, basandosi su valori passati al kernel sulla linea di comando. Non è necessario specificare le opzioni DHCP, BOOTP o RARP perché il bootrom Etherboot ha già effettuato la richiesta DHCP o BOOTP e avrà reso disponibile il valore dell'indirizzo IP al kernel passandolo come parametro alla linea di comando del kernel. Questo evita al kernel dei dover effettuare lui una richiesta.
* Network device support -> Ethernet (10 or 100Mbit)
Quando non viene utilizzato initrd, bisogna scrgliere il driver per la specifica scheda che corrisponda alla scheda di rete utilizzata . Deve essere staticamente unito al kernel (e non compilato come modulo), perché l'interfaccia di rete deve essere utilizzata prima che venga montato il filesystem principale. Questa è una differenza importante rispetto al kernel con initrd.
* File systems -> /dev filesystem support Dalla versione 2.09pre2 di LTSP, è necessario il supporto devfs. Questo supporto è necessario sia che si utilizzi initrd sia che non si utilizzi initrd.
* File systems -> Automatically mount at boot
Quando NON si utilizza initrd il filesystem /dev DEVE essere montato dal kernel, durante il boot. Dite 'Y' (sì) a questa opzione.
* File systems -> Network file systems -> NFS Client support
La workstation monta il filesystem principale tramite NFS, pertanto è necessario che il supporto per il client NFS sia attivato.

5.2.4.
La creazione del kernel


Per rendere le cose più facili, una copia del file .config è incluso nel pacchetto ltsp_initrd_kit. Potete copiare questo file nella directory /usr/src/linux-2.4.9 . Quando avete terminato di selezionare o deselezionare i parametri del kernel, dovete passare alla sua creazione (build). Per creare il kernel dovete dare il seguenti comandi: make dep make clean make bzImage make modules make modules_install Potete anche unirli tutti assieme con: make dep && make clean && make bzImage && make modules && make modules_install Le due e commerciali (&&) indicano di eseguire il primo comando e quando il primo comando è stato completato con successo eseguire il secondo comando. Quando il secondo comando è stato completato con successo viene eseguito il terzo e così via. Il novo kernel, una volta creato, si troverà nel file /usr/src/linux-2.4.9/arch/i386/boot/bzImage. 8.2.5. Contrassegnare il kernel per Etherboot Per fare in modo che Etherboot possa gestire il kernel Linux deve essere preparato per questo. Questa operazione si chiama contrassegnatura ('Tagging') del kernel. Questa operazione aggiungerà un pezzo di codice al kernel che verrà eseguito prima che il controllo sia passato al kernel. Lo strumento per eseguire questa contrassegnatura si chiama 'mknbi-linux'. Il pacchetto ltsp_initrd_kit include uno script shell chiamato buildk che include tutte i comandi necessari per preparare l'immagine del kernel per il boot


Capitolo 6: le voci del file di configurazione lts.conf.

Quando si prepara LTSP, una delle cose che bisogna tenere a mente è che bisogna considerare diverse configurazioni hardware per le workstation. Ovviamente le combinazioni di processore, scheda video e scheda video che abbiamo presente oggi non sarà quella che avremo bisogno tra tre mesi quando aggiungeremo altre workstation alla rete. Per questo motivo è stato creato un modo per specificare la configurazione di ogni workstation. Il file di configurazione si chiama lts.conf ed è collocato nella directory /opt/ltsp/i386/etc. Il formato del file lts.conf permette di definire alcune impostazioni di 'default' e alcune impostazioni per le specifiche workstation. Se tutte le vostre workstation sono identiche, potete specificare tutte le impostazioni di configurazione nella sezione '[Default]'.

6.1.
Esempio del file lts.conf


Qui sotto è riportato un file lts.conf d'esempio:

[Default] SERVER = 192.168.0.254
X_MOUSE_PROTOCOL = "PS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
USE_XFS = N
SCREEN_01 = startx

[ws001]
XSERVER = auto
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS1"
X_MOUSE_RESOLUTION = 50
X_MOUSE_BUTTONS = 3
X_MOUSE_BAUD = 1200

[ws002]
XSERVER = XF86_Mach64

[ws003]
SCREEN_01 = shell


6.2.
Elenco dei parametri disponibili per il file lts.conf


6.2.1.
Parametri generali Commenti


I commenti incominciano dal segno '#' e continuano fino alla fine della riga.

LTSP_BASEDIR
Questo parametro indica dove è collocato il filesystem principale di LTSP.
Il valore di default (predefinito) per questo parametro è /opt/ltsp SERVER
Questo parametro indica il server che è usato al posto di XDM_SERVER, TELNET_HOST, XFS_SERVER e SYSLOG_HOST, quando uno o più di questi parametri non sono specificati esplicitamente.
Se avete una macchina che funziona da server per tutti questi servizi allora basta che specificate l'indirizzo del server in questo parametro e omettete gli altri parametri.
Se questo parametro non è specificato viene utilizzato il valore predefinito 192.168.0.254.

SYSLOG_HOST
Se volete mandare i messaggi di log ad una macchina diversa dal server principale (quello definito dal parametro SERVER) potete specificare il server per i log con questo parametro. Se questo parametro non è specificato verrà, come descritto sopra, utilizzato il valore specificato come 'SERVER'.

NFS_SERVER
Questo parametro specifica l'indirizzo IP del server NFS quando il filesystem /home viene montato.
Se questo parametro non è specificato il valore utilizzato è quello specificato come parametro SERVER.

USE_NFS_SWAP
Impostate il valore di questo parametro ad Y se volete attivare lo swap via NFS.
Il default per questo parametro è N

SWAPFILE_SIZE
Questo parametro controlla la dimensione del file di swap. Il valore di default è 64m.

SWAP_SERVER
Il file di swap utilizzato può essere messo su un qualsiasi server della rete che è in grado di gestirlo. Questo parametro specifica l'indirizzo IP del server su cui mettere il file di swap. Il valore di default per questo parametro è il valore di NFS_SERVER.

NFS_SWAPDIR
Questo parametro indica la directory del server che è esportata tramite NFS. Il valore di default è /var/opt/ltsp/swapfiles. Accertatevi che questa directory dia specificata nel file /etc/exports.

TELNET_HOST
Se la workstation è configurata per avere un'interfaccia a caratteri allora questo parametro è usato per specificare a quale computer (host) collegarsi in telnet. Se questo valore non è impostato viene utilizzato il valore SERVER specificato sopra.

DNS_SERVER
Indica il server DSN, utilizzato per costruire il file resolv.conf.

SEARCH_DOMAIN
Utilizzato per costruire il file resolv.conf.

Parametri da SCREEN_01 a SCREEN_12
In questi parametri possono essere specificati fino a 12 screen script per ciascuna workstation. Questo dà accesso fino a 12 sessioni su ogni workstation, ognuna accessibile premendo i tasti da Ctrl-Alt-F1 a Ctrl-Alt-F12.

SCREEN_01 = startx
SCREEN_02 = shell

Valori possibili (come visto sopra) sono:

* startx
* telnet
* rdesktop
* shell

Guardate nella directory /opt/ltsp/i386/etc/screen.d per eventuali altri script aggiuntivi, oppure scrivetene uno voi stesso e mettetelo in questa directory.

Da MODULE_01 a MODULE_10
Fino a 10 moduli del kernel possono essere caricati utilizzando questi parametri di configurazione.
Potete specificare l'intera riga di comando che utilizzereste con il comando insmod (con insmod escluso).
Per esempio:
MODULE_01 = uart401.o
MODULE_02 = "sb.o io=0x220 irq=5 dma=1"
MODULE_03 = opl3.o

Se il valore del parametro è un pathname assoluto (cioè se è specificata anche la directory in cui trovare il file) allora viene utilizzato il comando insmod . Altrimenti viene utilizza il comando modprobe.

RAMDISK_SIZE
Quando la workstation viene avviata, viene creato un disco RAM che viene montato come directory /tmp. Con questo parametro è possibile specificare la dimensione di questo filesystem. Il numero specificato deve essere in kilobyte (1024 byte). Ad esempio per creare un disco ram di 1 MB, impostate questo parametro come RAMDISK_SIZE = 1024
Se cambiate questo parametro, la dimensione del file ram, dovrete anche cambiare la dimensione del disco ram all'interno del kernel. Questo valore può essere compilato nel kernel, oppure se usate Etherboot o Netboot, potete indicare al kernel la dimensione del disco ram quando fate la contrassegnatura del kernel con il programma mknbi-linux. Il valore di default è 1024 ( 1 MB )

da RCFILE_01 a RCFILE_10
Degli script RC possono essere eseguiti dallo script rc.local.
Per ottenere questo basta collocare gli script nella directory /etc/rc.d directory e specificare i nomi degli script in questi parametri. SOUND Se il pacchetto LTSP del suono è installato, dovete mettere questo parametro a Y e verrà eseguito lo script rc.sound per configurare la scheda sonora e il demone. Il valore di default per questo parametro è N.

6.2.2.
Parametri di X-Windows


XDM_SERVER
Se volete che XDM punti ad una macchina diversa dal server principale dovete specificare la macchina da utilizzare come server X in questo parametro. Se questo parametro non è specificato verrà utilizzato il valore di 'SERVER'.

XSERVER
Questo parametro specifica quale tipo di X Server sarà utilizzato dalla workstation. Per le schede video PCI e AGP questo parametro dovrebbe non risultare necessario. POtete anche impostare questo paramentro al valore auto per indicare che deve essere effettuata un autorivelamento. Per le schede video ISA o se volete forzare uno specifico valore impostate questo parametro al nome del driver o del Xserver da utilizzare. se il valore di questo parametro inizia con XF86_ , sarà usato XFree86 3.3.6. altrimenti sarà usato X.org 6.7.0.
Il valore predefinito per questo parametro è auto.

Da X_MODE_0 a X_MODE_2
Fino a 3 Modelines o resoluzioni possono essere configurati per ciascuna workstation. Questi parametri posoono avere due differenti tipi di valore. Può essere una risoluzione o una completa modeline (linea di modo) X_MODE_0 = 800x600 oppure X_MODE_0 = 800x600 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync Se non è specificato nessun valore come X_MODE_x, sarà utilizzato il modelines standard e le risoluzioni 1024x768, 800x600 e 640x480. Se imo p più valori di X_MODE_x vengono specificati, questi sostituiscono completamente le modalità preimpostate.

X_MOUSE_PROTOCOL
In questo parametro può essere specificato qualsiasi parametro valido per il valore di Pointer Protocol di X.org Tipicamente i valori utilizzati sono "Microsoft" o "PS/2".
Il valore di default per questo parametro è "PS/2".

X_MOUSE_DEVICE
Questo parametro specifica il device node a cui è connesso il mouse. Se il mouse è di tipo seriale sarà la porta seriale, come /dev/ttyS0 o /dev/ttyS1. Se il mouse è di tipo PS/2 questo valore sarà /dev/psaux. Il valore di default per questoparametro è /dev/psaux .

X_MOUSE_RESOLUTION
Questo parametro corrisponde al parametro 'Resolution' nel file XF86Config. Un tipico valore per un mouse seriale è 50 e per un maouse PS/2 400. Il valore di default per questo parametro è 400.

X_BUTTONS
Questo parametro indica al sistema quanti tasti abbia il mouse. In genere questo parametro ha il valore 2 o 3. Il valore di default per questo parametro è 3 .

X_MOUSE_EMULATE3BTN
Questo parmetro dice al server X di emulare un mouse a 3 tasti. Quando vengono premuti simultaneamente i due tasti (quello sinistro e quello destro) è come se fosse premuto il tasto centrale. Il valore di default per questo parametro è N.

X_MOUSE_BAUD
Per un mouse seriale, questo parametro specifica la velocità della connessione seriale. Il valore di default per questo parametro è 1200.

X_COLOR_DEPTH
Questo parametro è il numero di bit utilizzato per la profondità dei colori (color depth). I possibili valori sono 8, 15, 16, 24 e 32. Un valore di 8 bits darà 256 colori, 16 darà 65536 colori, 24 darà 16 milioni di colori e 32 bit darà 4.2 miliardi di colori! Non tutti i server X supportano tutti questi valori. Il valore di default per questo parametro è 16.

USE_XFS
Potete scegliere se eseguire lo X Font Server (XFS) oppure se leggere i font tramite NFS. Il sistema che usa il font server dovrebbe fornire un metodo più semplice per tenere tutti i file dei font in un unico posto. Tuttavia sembra che si verificano alcuni problemi con il sistema del font server quando il numero delle workstation supera 40. Ci sono due possibili valori per questo parametro: Y e N. Il valore di default è N . Se volete utilizzare il font server potete utilizzare il parametro XFS_SERVER per specificare quale server funzionerà da X font server.

XFS_SERVER
Se utilizza lo X Font Server per fornire i font allora potete utilizzare questo parametro per specificare l'indirizzo IP del computer che farà da font server. Se questo parametro non è specificato sarà utilizzato il server di default, quello specificato dal parametro SERVER, come descritto sopra.

X_HORZSYNC
Questo parametro specifica il parametro di configurazion HorizSync di X.org. Il suo valore di default è "31-62".

X_VERTREFRESH
Questo parametro specifica il parametro di configurazione VertRefresh di X.org. Il suo valore di default è to "55-90".

XF86CONFIG_FILE
Se volete crearvi un vostro personale file di configurazione XF86Config potete farlo e collocarlo nella directory /opt/ltsp/i386/etc con un nome di file di vostra scelta. Mettete il nome del file come valore di questo parametro. Per esempio: XF86CONFIG_FILE = XF86Config.ws004

6.2.3.
Parametri di configurazione per il Touch screen

USE_TOUCH
Se usate un touch screen nella workstation potete abilitarlo impostando questo parametro al valore Y. Se abilitato il touch screen sarà configurato da altri specifici paramtri. Il valore predefinito di questo parametro è N.

X_TOUCH_DEVICE
Uno schero touch screen funziona come un mouse e generalmente funziona collegato ad una porta seriale. Potete specificare la porta seriale con questo parametro. Per esempio potete impostarlo a /dev/ttyS0. Non c'è un valore di default per questo parametro.

X_TOUCH_MINX
Questo parametro permette la calibrazione di uno schermo touch screen EloTouch. Il valore di default per questo parametro è 433.

X_TOUCH_MAXX
Questo parametro permette la calibrazione di uno schermo touch screen EloTouch. Il valore di default per questo parametro è 3588.

X_TOUCH_MINY
Questo parametro permette la calibrazione di uno schermo touch screen EloTouch. Il valore di default per questo parametro è 569.

X_TOUCH_MAXY
Questo parametro permette la calibrazione di uno schermo touch screen EloTouch. Il valore di default per questo parametro è 3526.

X_TOUCH_UNDELAY
Questo parametro permette la calibrazione di uno schermo touch screen EloTouch. Il valore di default per questo parametro è 10.

X_TOUCH_RPTDELAY
Questo parametro permette la calibrazione di uno schermo touch screen EloTouch. Il valore di default per questo parametro è 10.

6.2.4.
Parametri per le aplpicazioni locali.

LOCAL_APPS
Se volete abiilltare l'esecuzione di applicazioni locali sulla workstation impostate questo parametro ad Y. Per abilitare le applicazioni locali occorrerà configurare molti altri punti. Consultate la sezione 'Local Apps' (Applicazioni Locali) del manuale LTSP per maggiori informazioni. Il valore di default per questo parametro è N.

NIS_DOMAIN
Se avete impostato LOCAL_APPS a Y, allora dovete avere un server NIS nella rete. Il parametro NIS_DOMAIN serve a specificare il nome del NIS domain Deve coincidere con il dome che è stato definito nel server NIS. Questo nome NON è la stessa cosa del nome di domino internet. Il valore di default per questo parametro è ltsp.

NIS_SERVER
Impostate questo parametro al valore del server NIS se non volete che sia effettuata una chiamata broadcast per cercare il server NIS.

6.2.5.
Parametri della tastiera (Keyboard)

Tutti i file per il supporto delle tastiere sono copiati nella directory /opt/ltsp/i386 e nelle sue sottodirectory, pertanto configurare una tastiera internazionale (non statunitense) è semplicemente una questione di configurazione dei X.org. Ci sono molti parametri per questa cosa. I valori che devono assumere questi parametri sono i quelli descritti nella documentazione di X.org. Tutti i parametri validi per X.org sono parametri validi per questi parametri. Vorremmo aggiungere alla documentazione la descrizione dei valori necessari per configurare ciascun tipo di tastiera internazionale. Se avete lavorato per configurare una tastiera internazionale e ci siete riusciti, le indicazioni e i commenti su come riuscirci saranno molto graditi dal ltsp core group.

XkbTypes
Il valore di default per questa parola è 'default '.

XkbCompat
Il valore di default per questa parola è 'default '.

XkbSymbols
Il valore di default per questo è 'us(pc101) '.

XkbModel
Il valore di default per questo è 'pc101'.

XkbLayout
Il valore di default per questa parola è 'us '.

6.2.6.
Parametri di configurazione delle stampanti

FIno a 3 stampanti possono essere connesse ad una workstation senza dischi. Si può configurare una combinazione di stampanti collegate a porte seriali e parallele, tramite i seguenti parametri ne file lts.conf:

di Andrea Fascilla <afascilla@mail.com>

dal documento originale di James McQuillan <jam@LTSP.org>


PRINTER_0_DEVICE
Nome del device della prima stampante. Sono utilizzabili nomi come /dev/lp0, /dev/ttyS0 o /dev/ttyS1.

PRINTER_0_TYPE
Specifica il tipo della stampante. Valide possibilità sono: ' P' per le parallele o and 'S' per le seriali.

PRINTER_0_PORT
Specifica il numero di porta della connessione TCP/IP da usare. Il valore di default è '9100'

PRINTER_0_SPEED
Se la stampante è seriale, questo parametro indica la velocità di connessione. Il valore di default è '9600'.

PRINTER_0_FLOWCTRL
Per una stampante seriale specifica il flow control Le possibile scelte sono: 'S' per controllo Software (XON/XOFF) del flusso di dati, 'H' per il controllo Hardware (CTS/RTS). Se non viene specificato il valore di default utilzzato è 'S'.

PRINTER_0_PARITY
Se la stampante è seriale specifica la parità. I valori possibili sono:'E'-Even, (parità pari), ' O'-Odd (parità dispari) o 'N'-None (nessuna parità). Se non specificato viene utilizzato di defult il valore ' N'.

PRINTER_0_DATABITS
Per le stampanti seriali specifica il numero dei bit dei dati. Le possibli scelte sono: '5', '6 ', '7' e '8 '. Se non specificato sarà utilizzato il valore '8'.

PRINTER_1_DEVICE
Nome del device della seconda stampante

PRINTER_1_TYPE
Tipo del device della seconda stampante

PRINTER_1_PORT
Porta del device TCP/IP per la seconda stampante

PRINTER_1_SPEED
baud rate per la seconda stampante (se seriale)

PRINTER_1_FLOWCTRL
Tipo di controllo di flusso (flow control) per la seconda stampante (se seriale)

PRINTER_1_PARITY
Parità della connessione per la seconda stampante (se seriale)

PRINTER_1_DATABITS
Numero di bit dei dati per la seconda stampante. (se seriale)

PRINTER_2_DEVICE
Nome del device della terza stampante

PRINTER_2_TYPE
Tipo del device della terza stampante

PRINTER_2_PORT
Porta del device TCP/IP per la terza stampante

PRINTER_2_SPEED
baud rate per la terza stampante (se seriale)

PRINTER_2_FLOWCTRL
Tipo di controllo di flusso (flow control) per la terza stampante (se seriale)

PRINTER_2_PARITY
Parità della connessione per la terza stampante (se seriale)

PRINTER_2_DATABITS
Numero di bit dei dati per la terza stampante. (se seriale)


Link utili.


  1. La pagina principale del sito web di LTSP e'  
  2. www.LTSP.org

    (è in inglese, ma sul sito ci sono anche delle pagine italiano)

  3. Diskless-Nodes HOW-TO document for Linux  
  4. en.tldp.org/HOWTO/Diskless-HOWTO.html

    (in inglese)

  5. Etherboot Home Page  
  6. etherboot.sourceforge.net

    (in inglese)

  7. The Rom-O-Matic site  
  8. www.Rom-O-Matic.net

    (in inglese)

  9. X.org Mouse Support  
  10. www.xfree86.org/current/mouse.html

    (in inglese)

  11. XFree86-Video-Timings-HOWTO  
  12. www.tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html

    (in inglese) La traduzione in itliano è disponibile presso it.tldp.org/HOWTO/XFree86-Video-Timings-HOWTO.html

  13. The Linux NIS(YP)/NYS/NIS+ HOWTO  
  14. www.tldp.org/HOWTO/NIS-HOWTO/index.html

    (in inglese) La traduzione in itliano è disponibile presso it.tldp.org/HOWTO/NIS-HOWTO/index.html


Ampi stralci del presente documento sono ripresi da:
LTSP - Linux Terminal Server Project - Progetto per un sistema Server per Terminali con Linux v4.1 - Documentazione in Italiano
di Andrea Fascilla <afascilla@mail.com>
dal documento originale di James McQuillan <jam@LTSP.org>



img
img
Valid XHTML 1.0 Transitional