Ci sono cinque categorie di problemi che si possono presentare quando si crea un nuovo kernel. Sono:
config
fallisce:Se il comando config(8) fallisce quando gli passi la descrizione del tuo kernel, hai fatto probabilmente un semplice errore da qualche parte. Fortunatamente config(8) scriverà il numero della linea che ha dato errore, così puoi facilmente trovare la linea errata. Ad esempio, se vedi:
config: line 17: syntax error
Accertati che la parola chiave
sia scritta correttamente confrontandola con quella
del kernel GENERIC
o un altro
riferimento.
make
fallisce:Se il comando make
fallisce, di solito
segnala un errore nella descrizione del kernel che non è
abbastanza grave per config(8). Ancora, controlla la tua configurazione
e se ancora non riesci a risolvere il problema, invia una mail
a mailing list per le domande generiche su FreeBSD con la tua configurazione del kernel, e dovrebbe
essere diagnosticato velocemente.
Se il tuo kernel non fa il boot, o fallisce nel
riconoscimento dei tuoi device, non andare in panico!
Fortunatamente FreeBSD ha un ottimo meccanismo per
ricominciare in questo caso. Semplicemente scegli il kernel
da cui vuoi fare il boot dal boot loader FreeBSD. Puoi accedere ad esso
quando appare il menu del boot.
Seleziona l'opzione «Escape to a loader prompt»,
la numero sei. Al prompt digita
unload kernel
e poi digita
boot /boot/kernel.old/kernel
o il nome del file di un altro kernel da cui puoi bootare
correttamente. Quando configuri un kernel, è sempre
una buona idea tenere un kernel che si sa che funzioni
a portata di mano.
Dopo aver fatto il boot con un kernel funzionante
puoi controllare il tuo file di configurazione e cercare
di ricompilarlo. Una risorsa utile è il file
/var/log/messages
che, fra le altre cose,
registra tutti messaggi del kernel da ogni boot riuscito.
Inoltre, il comando dmesg(8) scriverà i messaggi
del kernel dall'ultimo boot.
Se hai problemi a compilare un kernel, accertati di
tenere un kernel GENERIC
, o qualche
altro kernel che sai che funzioni a portata di mano,con un
nome diverso cosichè non sia cancellato dalla successiva
compilazione. Non puoi affidarti su kernel.old
perchè quando installi un nuovo kernel, kernel.old
viene cancellato dall'ultimo kernel installato, che poteva
essere non funzionanante. Inoltre, appena possibile, sposta il
kernel funzionanante nella directory corretta
/boot/kernel
o comandi come ps(1) potrebbero non
funzionare bene. Per farlo, semplicemente rinomina la directory
contenente il kernel funzionante:
#
mv /boot/kernel /boot/kernel.bad
#
mv /boot/kernel.good /boot/kernel
Se hai installato una versione del kernel differente da quella delle utilities di sistema, per esempio un kernel -CURRENT ed un sistema -RELEASE, molti comandi di stato del sistema come ps(1) e vmstat(8) non funzioneranno più. Dovresti ricompilare ed installare world con la stessa versione dei sorgenti del tuo kernel. Questa è una ragione per non usare una versione del kernel diversa dal sistema operativo.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.