Sophie

Sophie

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

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: Compilare il kernel </TITLE>
 <LINK HREF="Kernel-HOWTO-6.html" REL=next>
 <LINK HREF="Kernel-HOWTO-4.html" REL=previous>
 <LINK HREF="Kernel-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="Kernel-HOWTO-6.html">Avanti</A>
<A HREF="Kernel-HOWTO-4.html">Indietro</A>
<A HREF="Kernel-HOWTO.html#toc5">Indice</A>
<HR>
<H2><A NAME="s5">5. Compilare il kernel </A></H2>

<P>
<P>
<H2><A NAME="ss5.1">5.1 Far pulizia e sistemare le dipendenze </A>
</H2>

<P>
<P>Quando termina lo script di configurazione, dice pure di dare 
"<CODE>make dep</CODE>" e (possibilmente) "<CODE>make clean</CODE>".
Quindi, si faccia il "<CODE>make dep</CODE>". Ci&ograve; assicura che tutte le
dipendenze, come i file include, siano a posto. Non ci mette tanto, a
meno che il proprio computer non sia piuttosto lento. Per le vecchie
versioni del kernel, quando terminava, si doveva fare un "<CODE>make
clean</CODE>". Ci&ograve; rimuoveva tutte i file oggetto e alcune altre cose
che le vecchie versioni lasciavano in giro. In ogni caso, <I>non</I>
si dimentichi questo passo prima di provare a ricompilare il kernel.
<P>
<P>
<H2><A NAME="ss5.2">5.2 Tempo di compilazione </A>
</H2>

<P>
<P>Dopo il <CODE>make dep</CODE> ed il <CODE>make clean</CODE>, si pu&ograve; dare "<CODE>make bzImage</CODE>" 
o "<CODE>make bzdisk</CODE>" (questa &egrave; la parte che richiede un tempo pi&ugrave; lungo). 
"<CODE>make bzImage</CODE>" compiler&agrave; il kernel e lascer&agrave; (tra le altre cose) in 
<CODE>arch/i386/boot</CODE> un file chiamato "<CODE>bzImage</CODE>". Questo &egrave; il nuovo kernel 
compresso. "<CODE>make bzdisk</CODE>" fa la stessa cosa, ma piazza pure il nuovo
<CODE>bzImage</CODE> su un dischetto che si spera sia stato messo nel lettore "A:". 
"<CODE>bzdisk</CODE>" &egrave; piuttosto comodo per verificare un nuovo kernel; se si pianta (o 
semplicemente non funziona bene), basta solo rimuovere il dischetto e riavviare il sistema 
con il proprio vecchio kernel. &Egrave; pure un modo comodo di fare il boot se
accidentalmente si cancella il proprio kernel (o capitano altre cose ugualmente
terribili). Lo si pu&ograve; pure usare per installare un nuovo sistema
quando si &egrave; semplicemente scaricato il contenuto di un disco in un
altro ("tutto questo e molto altro ancora! ORA quanto vorresti pagare?").
<P>
<P>Tutti i kernel ragionevolmente recenti sono compressi, da qui il
"<CODE>bz</CODE>" di fronte al nome. Un kernel compresso si decomprime
da solo automaticamente quando eseguito.
<P>Nei kernel pi&ugrave; vecchi, non c'era l'opzione per costruire un
<CODE>bzImage</CODE>; era semplicemente un <CODE>zImage</CODE>. Tale
opzione al momento &egrave; ancora disponibile ma comunque, data la dimensione
del codice dei nuovi kernel, ora &egrave; pi&ugrave; o meno obbligatorio compilare
un <CODE>bzImage</CODE> perch&eacute; il vecchio metodo non riesce a gestire
kernel molto grossi.
<P>
<P>
<H2><A NAME="ss5.3">5.3 Altri "make"</A>
</H2>

<P>
<P>"<CODE>make mrproper</CODE>" &egrave; come un "<CODE>make clean</CODE>" molto pi&ugrave; accurato.
Qualche volta &egrave; necessario; si pu&ograve; desiderare di farlo dopo aver
applicato una patch. "<CODE>make mrproper</CODE>" canceller&agrave; anche il
file di configurazione e quindi conviene salvarselo
(<CODE>.config</CODE>) se si pensa che pu&ograve; essere utile.
<P>
<P>"<CODE>make oldconfig</CODE>" prover&agrave; a configurare il kernel da un
vecchio file di configurazione; eseguir&agrave; da solo tutto il processo
"<CODE>make config</CODE>". Se non si &egrave; mai compilato un kernel prima o
non si possiede un vecchio file di configurazione, allora
probabilmente non lo si dovrebbe fare, in quanto molto probabilmente
si vorr&agrave; modificare la configurazione predefinita.
<P>
<P>Si veda la sezione sui moduli per una descrizione di "<CODE>make modules</CODE>".
<P>
<P>
<H2><A NAME="ss5.4">5.4 Installare il kernel </A>
</H2>

