Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 494

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>The Linux Kernel HOWTO: Come configurare effettivamente il kernel </TITLE>
 <LINK HREF="Kernel-HOWTO-5.html" REL=next>
 <LINK HREF="Kernel-HOWTO-3.html" REL=previous>
 <LINK HREF="Kernel-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="Kernel-HOWTO-5.html">Avanti</A>
<A HREF="Kernel-HOWTO-3.html">Indietro</A>
<A HREF="Kernel-HOWTO.html#toc4">Indice</A>
<HR>
<H2><A NAME="s4">4. Come configurare effettivamente il kernel </A></H2>

<P>
<P>
<H2><A NAME="ss4.1">4.1 Procurarsi i sorgenti </A>
</H2>

<P>
<P>&Egrave; possibile ottenere i sorgenti in ftp anonimo da
<CODE>ftp.kernel.org</CODE> nella directory
<CODE>/pub/linux/kernel/vx.y</CODE>, dove <CODE>x.y</CODE> sono la versione
(es. 2.2) e, come menzionato in precedenza, quelli che finiscono con un
numero dispari sono le release di sviluppo e possono essere
instabili. Tipicamente il file si chiama <CODE>linux-x.y.z.tar.gz</CODE>,
dove <CODE>x.y.z</CODE> &egrave; il numero della versione. I siti solitamente
conservano anche una versione con suffisso <CODE>.bz2</CODE>, che &egrave; stata
compressa con bzip2 (questi file saranno pi&ugrave; piccoli e richiederanno
di minor tempo per il trasferimento).
<P>La cosa migliore &egrave; usare <CODE>ftp.xx.kernel.org</CODE> dove <CODE>xx</CODE>
&egrave; il codice della propria nazione; ad esempio
<CODE>ftp.it.kernel.org</CODE> per l'Italia e <CODE>ftp.us.kernel.org</CODE>
per gli Stati Uniti.
<P>
<P>
<H2><A NAME="ss4.2">4.2 Decomprimere i sorgenti </A>
</H2>

