Avanti Indietro Indice

7. Configurare il proprio Kernel di Linux

Per poter usare PPP, il proprio kernel di Linux dev'essere compilato includendone il supporto. Ci si procuri il codice sorgente del kernel di Linux se già non lo si ha - dovrebbe essere il /usr/src/linux in un file system standard di Linux.

Si dia un'occhiata a questa directory - molte distribuzioni di Linux installano l'albero dei sorgenti (i file e le sottodirectory) durante il processo di installazione.

Al boot, il proprio kernel di Linux mostra svariate informazioni. Tra queste ci sono anche quelle sul PPP, se il kernel ne include il supporto. Per vedere queste informazioni, si veda il file di log del proprio sistema o si usi dmesg |less per visualizzare le informazioni sullo schermo. Se il proprio kernel include il supporto per il PPP, si dovrebbe vedere una cosa di questo genere:


PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.

(questa è per la serie 2.0.x di kernel di Linux).

I sorgenti del kernel di Linux possono essere reperiti via ftp da sunsite.unc.edu o da uno dei suoi (molti) mirror.

7.1 Installare i sorgenti del Kernel di Linux

Quanto segue sono le istruzioni in breve per procurarsi ed installare i sorgenti del kernel di Linux. Informazioni più complete le si può trovare nel Linux Kernel HOWTO.

Per poter installare e compilare il kernel di Linux, si deve essere loggati come root.

  1. Passare alla directory /usr/src
    cd /usr/src
  2. Controllare in /usr/src/linux se già ci sono installati i sorgenti.
  3. Se non si hanno i sorgenti, li si prenda dalla directory dei sorgenti del Kernel di Linux o nel mirror più vicino.
    Se si cerca una delle prime versione del kernel (come la 1.2.X), queste sono conservate nella directory dei sorgenti dei Vecchi Kernel di Linux.
  4. Si scelga il kernel appropriato - solitamente il più recente fra quelli disponibili nel sito. Lo si scarichi e si metta il file tar dei sorgenti in /usr/src.
    Nota: un file 'tar' è un archivio - probabilmente compresso (come lo sono i file tar dei sorgenti del kernel di Linux) - che contiene molti file in diverse directory. È l'equivalente Linux di un file zip multidirectory di DOS.
  5. Se già si hanno i sorgenti di Linux installati si debbono rimuovere i vecchi sorgenti. Si usi il comando
    rm -rf /usr/src/linux
  6. Ora si decomprimano e si estraggano i sorgenti usando il comando
    tar xzf linux-2.0.XX.tar.gz
  7. Adesso, si faccia cd /usr/src/linux e si legga il file README. Questi contiene un'eccellente spiegazione su come configurare e compilare un nuovo kernel. Lo si legga (può essere una buona idea stamparlo per averne una copia sotto mano durante la compilazione, finché non la si è fatta abbastanza volte da conoscerne ogni minimo dettaglio).

7.2 Riconoscere il proprio hardware

Se si ha intenzione di ricompilare il kernel si DEVE sapere quali schede/dispositivi ci sono installati nel proprio PC!!! Per alcuni dispositivi (come le schede audio) ci sarà bisono di conoscere anche le diverse impostazione (come IRQ, indirizzi di I/O e così via).

7.3 Compilazione del Kernel - il kernel di Linux 1.2.13

Per iniziare il processo di configurazione, si seguano le istruzione nel file README installato con i sorgenti. La configurazione viene avviata con

make config

Per poter usare PPP, si deve configurare il kernel per includere il supporto per il PPP (PPP necessita SIA di pppd CHE del supporto nel kernel).


  PPP (point-to-point) support (CONFIG_PPP) [n] y

Si risponda alle altre domande del make config a seconda dell'hardware nel proprio PC e delle caratteristiche che si vogliono dal sistema operativo Linux. Si continui poi nella lettura del README per compilare ed installare il nuovo kernel.

Il kernel 1.2.13 crea solo 4 device PPP. Nel caso si possieda una scheda seriale multiporta, ci sarà bisogno di modificare i sorgenti del PPP nel kernel per avere più porte (si veda il file README.linux distribuito assieme al PPP-2.1.2 per maggiori dettagli sulle semplici modifiche da fare).

Nota: il processo di configurazione dell'1.2.13 NON permettere di tornare indietro - se si fa un'errore rispondendo ad una domanda durante il dialogo con make config, si esca premendo CTRL C e si ricominci.

7.4 Compilazione del Kernel - i kernel di Linux 1.3.x e 2.0.x