<P>
<P>Quando si ha un kernel che sembra funzionare nel modo desiderato, allora &egrave; il momento 
di installarlo. Molti usano LILO (LInux LOader) per questo. "<CODE>make bzlilo</CODE>" 
installer&agrave; il kernel, lancer&agrave; LILO e preparer&agrave; tutto per il boot, MA SOLO se lilo &egrave; 
configurato nel proprio sistema nel modo seguente: il kernel &egrave; <CODE>/vmlinuz</CODE>, lilo 
&egrave; in <CODE>/sbin</CODE> e il file di configurazione di lilo (<CODE>/etc/lilo.conf</CODE>) &egrave;  
coerente con tutto ci&ograve;.
<P>
<P>Altrimenti, &egrave; necessario usare LILO direttamente. &Egrave; un pacchetto
abbastanza semplice da installare e da usare, ma ha la tendenza a
confondere la gente con il file di configurazione. Si dia un'occhiata
al file di configurazione (<CODE>/etc/lilo/config</CODE> per le vecchie
versioni oppure <CODE>/etc/lilo.conf</CODE> per quelle nuove) e si veda
qual &egrave; l'impostazione corrente. Il file di configurazione &egrave; simile a
questo:
<P>
<P>
<PRE>
    image = /vmlinuz
        label = Linux
        root = /dev/hda1
        ...
</PRE>
<P>"<CODE>image =</CODE>" &egrave; impostato al kernel attualmente installato. La
maggior parte della gente usa <CODE>/vmlinuz</CODE>. "<CODE>label</CODE>" &egrave;
usato da lilo per determinare quale kernel o sistema operativo
avviare, "<CODE>root</CODE>" &egrave; la <CODE>root</CODE> ("/") di quel particolare sistema
operativo. Si faccia una copia di backup del vecchio kernel e si copi
il <CODE>bzImage</CODE> appena creato al suo posto (si dovr&agrave; dare "<CODE>cp
bzImage /vmlinuz</CODE>" se si usa "<CODE>/vmlinuz</CODE>"). Poi, si
rilanci lilo: su un nuovo sistema si pu&ograve; semplicemente lanciare
"<CODE>lilo</CODE>", ma in uno vecchio si dovr&agrave; fare
<CODE>/etc/lilo/install</CODE> o addirittura <CODE>/etc/lilo/lilo -C
/etc/lilo/config</CODE>.
<P>
<P>Se si vuol saperne di pi&ugrave; sulla configurazione di LILO, o non si ha
LILO, si prenda la versione pi&ugrave; recente dal proprio sito ftp preferito
e si seguano le istruzioni.
<P>
<P>Per avviare uno dei propri vecchi kernel dal disco fisso (un altro
modo per salvarsi nel caso si facciano casini con il nuovo), si copino
le righe che seguono "<CODE>image = xxx</CODE>" (compresa) alla fine del
file di configurazione di LILO e si modifichi "<CODE>image = xxx</CODE>"
in "<CODE>image = yyy</CODE>", dove "<CODE>yyy</CODE>" &egrave; il percorso completo
del file in cui si fatto il backup del kernel. Poi si cambi
"<CODE>label = zzz</CODE>" in "<CODE>label = linux-backup</CODE>" e si rilanci
<CODE>lilo</CODE>. Pu&ograve; essere necessario mettere nel file di
configurazione una riga con "<CODE>delay=x</CODE>", dove x &egrave;
il numero di decimi di secondo che LILO dovr&agrave; attendere prima di fare il boot, 
in modo da poterlo interrompere (con il tasto shift, per esempio), e inserire 
l'etichetta della immagine di boot di backup (nel caso succedano cose non proprio 
piacevoli).
<P>
<P>
<HR>
<A HREF="Kernel-HOWTO-6.html">Avanti</A>
<A HREF="Kernel-HOWTO-4.html">Indietro</A>
<A HREF="Kernel-HOWTO.html#toc5">Indice</A>
</BODY>
</HTML>