Emacs e archivi - Copertina - Tips |
Articoli
Molti hanno avuto problemi nella ricompilazione del kernel, soprattutto con la distribuzione RedHat 5.0. La procedura non è complicata, ma ci sono alcune cose da sapere prima.
Qusto documento è tratto dalla guida utente della RedHat, quindi seguendo le istruzioni alla lettera, la ricompilazione riuscirà sicuramente sulla RedHat 5.0. Per quanto riguarda le altre distribuzioni, non ci dovrebbero essere particolari problemi, le differenze saranno elencate passo-passo.
Si presuppone la conoscenza delle partizioni della propria macchina, il
nome della partizione deve avete installato linux e di quella dove è
installato windows. Inoltre dovete sapere come editare un file di testo ed
avere una certa pratica nell'utilizzo dei comandi basilari di Unix:
cp
, mv
, rm
, cd
,
tar
, ln
, ecc.
Se vi manca una delle cognizioni elencate sopra NON RICOMPILATE IL KERNEL, perché avete buone possibilità di combinare qualche casino da cui non sarà facile uscire.
Prima di cominciare va detto che il kernel della distribuzione
RedHat 5.0 contenuta nella rivista DEV che molti hanno installato è
difettoso; ho sentito anche di persone che hanno avuto problemi di
ricompilazione del kernel (sempre della RedHat) con il pacchetto Infomagic.
Credo che questo dipenda dal fatto che la RedHat utilizza i pacchetti
rpm
(Redhat Package Manager) per tutto il software, sorgenti
del kernel compresi.
Quindi la prima cosa da fare è procurarsi un kernel funzionante da
ftp://ftp.kernel.org lasciando perdere,
almeno per quanto riguarda i sorgenti del kernel, i pacchetti
rpm
e di utilizzare i pacchetti tar.gz
. Per molte
altre applicazioni, i pacchetti rpm
sono molto comodi ed è
consigliabile usarli, anche per la facilità di gestione.
Dopo essersi procurati i sorgenti, ad esempio il file
linux-2.0.33.tar.gz
, bisogna copiarlo nella directory
/usr/src
, posizionarsi nella suddetta directory e scompattarlo
con:
tar zxvf linux-2.0.33.tar.gz
Quindi creare il link simbolico ai nuovi sorgenti con:
ln -s linux.2.0.33 linux
Molti avranno bisogno di patchare il kernel, perché la fat32 di windows95 (la versione nuova) non è supportata dal kernel fino a 2.0.33 compreso.
Il file di patch lo trovate a
http://www.linuxhq.com/patch/20-p0245.html
Copiare il file nella dir /usr/src
e decomprimerlo con
gunzip
.
Applicare la patch al kernel con:
patch -p0 < file_di_patch > error
Se la patch ha avuto successo (cioè se il file error è di 0 byte) si può cominciare con la ricompilazione.
La sequenza delle operazioni da fare è questa:
make mrproper
make xconfig make menuconfig make config
I tre comandi, dal punto di vista della configurazione del sistema, sono equivalenti. Le differenze sono nell'aspetto dell'interfaccia:
make xconfig
è grafico in e quindi funziona solo in X.
make menuconfig
funziona ovunque ed è simile ai menu di installazione
di linux.
make config
è solo testuale (è il metodo che funziona
dappertutto).
Ricordarsi di mettere YES
alle voci
kerneld support (CONFIG_KERNELD
) e
module version (CONFIG_MODVERSION
).
Dare i comandi:
make dep make clean
Costruzione del kernel con:
make boot
Il nuovo kernel adesso si trova in
/usr/src/linux/arch/i386/boot
,
il file si chiama zImage
.
Costruzione dei moduli con:
make modules
Adesso bisogna spostare i vecchi moduli e installare i nuovi con i tre comandi:
rm -rf /lib/modules/2.0.33-old mv /lib/modules/2.0.33 /lib/modules/2.0.33-old make modules_install
Questo va fatto anche se non è stato configurato nessun modulo.
Per ultimo va copiato il kernel nella giusta posizione e riconfigurato LILO:
mv /boot/vmlinuz /boot/vmlinuz.old cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz
Riconfigurazione di LILO:
Il file /etc/lilo.conf
dovrebbe avere un sezione per windows
e una più sezioni per Linux che cominciano con il comando image
.
Questo dovrebbe essere quello di default:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz label=linux root=/dev/hdb1 read-only other=/dev/hda1 label=windows table=/dev/hda
Questa configurazione installa LILO sul Master Boot Record (linea1:
boot=/dev/hda
) e fa partire Linux (di default) da
/dev/hdb1
e windows (label=windows
)
da /dev/hda1
.
Questo invece è il mio file /etc/lilo.conf
:
boot=/dev/fd0 map=/boot/map install=/boot/boot.b prompt timeout=50 other=/dev/hda1 label=windows table=/dev/hda image=/boot/vmlinuz label=linux root=/dev/hdb1 read-only image=/boot/vmlinuz-old label=old root=/dev/hdb1 read-only
Questa configurazione installa LILO su un floppy disk (linea 1:
boot=/dev/fd0
) e fa partire Windows (di default) da
/dev/hda1
e Linux con due kernel differenti:
label=linux
) che carica il nuovo kernel da
/dev/hdb1
label=old
) che carica il vecchio kernel sempre
da /dev/hdb1
Bisogna aggiungere (per sicurezza) un'altra opzione di partenza che
carichi il vecchio kernel funzionante, nel caso il nuovo kernel non
funzionasse; questo è il motivo della sezione old
.
Ovviamente sostituite /dev/hdb1
se avete installato linux
su una partizione diversa
/etc/lilo.conf
bisogna
eseguire:
/sbin/lilo
Che riscriverà LILO.
Attenzione: visto che avete spostato il kernel,
dovete eseguite /sbin/lilo
altrimenti è possibile che Linux non
riparta più.
Adesso riavviando il computer Linux dovrebbe ripartire con il nuovo kernel.
Emacs e archivi - Copertina - Tips |