Per Linux 1.3.x e 2.0.x, si può usare un processo simile a quello di Linux 1.2.13. Ancora, si seguano le istruzioni del file README installato con i sorgenti. Il processo di configurazione si avvia con

make config

Comunque, c'è anche la possibilità di usare

make menuconfig

Ciò fornisce un sistema di configurazione a menù con un help in linea che permette di spostarsi avanti e indietro nel processo di configurazione.

Esiste inoltre un altamente consigliata interfaccia di configurazione che gira in X Windows

make xconfig

Il supporto per il PPP può essere compilato direttamente dentro al kernel oppure come modulo.

Se quando la propria macchina Linux è operativa, si usa PPP solo per brevi periodi, allora si raccomanda di compilare il supporto per il PPP come modulo. Usando 'kerneld' il proprio kernel caricherà automaticamente i moduli richiesti per fornire il supporto per il PPP quando si lancia il processo di connessione con PPP. Ciò fa risparmiare porzioni importanti di memoria: nessuna parte del kernel può essere messa in swap, ma i moduli caricabili sono automaticamente rimossi se non sono in uso.

Per far ciò si deve abilitare il supporto per i moduli caricabili:


        Enable loadable module support (CONFIG_MODULES) [Y/n/?] y

Per aggiungere il supporto nel kernel per il PPP, si risponda alla seguente domanda:


        PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]  

Per il modulo caricabile del PPP, si risponda M, altrimenti per compilare il PPP dentro al kernel rispondere Y.

Diversamente dal kernel 1.2.13, il kernel 2.0.x crea device PPP al volo quando sono necessari e non c'è più bisogno di modificare i sorgenti per incrementare il numero di dispositivi PPP disponibili.

7.5 Nota su PPP-2.2 e /proc/net/dev

Se si usa PPP-2.2, si scoprirà che un effetto collaterale nella creazione al volo dei dispositivi PPP è che nessun dispositivo viene mostrato nel file system /proc/net finché il dispositivo non è creato lanciando pppd:


[hartr@archenland hartr]$ cat /proc/net/dev
Inter-|   Receive                  |  Transmit
 face |packets errs drop fifo frame|packets errs drop fifo colls carrier
    lo:  92792    0    0    0    0    92792    0    0    0     0    0
  eth0: 621737   13   13    0   23   501621    0    0    0  1309    0

Una volta avviati uno (o più) servizi ppp, si vedranno delle voci così (da un server ppp):


[root@kepler /root]# cat /proc/net/dev
Inter-|   Receive                  |  Transmit
 face |packets errs drop fifo frame|packets errs drop fifo colls carrier
    lo: 428021    0    0    0    0   428021    0    0    0     0    0
  eth0:4788257  648  648  319  650  1423836    0    0    0  4623    5
  ppp0:   2103    3    3    0    0     2017    0    0    0     0    0
  ppp1:  10008    0    0    0    0     8782    0    0    0     0    0
  ppp2:    305    0    0    0    0      297    0    0    0     0    0
  ppp3:   6720    7    7    0    0     7498    0    0    0     0    0
  ppp4: 118231  725  725    0    0   117791    0    0    0     0    0
  ppp5:  38915    5    5    0    0    28309    0    0    0     0    0

7.6 Considerazioni generali sulla configurazione del kernel per il PPP

Se si sta mettendo su un PC Linux per far da server PPP, si deve compilare il supporto per l'IP forwarding. Questo è pure necessario se si vuole usare Linux per collegare alcune LAN assieme o per connettere la propria LAN ad Internet.

Se si connette una LAN ad Internet (o si connettono assieme due LAN), si dovrebbe essere ben coscienti delle problematiche sulla sicurezza. L'aggiunta del supporto per i firewall IP nel kernel probabilmente è un DOVERE!

Questo sarà necessario anche se si vuole usare IP masquerade per connettere una LAN che usa uno dei suddetti numeri di rete IP 'non connessi'.

Per abilitare l'IP Masquerade e l'IP fire walling, si DEVE rispondere affermativamente alla prima domanda nel processo make config:


Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)?

Ai nuovi utenti questo potrebbe sembrare un po' fuori luogo, ma molti utenti Linux usano attivamente l'IP Masquerade e l'IP Firewalling dei kernel Linux 2.0.XX senza alcun problema.

Una volta installato il nuovo kernel e riavviata la macchina, si può cominciare a configurare e a testare il(i) collegamento(i) PPP.


Avanti Indietro Indice