Ricompilazione del kernel Linux
|
Compilare il
kernel Linux
|
Questa, fra tutte le operazioni che potete effettuare
con Linux, è senz'altro la più mistica. Per gli utenti Linux,
ricompilare il kernel non è una semplice operazione di manutenzione,
come cambiare l'olio all'auto o spolverare; è un gesto altamente
spirituale, una sorta di rito di purificazione dell'anima. Abbiate
rispetto per il luogo sacro nel quale state per entrare.
Misticismo a parte, ci sono delle ottime ragioni per ricompilare il
kernel. La prima, ovviamente, è dimostrare che siete veri linuxiani (un
vero utente Linux non si accontenta del pacchetto preconfezionato; ci
deve smanettare). Poi ci sono delle motivazioni pratiche:
- Snellire. Il kernel standard fornito con i CD di
installazione è un modello universale, tipo temperino svizzero, adatto
un po' per tutti i computer e tutti i componenti hardware, ma
contenente una sovrabbondanza di accessori inutili per il vostro caso
specifico. Ricompilandolo, si eliminano i driver relativi a dispositivi
che non sono presenti nel vostro computer e quindi il kernel occupa
meno spazio in memoria. Lo spazio liberato diventa disponibile per
eseguire altri programmi.
- Ottimizzare. Il kernel può essere impostato in modo da
sfruttare le caratteristiche specifiche del vostro particolare modello
di processore, consentendo elaborazioni più rapide ed efficienti.
- Aggiornare. Periodicamente il kernel di Linux viene
aggiornato per perfezionarlo o consentirgli di gestire nuovi componenti
hardware. La ricompilazione serve per includere questi aggiornamenti
nella vostra installazione senza dover reinstallare tutto il sistema
operativo. Gli aggiornamenti di Linux, ovviamente, sono gratuiti; in
Windows, invece, in genere è necessario comperare la nuova versione
dell'intero sistema operativo o installare delle “pezze” (patch), e in
caso di reinstallazione occorre reinstallare anche tutte le pezze.
Quello descritto qui non è senz'altro l'unico modo per compilare un
kernel di Linux. Come capita spesso in questo sistema operativo, ci
sono tantissimi modi diversi per ottenere lo stesso risultato. Non
stupitevi, quindi, se trovate altrove una descrizione molto diversa
della procedura di compilazione.
Materiale occorrente
Cominciamo con un caso abbastanza semplice: una ricompilazione della
versione già installata del kernel per rimuoverne le parti non
necessarie per la vostra specifica configurazione hardware.
Innanzi tutto occorre che siano presenti sul disco i cosiddetti
sorgenti del kernel: gli “ingredienti” di base che lo compongono e che
la ricompilazione “impasta” per ottenere il kernel cotto a puntino.
Trovate tutti i file necessari sul CD della vostra
distribuzione.
Terminata l'installazione dei pacchetti necessari, siete pronti per la
fase successiva. Aprite una finestra di terminale e digitate cd
/usr/src/linux per andare nella directory che contiene i sorgenti.
Tecnicamente, la directory /usr/src/linux non esiste: è in realtà un
link simbolico che porta alla vera directory che effettivamente
contiene i sorgenti, che è in genere /usr/src/linux-x.x.x (dove x.x.x è
il numero di versione del kernel). Ma per ora non preoccupatevi di
questo dettaglio.
Scelta dei componenti
Dalla directory /usr/src/linux, digitate make xconfig: questo lancia un
questionario grafico, nel quale dovete scegliere quali parti del kernel
volete includere e quali no. Ahimè, il programma-questionario è tutto
in inglese: attendiamo con fiducia e impazienza una traduzione italiana.
Questa fase della compilazione del kernel consiste semplicemente nel
cliccare un pulsante dopo l'altro di questa schermata di
configurazione, procedendo per colonne partendo dall'angolo superiore
sinistro. Ad ogni pulsante corrisponde una serie di scelte. Nel
complesso, queste scelte definiscono la configurazione del nostro
kernel “su misura” e la registrano in un file che verrà poi usato come
traccia per generare il kernel.
Per ciascuna scelta ci sono sempre almeno due risposte possibili: y
(cioè “sì”) e n (“no”). Fin qui non sembra troppo difficile, vero? Il
guaio è che molte scelte presentano anche una terza risposta: una
misteriosa “m”. Visto la difficoltà di certe scelte a cui dovrete
rispondere, verrebbe spontaneo pensare che stia per “Mah!”.
Purtroppo non è così. La M sta per “modulo”, e richiede una spiegazione
di come funziona il kernel di Linux. Non è una materia molto
stimolante, ma che ci volete fare, non l'ho inventata io. Cercherò di
renderla meno soporifera con un esempio.
Immaginate di dover preparare le valigie per un viaggio. Se non sapete
che clima vi attende a destinazione, dovrete portare un po' di tutto,
dal costume da bagno alle mutande termiche, dalla crema solare ai
guanti imbottiti. Risultato: siete sicuramente ben attrezzati per
qualsiasi evenienza, ma i vostri bagagli sono mostruosamente pesanti e
c'è il rischio che vi facciano pagare il sovrappeso al check-in. Le
vostre valigie sono come il kernel standard di Linux: contengono un po'
di tutto in modo da coprire sicuramente ogni eventualità, ma di certo
includono molte cose ingombranti che non userete.
Ovviamente, se sapete che tempo fa nel vostro luogo di arrivo, potete
preparare una valigia molto più leggera che contiene soltanto quello
che davvero vi serve: se andate ad Acapulco, infilate in valigia
costume e crema, ma lasciate a casa mutande termiche e guanti. Questo
equivale a compilare un kernel su misura per il vostro computer:
sfrondate il superfluo per viaggiare più leggeri.
C'è anche una terza via: saltare in aeroplano senza bagagli, portando
soltanto documenti e carta di credito per comperare tutto il necessario
quando arrivate a destinazione, e soltanto se e quando vi serve. Così
siete sicuri di non portarvi appresso roba inutile e se diluvia non
avrete comperato invano la crema solare; tuttavia perderete un po' di
tempo a procurarvela in caso di improvviso solleone. Questo approccio è
l'equivalente di rispondere m a una scelta del programma di
configurazione: la parte di codice corrispondente non viene integrata
direttamente nel file di kernel ma viene memorizzata separatamente sul
disco rigido, con istruzioni per richiamarla e caricarla soltanto se e
quando serve.
In altre parole, la compilazione permette di assemblare i vari pezzi
del kernel in due modi diversi: integrandoli in un unico file oppure
mantenendoli in più file separati. Potete anche mescolare le due
tecniche e ottenere un kernel un po' monolitico e un po' modulare: per
tornare all'esempio vacanziero, è un po' come partire con lo spazzolino
da denti e un cambio di biancheria, le cose più indispensabili, ma
comperare il resto sul posto.
Le tre scelte hanno rispettivi vantaggi e svantaggi:
- Se un pezzo di kernel dedicato a un dispositivo non
viene incluso del tutto (rispondendo n), il kernel diventa più piccolo
e quindi occupa meno memoria, e lo spazio occupato su disco da Linux si
riduce; tuttavia, se il computer è dotato di quel dispositivo, Linux
non potrà gestirlo.
- Se includete una parte di kernel direttamente nel
file primario del kernel medesimo (rispondendo y), il dispositivo
gestito da quella parte di kernel verrà gestito da Linux nel modo
migliore e più veloce possibile, ma al prezzo di un'occupazione
supplementare di spazio in memoria.
- Se rispondete m per rendere disponibile a Linux una
parte di kernel (un modulo, appunto) senza integrarla direttamente nel
file primario del kernel stesso, non aumenterete l'occupazione di
memoria del kernel e potrete comunque gestire, all'occorrenza, il
dispositivo a cui quella parte di kernel è dedicata; per contro, dato
che Linux deve leggere quella parte di kernel dal disco rigido invece
che dalla memoria, i suoi tempi di reazione saranno più lunghi.
La regola generale, quindi, è rispondere y a tutte le scelte che
riguardano funzioni o dispositivi che usate molto spesso, m per quelli
che vi possono servire saltuariamente, e n per quelli che sicuramente
non vi serviranno mai. Se non avete idea di che cosa tratti una
determinata scelta, non modificate le sue impostazioni.
Tutto chiaro? Allora cominciamo il questionario. Nelle pagine che
seguono, Odo e io abbiamo raccolto un po' di consigli su cosa includere
e cosa escludere nella compilazione di un kernel su misura. Ovviamente,
siccome le vostre esigenze possono essere diverse dalle nostre, quello
che è su misura per noi non è detto che lo sia anche per voi, ma è
probabile che lo sia, visto che siamo partiti dal presupposto che
abbiate un computer abbastanza generico e privo di accessori troppo
stravaganti.
Non è necessario che completiate tutto il questionario in un'unica
sessione. In qualsiasi momento potete tornare al menu principale del
programma di configurazione, cliccare su Save and Exit per salvare le
impostazioni fatte fino a quel punto e uscire dal programma di
configurazione. Potete proseguire il questionario in un secondo
momento: basta rilanciare il programma, che ricaricherà automaticamente
le impostazioni che avete già fatto.
Voce di menu / Consiglio
- Code maturity level options (opzioni per il livello
di maturità del codice)
Se non fate parte del team di sviluppo di Linux, rispondete n. Questa
scelta, infatti, consente al programma di configurazione di includere
(con richiesta di conferma) parti di kernel non ancora considerate del
tutto stabili che però consentono di gestire funzioni e dispositivi che
il kernel normale non contempla.
- Processor type and features (tipo e caratteristiche
del processore)
Per un corretto funzionamento del kernel è indispensabile scegliere il
tipo di processore giusto in questa schermata. Se avete un processore
superiore al 486sx, potete impostare a n il parametro Math emulation
(emulazione del coprocessore matematico). Per il resto, accettate pure
le impostazioni proposte.
- Loadable module support (supporto per modul caricabili)
Lasciate tutto attivato, altrimenti non potrete usare i moduli per il
kernel.
- General setup (impostazione generale)
Attivate con y l'Advanced Power Management BIOS support se avete un
BIOS che gestisce l'APM: questo consentirà a Linux di spegnere
fisicamente il computer quando chiudete il sistema operativo,
esattamente come fa Windows.
- Plug and Play support (supporto per le funzioni Plug and Play)
Nulla da modificare.
- Block devices (dispositivi a blocchi)
Nulla da modificare, ma ricordate che se avete unità a disco esterne
(ad esempio collegate alla porta parallela), è qui che dovete venire a
regolare le impostazioni del kernel. Se avete un drive ZIP su porta
parallela o volete usare un masterizzatore IDE con programmi concepiti
per drive SCSI, attivate (almeno come modulo) SCSI emulation support.
- Networking options (opzioni di rete)
Disabilitate tutto quel che riguarda IPX (a meno che dobbiate
collegarvi a reti Novell), Appletalk (a meno che dobbiate collegarvi a
macchine Apple) e tutti i riferimenti a X.25.
- QoS and/or fair queuing (qualità del servizio e/o criteri di gestione
equa delle code)
Tutto disattivato.
- Telephony support (supporto per servizi di telefonia)
Tutto disattivato.
- SCSI support (supporto per dispositivi SCSI)
Da attivare soltanto se avete dispositivi SCSI, un drive ZIP su porta
parallela o masterizzatori IDE da usare tramite programmi per
apparecchi SCSI; se li avete, attivate l'opzione SCSI generic support
come modulo.
- SCSI low-level drivers (driver a basso livello per dispositivi SCSI)
Tutto disattivato, salvo abbiate dispositivi SCSI o drive ZIP su porta
parallela.
- Network device support (supporto per dispositivi di rete)
Lasciate tutto com'è, salvo probabilmente disattivare General
instruments Surfboard 1000, FDDI driver support e SBNI12-xx support.
- ARCnet devices (dispositivi ARCnet)
Da attivare soltanto se avete una scheda di rete ARCnet.
- Ethernet (10 or 100 Mbit) (Ethernet a 10 o 100 megabit)
Se avete una scheda di rete Ethernet, scegliete y nella prima opzione
della lista e poi attivate l'opzione corrispondente alla marca e al
modello della vostra scheda. Tenete presente che molte schede di rete
non citate nella lista sono cloni della NE2000 e quindi funzionano se
attivate NE2000/NE1000 support.
- Ethernet 1000 Mbit (Ethernet a 1000 megabit)
Da attivare soltanto se avete una connessione di rete a mille megabit
(altamente improbabile).
- Appletalk devices (dispositivi Appletalk)
Se non avete dispositivi Appletalk, non attivate niente.
- Token ring driver support (supporto per driver Token Ring)
Da attivare soltanto se il vostro computer è collegato a una rete Token
Ring (altamente improbabile).
- Wan interfaces (interfacce Wan)
Lasciate tutto disattivato.
- Amateur Radio support (supporto radioamatori)
Lasciate tutto disattivato, salvo che vogliate collegare il vostro
computer a un impianto di trasmissione radioamatoriale.
- IrDA subsystem support (supporto per sottosistema IrDA)
Da attivare soltanto se avete porte a infrarossi.
- Infrared-port devices (dispositivi con porta a infrarossi)
Da attivare soltanto se avete porte a infrarossi.
- ISDN subsystem (sottosistema ISDN)
Da attivare soltanto se avete una connessione ISDN.
- Old CD-ROM drivers (not SCSI, not IDE) (driver per vecchi drive
CD-ROM non-SCSI e non-IDE)
Da attivare soltanto se avete un lettore di CD-ROM che non è né SCSI né
IDE.
- Character devices (dispositivi a caratteri)
Lasciare tutto invariato. Disattivate QIC-02 tape support, a meno che
abbiate un drive a nastro di questo tipo.
- Mice (tipi di mouse)
Lasciare tutto invariato, a meno che il vostro mouse sia specificato
nell'elenco che viene presentato (improbabile).
- Joysticks (tipi di joystick)
Se avete un joystick, attivate Joystick support (con y o m) e la voce
corrispondente al vostro modello di joystick.
- Watchdog cards (schede watchdog)
Da attivare soltanto se avete una scheda watchdog (molto improbabile).
- Video for Linux (video per Linux)
Da attivare soltanto se avete schede TV/radio o Webcam indicate nella
lista presentata dalla schermata.
- Ftape
Da attivare soltanto se avete un dispositivo a nastro QIC-80/Travan.
- Filesystems (tipi di filesystem supportati)
Attivate come moduli tutti i filesystem che prevedete di utilizzare e
disattivate gli altri. Ad esempio, se avete Linux su un portatile, è
probabilmente inutile attivare il supporto per OS/2.
- Network file systems (filesystem di rete supportati)
Da attivare soltanto se intendete condividere attraverso la rete dischi
installati su altri computer.
- Partition types (tipi di partizione)
Tutto disattivato.
- Native language support (supporto lingue locali)
Attivare come modulo le codepage contrassegnate United States, Europe,
Latin-1e Latin 9 (supporto euro). Le altre codepage sono disattivabili,
salvo che vogliate gestire documenti redatti nelle lingue alle quali si
riferiscono.
- Console drivers (driver per le console)
Attivate le prime due opzioni, VGA text console e Video mode selection
support, se volete usare formati diversi da 80 x 25 caratteri nelle
console.
- Sound (Audio)
Se avete una scheda audio, attivate (con y o m) la prima voce, Sound
card support, e le voci riguardanti il vostro specifico modello di
scheda audio.
Additional low level sound drivers (altri driver audio a basso livello)
Se avete una scheda audio, attivate (con y) la prima voce, Additional
low level sound drivers, e le voci riguardanti il vostro specifico
modello di scheda audio.
- Kernel hacking
Disattivato, sempre e comunque.
Terminate le domande, tornate alla schermata principale del programma
di configurazione e cliccate su Save and Exit se volete salvare la
configurazione nel file standard, sovrascrivendo quella esistente,
oppure cliccate su Store configuration to file per salvare la nuova
configurazione altrove e mantenere quella originale.
A questo punto il file di configurazione è creato e disponibile per
generare il kernel. Se volete, potete fare pausa e proseguire in un
altro momento.
Verifica delle dipendenze
Torniamo un momento all'esempio del viaggio e delle valigie. Se
decidete di portare con voi il telefonino, dovrete portare anche il suo
caricabatterie e i suoi accessori. Portare solo il telefonino, o
soltanto gli accessori, non vi servirebbe a niente. In altre parole, il
telefonino è dipendente dai suoi accessori: non può funzionare senza.
Le dipendenze del kernel di Linux sono molto simili: alcune parti di
kernel non possono funzionare se non sono presenti certe altre parti.
Questa fase del rito di compilazione del kernel serve proprio a
verificare che se avete richiesto di includere una certa funzione
vengano selezionate tutte le parti di codice sorgente direttamente o
indirettamente necessarie per attivarla.
Aprite una finestra di terminale e rendete corrente la directory
/usr/src/linux. Digitate make dep per avviare la verifica delle
dipendenze. La verifica richiede qualche minuto e presenta una quantità
impressionante di messaggi sullo schermo. Se la verifica si blocca con
qualche errore, leggete i messaggi d'errore, sistemate il problema
indicato dai messaggi e poi rilanciate la verifica. Se non riuscite a
ottenere una verifica senza errori, non vi preoccupate: Linux
continuerà a funzionare perché fino a questo punto il kernel attuale
non è stato toccato minimamente.
Un po' di pulizia
Se make dep non ha dato errori, digitate make clean (sempre stando
nella directory /usr/src/linux). Questo elimina i file temporanei
prodotti dalla compilazione, liberando spazio sul disco rigido. In
genere è un'operazione molto rapida.
A proposito di pulizia, preparate un dischetto, anche formattato in
formato DOS; l'importante è che sia vuoto. Quello che vi propongo,
infatti, è di creare il nuovo kernel su un floppy di avvio, lasciando
intatto il kernel attuale. In questo modo, se il nuovo kernel non
funziona per qualsiasi motivo, avete ancora a disposizione il kernel
vecchio.
Commutare fra il kernel nuovo e quello vecchio, con questo sistema, è
estremamente facile. Se volete avviare Linux con il kernel nuovo,
avviate dal dischetto che state per creare. Se volete avviare Linux con
il kernel vecchio (che sicuramente funziona), avviate dal disco rigido
o, se avete rimosso LILO, dal floppy di avvio rapido creato nei
capitoli precedenti. Facile, no?
Generazione vera e propria
Controllate di aver inserito il floppy vuoto nel drive, poi
assicuratevi di essere nella directory /usr/src/linux e date il comando
make bzdisk: si avvia la generazione vera e propria del kernel. Questa
è la parte più lunga del procedimento, ma per fortuna non richiede la
vostra presenza: potete farvi una buona pausa caffè, o dedicarvi ad
altro lavoro, intanto che il nuovo kernel viene generato e poi scritto
sul floppy.
Anche se il dischetto viene scritto alla fine di questa fase, il lavoro
non è ancora finito: digitate make modules, poi preparatevi a un'altra
attesa di diversi minuti.
Quando ricompare il prompt dei comandi, digitate make modules_install.
L'elaborazione risultante è brevissima.
Bene! In teoria a questo punto il vostro nuovo kernel
ottimizzato su misura è pronto per l'uso. Per provarlo, chiudete Linux
e riavviatelo, tenendo il floppy inserito nel drive. Prestate molta
attenzione ai messaggi anomali che potrebbero comparire durante il
riavvio e prendetene nota.
Non è detto che eventuali messaggi di avvertimento siano sintomo di
fallimento: Linux probabilmente sta semplicemente facendo il pignolo e
ricordandovi che c'è ancora qualche perfezionamento da fare. Affidatevi
comunque alle mani esperte di un linuxiano per decifrare il senso dei
messaggi all'avvio.
Se Linux non parte del tutto o si pianta a metà strada, rimuovete il
floppy e riavviate il computer: in teoria ricomparirà il Linux di
sempre, come se nulla fosse accaduto. Se non dovesse succedere,
ricorrete al backup che avete fatto prima di cominciare e rileggete gli
appunti in cui avete preso nota di quello che avete fatto, controllando
di non aver dimenticato nulla.
Se invece Linux parte, fate un giretto qua e là per vedere se
funzionano tutte le periferiche (dischi, stampanti, mouse, scheda di
rete). Tutto a posto? Datevi un pizzicotto. Por verificare che non
state sognando, ma che state davvero eseguendo un kernel che avete
creato con le vostre mani, aprite una finestra di terminale e digitate
uname -a. Come già accennato, compare un messaggio che specifica la
versione di kernel in esecuzione e, cosa più importante, la sua data di
compilazione. Se è quella di oggi, state davvero eseguendo il vostro
kernel “fai da te”.
Sostituire il kernel
Una volta che vi siete sincerati che il nuovo
kernel funziona bene, potete decidere di sostituirlo al kernel presente
sul disco rigido, in modo da fare a meno del dischetto di avvio
contenente il nuovo kernel e quindi ottenere un avvio più veloce.
Mi raccomando, non prendete alla leggera questa decisione. Se
cancellate il kernel vecchio e lo sostituite con uno nuovo che non
funziona correttamente, potreste paralizzare completamente Linux e
renderlo inservibile. Potreste addirittura non essere più in grado di
riavviarlo, perdendo quindi l'accesso a eventuali dati presenti nella
partizione Linux. Certo, ci sono procedure d'emergenza per risolvere
questi problemi, ma vi assicuro che sono lunghe e dolorose. Se siete un
tipo prudente, restate fedeli al vostro dischetto di kernel.
Se invece amate la sperimentazione e il rischio, ecco come procedere,
preferibilmente con un linuxiano a portata di mano per i momenti
difficili.
Fate un po' di copie di sicurezza: copiate /usr/src/linux-x.x.x a
un'altra directory, ad esempio /usr/src/linux-x.x.x_originale, e
copiate la directory /boot a un'altra directory, ad esempio
/boot_originale.
Rieseguite la compilazione partendo dal comando make dep, ma invece di
dare il comando make bzdisk, digitate make bzImage. Attenzione a
digitare correttamente la I in maiuscolo. Questo comando crea il file
del kernel sul disco rigido invece che sul floppy. Il kernel nuovo non
sovrascrive quello vecchio, per cui se qualcosa va storto potrete
comunque avviare Linux senza problemi.
Il risultato del passo precedente è un file di nome bzImage che risiede
nella directory /usr/src/linux-x.x.x/arch/i386/boot/. Siete al punto di
non ritorno: copiate il file alla directory /boot e dategli il nome del
kernel originale compresso, che è vmlinuz seguito dai numeri di
versione. Attenzione a digitare vmlinuz con la zeta, non con la X.
Eseguite il comando lilo. Questo dice a LILO di “agganciare” il
nuovo kernel e riscrive il settore di boot del disco rigido.
Riavviate Linux e tenete le dita incrociate. Se Linux parte
correttamente, digitate uname -a in una finestra di terminale per
verificare che state davvero eseguendo il nuovo kernel dal disco rigido
(lo si vede dalla data indicata nella risposta a questo comando).
Aggiornare il kernel
Il kernel di Linux è soggetto ad aggiornamenti molto frequenti, a volte
addirittura quotidiani. Non è indispensabile procurarsi sempre ogni
nuova versione del kernel: se quella che avete funziona
soddisfacentemente, non sostituitela.
Ogni tanto, però, esce una nuova versione di kernel che contiene
cambiamenti piuttosto importanti o consente finalmente di gestire
qualche dispositivo di cui avevate bisogno sotto Linux. In casi come
questi conviene installare l'aggiornamento del kernel.
Come tutte le modifiche al cuore del sistema operativo, anche questa è
molto pericolosa. Se fallisce, potreste rendere totalmente inservibile
il vostro Linux. Se possibile, eseguite l'aggiornamento in presenza di
un linuxiano.
Procurarsi il nuovo kernel
Potete prelevare i file del nuovo kernel direttamente da Internet, ad
esempio presso http://www.kernel.org, oppure da un CD di distribuzione.
Se avete una normale connessione via modem, il prelievo da Internet
richiede un po' di tempo, dato che i file contenenti il codice sorgente
di Linux occupano una ventina di megabyte.
I file del kernel sono solitamente disponibili in due formati: quello
con l'estensione .rpm, e quello con l'estensione .tar.gz, valido per qualsiasi
distribuzione. La versione RPM è più facile da usare, per cui
preferitela all'altra (il contenuto è comunque identico).
Generare il nuovo kernel
Non temete di sovrascrivere il kernel precedente: i file del nuovo
kernel vengono installati in directory separate. Il pericolo, semmai, è
di intasare il disco rigido con troppe versioni di kernel. Ricordatevi
di fare pulizia delle versioni che non usate più.
Ad esempio, se il vostro kernel attuale è la versione 2.2.14 e volete
installare la versione 2.2.16, il kernel attuale risiede in
/usr/src/linux-2.2.14, mentre la versione nuova verrà installata in
/usr/src/linux-2.2.16, e così via. I kernel dormono quindi in stanze
separate. Fate attenzione alla possibilità che venga alterato il link
simbolico che collega la directory fittizia /usr/src/linux alla
directory effettiva che contiene i file del kernel: installando i file
di un nuovo kernel, questo link potrebbe puntare alla directory del
nuovo kernel invece che a quella del kernel preesistente.
Non vi preoccupate troppo di questo problema: l'importante è che
sappiate se è stata apportata questa modifica e che vi ricordiate di
ripristinare la situazione originale se fate marcia indietro e
ritornate al kernel preesistente.
Cosa più importante, se durante l'installazione del nuovo kernel
compaiono messaggi che segnalano problemi di dipendenza, lasciate stare
e parlatene con il vostro linuxiano di fiducia.
Nessun problema? Allora andate nella directory in cui si è installato
il nuovo kernel e usatela al posto di /usr/src/linux per eseguire la
sequenza già vista per la ricompilazione del kernel esistente, partendo
dal comando make xconfig. Al termine della sequenza dovreste ottenere
un floppy contenente il nuovo kernel. Tutto qui.
Una volta assodato che il nuovo kernel funziona, potete decidere di
sostituirlo a quello precedente anche sul disco rigido: basta
rieseguire le operazioni descritte nella sezione Sostituire il kernel.