<P>
<P>Si faccia il login (o si usi <CODE>su</CODE>) come "<CODE>root</CODE>" e si cambi directory in <CODE>/usr/src</CODE>.
Se si sono installati i sorgenti del kernel quando si &egrave; installato per
la prima volta Linux (come fanno molti), ci sar&agrave; gi&agrave; una directory
chiamata "<CODE>linux</CODE>", che contiene l'intero vecchio albero dei
sorgenti. Se si ha spazio su disco e si vuole andare sul sicuro, si
conservi quella directory. Una buona idea &egrave; di scoprire quale
versione gira nel proprio sistema e rinominare di conseguenza la
directory. Il comando "<CODE>uname -r</CODE>" mostra la versione del
kernel corrente. Quindi, se "<CODE>uname -r</CODE>" dice
"<CODE>1.0.9</CODE>", si vorr&agrave; rinominare (con "<CODE>mv</CODE>")
"<CODE>linux</CODE>" in "<CODE>linux-1.0.9</CODE>". Se ci si sente abbastanza
temerari, semplicemente si cancelli l'intera directory. In ogni caso,
ci si assicuri che non esista una directory "<CODE>linux</CODE>" in
<CODE>/usr/src</CODE> prima di decomprimere il codice sorgente.
<P>
<P>Ora, in <CODE>/usr/src</CODE>, si scompattino i sorgenti con "<CODE>tar zxpvf linux-x.y.z.tar.gz</CODE>"
(se si ha semplicemente un file <CODE>.tar</CODE> senza <CODE>.gz</CODE> alla fine, basta 
<CODE>tar xpvf linux-x.y.z.tar</CODE>"). Il contenuto dei sorgenti scorrer&agrave; sullo schermo. 
Al termine, ci sar&agrave; una nuova directory "<CODE>linux</CODE>" in <CODE>/usr/src</CODE>. Si faccia 
"<CODE>cd linux</CODE>" e si dia un'occhiata al file <CODE>README</CODE>.
Ci sar&agrave; una sezione etichettata "<CODE>INSTALLING the kernel</CODE>".
Si seguano le istruzioni quando appropriate: link simbolici da
sistemare, rimozione di vecchi file <CODE>.o</CODE>, ecc.
<P>Se si ha un file <CODE>.bz2</CODE> e il programma bzip2 (si consulti
<CODE>http://www.muraroa.demon.co.uk/</CODE>), si dia:
<P>
<PRE>
     bz2cat linux-x.y.z.tar.bz2 | tar xvf -
</PRE>
<P>
<H2><A NAME="ss4.3">4.3 Configurare il kernel </A>
</H2>

<P>
<P>Nota: Alcune parti di questa sezione sono
reiterazioni/chiarificazioni di una sezione simile nel file
<CODE>README</CODE> di Linus.
<P>
<P>Il comando "<CODE>make config</CODE>" lanciato in <CODE>/usr/src/linux</CODE>
avvia uno script di configurazione che pone molte domande. Richiede la
bash, quindi si verifichi che bash sia <CODE>/bin/bash</CODE>,
<CODE>/bin/sh</CODE> oppure <CODE>$BASH</CODE>.
<P>
<P>Comunque, ci sono alcune alternative pi&ugrave; carine a "<CODE>make
config</CODE>" e molto probabilmente le si trover&agrave; pi&ugrave; facili e comode da
usare. "<CODE>make menuconfig</CODE>" &egrave; probabilmente la pi&ugrave; usata.
Qualsiasi si scelga, &egrave; meglio che per prima cosa familiarizzare con
l'interfaccia poich&eacute; pu&ograve; capitare di doverci tornare prima di quanto
si pensi. Quelli che non possono fare a meno di X possono provare "<CODE>make
xconfig</CODE>" se hanno installato Tk ("click-o-rama" - Nat).
"<CODE>make menuconfig</CODE>" &egrave; per quelli che hanno le (n)curses e
preferiscono un menu testuale. Queste interfacce hanno un vantaggio
piuttosto evidente: se ci si incasina e si fa una scelta sbagliata
durante la configurazione, &egrave; semplice tornare indietro e sistemarla.
<P>
<P>Con "<CODE>make menuconfig</CODE>" e "<CODE>make xconfig</CODE>" le opzioni di
configurazione appariranno ordinate gerarchicamente.
<P>
<P>Alle domande si risponde tipicamente con "<CODE>y</CODE>" (S&igrave;) o
"<CODE>n</CODE>" (No). I device driver tipicamente hanno un'opzione
"<CODE>m</CODE>", che significa "modulo", intendendo che il sistema lo
compiler&agrave; non direttamente dentro al kernel ma piuttosto come
modulo caricabile. Un modo pi&ugrave; comico per descriverla &egrave; come
"maybe" ("pu&ograve; essere"). Alcune delle opzioni pi&ugrave; ovvie e non critiche
non sono qui descritte, per una breve descrizione di alcune altre si
veda la sezione "Altre opzioni di configurazione".
Con "<CODE>make menuconfig</CODE>", la barra spaziatrice attiva la selezione.
<P>
<P>Nei kernel 2.0.x e successivi c'&egrave; un'opzione "?", che fornisce una
breve descrizione dei parametri di configurazione. Si tratta di informazioni 
di solito davvero aggiornate. Qui di seguito un elenco di
alcune importanti funzionalit&agrave; (tra parentesi la gerarchia alla
quale appartengono) seguite da una breve spiegazione.
<P>
<P>
<H3>Kernel math emulation (Processor type and features)</H3>

<P>
<P><EM>Emulazione matematica a livello kernel (Tipo di processore e
caratteristiche)</EM>
<P>Se non si ha un coprocessore matematico (si ha un semplice 386 o un
486SX), si deve rispondere "<CODE>y</CODE>" a questa domanda. Se si ha
un coprocessore e si risponde comunque "<CODE>y</CODE>", non ci si
preoccupi troppo: verr&agrave; comunque usato il coprocessore ed ignorata
l'emulazione. Per qualsiasi macchina moderna, la risposta sar&agrave;
negativa, ma non ci si preoccupi se accidentalmente si risponde s&igrave;;
se non serve, non &egrave; usata.
<P>
<P>
<H3>Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block Devices)</H3>

<P>
<P><EM>Supporto per dischi Enhanced (MFM/RLL) e dischi/cdrom IDE (Dispositivi
a blocchi)</EM>
<P>Probabilmente si ha bisogno di questo supporto; significa che il
kernel supporter&agrave; i dischi fissi standard dei PC, che la maggior parte
della gente ha. Questo driver non comprende i dischi SCSI; vengono
dopo nella configurazione.
<P>Poi verr&agrave; chiesto del supporto per "old disk-only" (solo dischi
vecchi) e dei driver "new IDE" (IDE recenti). Se ne scelga uno; la
maggior differenza &egrave; che il vecchio driver supporta solo due dischi su
una singola interfaccia, mentre il nuovo supporta una interfaccia secondaria e
i lettori cdrom IDE/ATAPI. Il nuovo driver &egrave; 4k pi&ugrave; grande del
vecchio e si suppone sia pure "migliorato", intendendo che a parte
contenere un numero diverso di bug, potrebbe migliorare le prestazioni
dei dischi, specialmente se si ha dell'hardware recente (di tipo EIDE).
<P>
<P>
<H3>Networking support (General Setup)</H3>

<P>
<P><EM>Supporto di rete (Impostazioni generali)</EM>
<P>
<P>All'inizio, conviene rispondere semplicemente "<CODE>y</CODE>" se la
propria macchina &egrave; gi&agrave; in rete o si vuole usare SLIP,
PPP, term ecc. per avere accesso a Internet. Comunque, dato che 
molti pacchetti (come X Window) richiedono il supporto di
rete, si dovrebbe rispondere "<CODE>y</CODE>" anche se la propria macchina
non &egrave; collegata in rete. Pi&ugrave; tardi, verr&agrave; chiesto se si vuole il
supporto per il networking TCP/IP; ancora una volta, si risponda "<CODE>y</CODE>"
a meno di non essere assolutamente sicuri del contrario.
<P>
<P>
<H3>System V IPC (General Setup)</H3>

<P>
<P><EM>IPC System V (Impostazioni generali)</EM>
<P>
<P>Una delle migliori definizioni di IPC (InterProcess Communication) si trova 
nel glossario del libro del Perl. Non c'&egrave; da
sorprendersi se alcuni programmatori Perl l'adoperano per permettere
ai processi di parlarsi l'un l'altro, come fanno molti altri programmi
(DOOM, fra gli altri), quindi non &egrave; una buona idea rispondere
<CODE>n</CODE> a meno che non si sappia esattamente quello che si sta
facendo.
<P>
<P>
<H3>Processor family (Processor type and features)</H3>

<P>(in older kernels: Use -m486 flag for 486-specific optimizations)
<P>
<P><EM>Famiglia del processore (Tipo di processore e caratteristiche) <BR>
(nei vecchi kernel: usare il flag -m486 per ottimizzazioni specifiche per
il 486)</EM>
<P>
<P>Tradizionalmente, si traduceva in alcune ottimizzazioni per un
particolare processore; il kernel girava bene anche su altri chip, ma
era un po' pi&ugrave; grande. Comunque, nei nuovi kernel questo non &egrave; pi&ugrave;
vero, quindi si pu&ograve; specificare il processore per il quale si sta
compilando il kernel. Un kernel "386" funzioner&agrave; su tutte le macchine.
<P>
<P>
<H3>SCSI support</H3>

<P>
<P><EM>Supporto SCSI</EM>
<P>
<P>Se si posseggono dispositivi SCSI, si risponda "<CODE>y</CODE>". Saranno
chieste ulteriori informazioni, come il supporto per CD-ROM, dischi e
quale tipo di adattatore SCSI si possiede. Si veda lo SCSI HOWTO per
maggiori dettagli.
<P>
<P>
<H3>Network device support</H3>

<P>
<P><EM>Supporto ai dispositivi di rete</EM>
<P>
<P>Se si ha una scheda di rete o si vuole usare SLIP, PPP o un
adattatore per porta parallela per connettersi a Internet, si
risponda "<CODE>y</CODE>". Lo script di configurazione chieder&agrave; poi il
tipo di scheda che si possiede e quale protocollo usare.
<P>
<P>
<H3>Filesystems</H3>

<P>
<P><EM>Filesystem</EM>
<P>
<P>Lo script di configurazione chiede se si vuole il supporto per i
seguenti filesystem:
<P>
<P>Standard (minix) - Le distribuzioni pi&ugrave; nuove non creano filesystem
minix e molti non lo usano pi&ugrave;, ma pu&ograve; ancora essere una buona idea
configurarlo. Alcuni programmi per la creazione di dischi di
ripristino lo usano e molti dischetti hanno ancora un
filesystem minix, poich&eacute; minix &egrave; meno complicato da usare su un dischetto.
<P>
<P>Second extended (ext2) -- Questo &egrave; il filesystem standard di Linux.
Sicuramente se ne ha uno di questo tipo e si deve rispondere "<CODE>y</CODE>".
<P>
<P>msdos -- Se si vogliono usare partizioni MS-DOS del disco fisso o
montare dischetti formattati in DOS, si risponda "<CODE>y</CODE>".
<P>
<P>Sono disponibili diversi altri tipi di filesystem di altri sistemi
operativi.
<P>
<P>/proc -- (un'idea dei Bell Labs, penso). Non si crea un vero filesystem
proc in un disco; &egrave; un interfaccia stile filesystem al kernel e ai processi.
Molti visualizzatori di processi (come "<CODE>ps</CODE>") lo usano.
Magari si provi "<CODE>cat /proc/meminfo</CODE>" o "<CODE>cat
/proc/devices</CODE>". Alcune shell (rc, in particolare) usano
<CODE>/proc/self/fd</CODE> (noto come <CODE>/dev/fd</CODE> su altri sistemi)
per l'I/O. Si deve certamente rispondere "<CODE>y</CODE>" a questa
domanda, molti strumenti importanti dipendono da <CODE>/proc</CODE>.
<P>
<P>NFS -- Se la propria macchina sta su una rete e si vogliono usare
filesystem che risiedono fisicamente su altri sistemi con NFS, si risponda "<CODE>y</CODE>".
<P>
<P>ISO9660 -- Presente nella maggior parte dei CD-ROM. Se si ha un
lettore CD-ROM e lo si vuole usare sotto Linux, si risponda "<CODE>y</CODE>".
<P>
<P>
<H3>Ma io non so di quali filesystem ho bisogno!</H3>

<P>
<P>Ok, basta digitare "<CODE>mount</CODE>". L'output sar&agrave; una cosa del genere:
<P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
    blah# mount
    /dev/hda1 on / type ext2 (defaults)
    /dev/hda3 on /usr type ext2 (defaults)
    none on /proc type proc (defaults)
    /dev/fd0 on /mnt type msdos (defaults)
</PRE>
</CODE></BLOCKQUOTE>
<P>Si osservi ogni riga; la parola dopo "<CODE>type</CODE>" &egrave; il tipo di
filesystem. In questo esempio, i filesystem <CODE>/</CODE> e
<CODE>/usr</CODE> sono ext2, si sta usando <CODE>/proc</CODE> e c'&egrave;
un dischetto montato usando il filesystem msdos (bleah!).
<P>Si pu&ograve; provare "<CODE>cat /proc/filesystems</CODE>" se si ha
<CODE>/proc</CODE> attualmente abilitato; elencher&agrave; i filesystem presenti
nel kernel corrente.
<P>La configurazione di filesystem raramente usati e non critici pu&ograve; causare un inutile 
aumento delle dimensioni del kernel; si veda la sezione sui moduli per sapere come 
evitarlo e la sezione "Alcuni trabocchetti" per capire perch&eacute; non &egrave; desiderabile un 
kernel voluminoso.
<P>
<P>
<H3>Character devices </H3>

<P>
<P><EM>Dispositivi a carattere</EM>
<P>
<P>Qui si abilitano i driver per la propria stampante (parallela), per il
busmouse, per il mouse PS/2 (molti portatili usano il protocollo del
mouse PS/2 per le loro trackball), per alcuni dispositivi a nastro e
altri dispositivi "a carattere" di questo tipo. Si risponda
"<CODE>y</CODE>" quando appropriato.
<P>
<P>Nota: <CODE>gpm</CODE> &egrave; un programma che permette l'uso di un mouse fuori 
dall'ambiente X per il "taglia e incolla" tra le console virtuali. &Egrave; piuttosto carino 
se si ha un mouse seriale, poich&eacute; coesiste bene con X, ma necessita di trucchi particolari 
con altri tipi di mouse.
<P>
<P>
<H3>Sound</H3>

<P>
<P><EM>Audio</EM>
<P>
<P>Se si desidera ardentemente di sentire qualche bel <CODE>bau bau</CODE>, si
risponda "<CODE>y</CODE>" e si potr&agrave; confessare tutto sulla propria
scheda audio al programma di configurazione (una nota sulla
configurazione della scheda audio: quando viene chiesto se si vuole
installare la versione completa del driver, si pu&ograve; rispondere
"<CODE>n</CODE>" per risparmiare un po' di memoria scegliendo solo le
caratteristiche che si giudicano necessarie).
<P>
<P>Se si &egrave; seriamente interessati al supporto per la scheda audio, si dia
un'occhiata sia ai driver libero a
<CODE>http://www.linux.org.uk/OSS/</CODE> sia all'Open Sound System
commerciale a <CODE>http://www.opensound.com/</CODE>.
<P>
<P>
<H3>Altre opzioni di configurazione</H3>

<P>
<P>Non sono state elencate tutte le opzioni di configurazione perch&eacute;
cambiano troppo spesso o sono piuttosto banali (per esempio "3Com
3C509 support" per compilare il device driver per questa particolare
scheda Ethernet). C'&egrave; una lista esaustiva di tutte le opzioni (pi&ugrave;
un metodo per metterle nello script <CODE>Configure</CODE>) in un lavoro
avviato e mantenuto da Axel Boldt (<CODE>boldt@math.ucsb.edu</CODE>) e nel
suo help in linea. &Egrave; pure disponibile come un unico grosso file in
<CODE>Documentation/Configure.help</CODE> nel proprio albero dei sorgenti
del kernel a partire dalla versione 2.0.
<P>
<P>
<H3>Kernel hacking </H3>

<P>
<P>>Dal README di Linus:
<P>
<BLOCKQUOTE>
con la configurazione per il "kernel hacking" solitamente si 
ottiene un kernel pi&ugrave; grosso o pi&ugrave; lento (o entrambi), spesso
meno stabile a causa di alcune routine che provano attivamente a 
rompere codice scorretto per scovare problemi nel kernel (kmalloc()). 
Quindi probabilmente si dovrebbe rispondere "n" alla domanda in caso 
si voglia compilare un kernel di produzione.
</BLOCKQUOTE>
<P>
<P>
<H2><A NAME="ss4.4">4.4 E adesso? (Il Makefile) </A>
</H2>

<P>
<P>Dopo aver finito la configurazione, un messaggio comunica che il
proprio kernel &egrave; stato configurato, e di "controllare il
<CODE>Makefile</CODE> di livello pi&ugrave; alto per ulteriori configurazioni"
("check the top-level <CODE>Makefile</CODE> for additional
configuration") ecc.
<P>
<P>Quindi, si dia un'occhiata al <CODE>Makefile</CODE>. Probabilmente non
sar&agrave; necessario modificarlo, ma non pu&ograve; far male guardarlo. Si
possono pure cambiare le sue opzioni con il comando "<CODE>rdev</CODE>"
una volta installato il nuovo kernel. Se ci si perde guardando quel
file, non c'&egrave; da preoccuparsi.
<P>
<P>
<HR>
<A HREF="Kernel-HOWTO-5.html">Avanti</A>
<A HREF="Kernel-HOWTO-3.html">Indietro</A>
<A HREF="Kernel-HOWTO.html#toc4">Indice</A>
</BODY>
</HTML>