Ti incollo la parte relativa della mia guida, se hai dubbi poi chiedi:
4) Il kernel-package di debian
Se utilizzate una debian, avrete un tool pensato ad-hoc per semplificare la (ri)compilazione del
kernel, che funziona sia con i 2.4 sia con i 2.6 indistintamente. A dire il vero potreste utilizzare
anche il metodo classico descritto in precedenza, funzionerà, ma l'utilizzo del kernel-package
rende più facile e ordinato il tutto, inoltre è sempre meglio attenersi ai metodi propri di una
distribuzione per evitare eventuali problemi di incompatibilità in seguito.
Quindi, come sempre, vediamo prima i requisiti: vi servirà ovviamente il pacchetto kernel-package
stesso, oltre ai sorgenti del kernel che volete installare, alle modutils (se è un 2.4) o ai
module-init-tools (se è un 2.6), e alle ncurses per utilizzare il menuconfig. Ovviamente gcc e libc
sono dati per scontati. Ad esempio se avete deciso di mettere un 2.6.4 potreste dare
# apt-get install kernel-package kernel-source-2.6.4 module-init-tools libncurses5-dev
Bene, ora spostatevi in /usr/src e scompattate i sorgenti, cambiando poi il link simbolico linux:
# cd /usr/src/
# tar -xjf kernel-source-2.6.4.tar.bz2
# rm -f linux
# ln -s kernel-source-2.6.4 linux
Spostatevi nella directory /usr/src/linux e passate a configurare il kernel: vale quanto detto in
precedenza, ossia potete copiarci il vecchio config (che trovate in /boot e che copiereste qui con
il nome ".config") solo se state trattando kernel della stessa famiglia, mentre se passate da un 2.4
a un 2.6 non fatelo; avrete diverse interfacce disponibili, ma la migliore nonchè valida per i kernel
di qualunque famiglia è menuconfig. Dunque
# cd /usr/src/linux
# cp /boot/config-2.6.0 ./.config
# make menuconfig
al posto di menuconfig potete usare oldconfig se state cambiando tra due release (entrambe 2.6.x)
particolarmente vicine tra loro, dovrete così solo rispondere alle domande relative i cambiamenti tra
l'una e l'altra. Potete anche usare prima oldconfig e poi menuconfig se dovete fare altre modifiche.
Fate le vostre scelte come sempre quindi, dopodichè uscite, salvate e preparatevi alla compilazione.
E' qui che entra in gioco il kernel-package: con due semplici comandi potrete fare un po' di pulizia
e successivamente compilare kernel e moduli; vi si creerà un normalissimo pacchetto deb che conterrà
il nuovo kernel da installare normalmente con dpkg.
Un paio di appunti sulle opzioni che è possibile passare in fase di compilazione: il nome del
pacchetto che creerete sarà così strutturato:
* kernel-image-(kernel-version)(--append-to-version)_(--revision)_(architecture).deb
(kernel-version) è ovviamente la release del kernel (in questo caso 2.6.4), (architecture) è
l'architettura del vostro calcolatore (i386 nei normali PC), mentre le altre due sono due opzioni
che potrete passare al comando di compilazione: (--append-to-version) definisce un suffisso che
andrà a finire direttamente nel nome del kernel, potrete usarla ad esempio per differenziare due
kernel della stessa release ma compilati in due date differenti. Nel suo nome potrete usare i
caratteri '-', '.', '+', ma non '_' (underscore). Se non specificate un'append diverso durante una
ricompilazione, sovrascriverete l'attuale kernel (moduli compresi), quindi è consigliabile usare
sempre quest'opzione, anche per una questione di ordine. (--revision) invece è un ulteriore suffisso
che andrà a porsi nel nome del pacchetto deb creato ma non nel nome del kernel; modificare questo
parametro quindi non vi salverà da eventuali sovrascritture, non è che sia utilissimo a dire il vero,
il suo nome di default è "10.00.Custom".
Passiamo quindi all'azione dando i seguenti comandi (sempre dalla directory dei sorgenti):
# make-kpkg clean
# make-kpkg --append-to-version=-26mar04 kernel_image kernel_headers
In questo modo avrete creato due pacchetti deb, l'immagine del kernel e i suoi header (che possono
servire per qualche applicazione che li richieda espressamente): li troverete in /usr/src e avranno
nome
* kernel-image-2.6.4-26mar04_10.00.Custom_i386.deb
* kernel-headers-2.6.4-26mar04_10.00.Custom_i386.deb
rispettivamente.
Per installarli procedete con dpkg:
# cd ..
# dpkg -i kernel-image-2.6.4-26mar04_10.00.Custom_i386.deb kernel-headers-2.6.4-26mar04_10.00.Custom_i386.deb
Al termine dell'installazione vi verranno poste tre domande:
1) se volete creare un floppy di ripristino (bootdisk).
Potrebbe essere una buona idea rispondere sì, se non ne avete già uno; in ogni caso potete farlo
quando volete con mkboot.
2) se volete installare un bootblock usando l'/etc/lilo.conf attuale.
Rispondete di no, o tenterà di avviare il nuovo kernel mantenendo le impostazioni del vecchio, e non
partirà nulla...
3) se volete sostituire il lilo.conf attuale con uno nuovo predisposto per far partire il nuovo kernel.
Rispondete di no anche a questa, è meglio fare tutto manualmente, si è più sicuri di quel che si fa :P
L'unica cosa che vi resta da fare ora è proprio impostare il bootloader, come più volte descritto
nelle sezioni precedenti. Fatelo dunque, riavviate e controllate che sia tutto a posto.
Ora potete anche eliminare (o spostare altrove) i pacchetti deb creati, e volendo potete anche
cancellare il link "linux" in /usr/src.
He who is not bold enough to be stared at from across the abyss
is not bold enough to stare into it himself.