[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
7. Configurazione del Kernel
Indice:
7.a. Fuso Orario (Timezone)
Innanzitutto è necessario selezionare il proprio fuso orario (timezone), in modo
che il sistema riconosca in che parte del globo è collocato. Individuare il
proprio fuso orario in /usr/share/zoneinfo, dopodichè copiarlo in
/etc/localtime. Si sconsiglia di utilizzare i fusi orari del tipo
/usr/share/zoneinfo/Etc/GMT* poichè i loro nomi non indicano le
zone che ci si aspetterebbe. Per esempio GMT-8 indica GMT+8.
Codice 1.1: Abilitare le informazioni sul fuso orario (timezone) |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/Europe/Rome /etc/localtime
# echo "Europe/Rome" > /etc/timezone
|
7.b. Installare i sorgenti
Scegliere un Kernel
Il cuore, intorno al quale sono sviluppate tutte le distribuzioni, è il Kernel
di Linux. E' la parte di software compresa tra i programmi e l'hardware. Gentoo
dà la possibilità ai suoi utenti di scegliere tra diversi sorgenti del kernel.
Una lista completa delle descrizioni dei kernel disponibili, è consultabile
nella Guida ai Kernel
Gentoo.
Sistemi basati su MIPS devono scegliere i mips-sources. L'insieme di
patch differisce da quelle disponibili per altre architetture, e ne contiene
molte specifiche per MIPS.
Codice 2.1: Emergere i sorgenti del kernel |
# emerge mips-sources
|
Importante:
Su Origin 200/2000, Indigo2 Impact (R10000), Octane/Octane2 e O2, è richiesto un
kernel 64 bit per avviare il sistema. Per questi, è necessario eseguire
emerge kgcc64 per creare un cross compiler per compilare i kernel 64 bit.
|
Codice 2.2: Installare kgcc64 |
# emerge kgcc64
|
Se si dà un'occhiata a /usr/src, si dovrebbe vedere un link
simbolico chiamato linux, che punta al sorgente del kernel. In
questo caso il sorgente del kernel installato punta a mips-sources-2.6.34-mips, ma ricordarsi che la versione potrebbe essere
diversa:
Codice 2.3: Il link simbolico al codice sorgente del kernel |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.34-mips
|
Ora si procede a configurare e compilare il sorgente del kernel.
7.c. Compilazione e installazione del kernel
Introduzione
Di solito si è vista la configurazione manuale del sorgente del kernel. Questa è
divenuta impraticabile dato il numero di sistemi che sono supportati. Questa
sezione esamina vari sorgenti per configurazioni di esempio del kernel.
Usare esempi di configurazione nei sorgenti del kernel
Molti sistemi supportati hanno esempi di .config nascosti nel kernel sorgente.
Non tutti hanno le configurazioni distribuite in questo modo. Quelli che li
hanno, possono essere configurati con i comandi menzionati nella tabella sotto.
| Sistema |
Comando di configurazione |
| Cobalt Servers |
make cobalt_defconfig |
| Indy, Indigo2 (R4k), Challenge S |
make ip22_defconfig |
| Origin 200/2000 |
make ip27_defconfig |
| Indigo2 Impact (R10k) |
make ip28_defconfig
|
| O2 |
make ip32_defconfig |
Usare la configurazione del kernel già in esecuzione dal media di
installazione
Tutte le immagini di installazione Gentoo forniscono una opzione di
configurazione del kernel come parte dell'immagine stessa, accessibile in
/proc/config.gz. Può essere usata in molti casi. E' meglio però
che il proprio sorgente del kernel corrisponda al kernel che è attualmente in
esecuzione. Per estrarlo, eseguire zcat come mostrato sotto.
Codice 3.1: Estrarre .config da /proc/config.gz |
# zcat /proc/config.gz > .config
|
Importante:
La configurazione del kernel è impostata per una immagine netboot. Si aspetta di
trovare una immagine del filesystem root, sia come una directory per initramfs,
sia come in device loopback per initrd. Quando si esegue make menuconfig,
non dimenticarsi di andare in General Setup e disabilitare le opzioni per
initramfs.
|
Database per le compatibilità hardware
Come aiuto agli utenti nel trovare impostazioni funzionanti, è stato avviato un
database per le compatibilità hardware. Questo database elenca il supporto per
vari dispositivi MIPS, e permette agli utenti di contribuire alle configurazioni
del kernel funzionanti. L'indirizzo per questo sito è
http://stuartl.longlandclan.hopto.org/gentoo/mips.
Se si trova questo servizio utile, si può contribuire con note e file .config
così che altri utenti ne possano beneficiare. Dovrebbe essere chiaro che non c'è
nessuna garanzia affinchè ogni file di configurazione scaricato da questo sito
funzioni.
Adattare la configurazione in base alle proprie necessità
Una volta trovata una configurazione, si deve scaricarla nella directory del
sorgente del kernel, e rinominarla in .config. Da lì, si può
eseguire make oldconfig per aggiornare e per cambiare la configurazione
prima della compilazione.
Codice 3.2: Configurare il kernel |
# cd /usr/src/linux
# cp /path/to/example-config .config
# make oldconfig
# make menuconfig
|
Importante:
Nella sezione Kernel Hacking, c'è una opzione chiamata "Are You Using A Cross
Compiler?". Dice ai Makefile del kernel di aggiungere all'inizio
"mips-linux-" (o mipsel-linux ... etc) ai comandi gcc e
as quando si compila il kernel. Questo dovrebbe non essere fatto, anche
se si sta usando un cross compiler. Se si ha bisogno di un cross compiler,
specificare il prefisso usando la variabile CROSS_COMPILE come mostrato
nella prossima sezione.
|
Importante:
C'è un problema conosciuto con JFS e ALSA su sistemi Octane, nei quali ALSA non
funziona. Si raccomanda di non usare JFS.
|
Compilazione e Installazione
Ora che il kernel è configurato, il prossimo passo sarà la sua compilazione ed
installazione. Uscire dal menu di configurazione e avviare il processo di
compilazione:
Nota:
Su sistemi 64 bit, si deve specificare
CROSS_COMPILE=mips64-unknown-linux-gnu- (o mips64el-... su un
sistema little-endian) per usare il compiler 64 bit.
|
Codice 3.3: Compilare il kernel |
# make vmlinux modules modules_install
# make vmlinux modules modules_install CROSS_COMPILE=mips64-unknown-linux-gnu-
# make vmlinux modules CROSS_COMPILE=mips64-unknown-linux-gnu-
# make modules_install INSTALL_MOD_PATH=/somewhere
|
Importante:
Quando si compila un kernel 64 bit per Indy, Indigo2 (R4k), Challenge S e O2,
usare vmlinux.32 invece di vmlinux. Altrimenti la macchina non
potrà avviarsi. Questo aggira il fatto che PROM non capisca il formato ELF64.
|
Codice 3.4: Usare vmlinux.32 |
# make vmlinux.32
|
Quando la compilazione è finita, è necessario copiare l'immagine del kernel in
/boot.
Nota:
I server Cobalt, si aspettano di vedere una immagine del kernel compressa.
Ricordarsi di fare gzip -9 al file dopo che si è entrati in
/boot.
|
Codice 3.5: Installare il kernel |
# cp vmlinux /boot/kernel-2.6.34-mips
# gzip -9v /boot/kernel-2.6.34-mips
|
7.d. Moduli del Kernel
Configurare i moduli
Si dovrebbero inserire i moduli che si vogliono caricare in
/etc/conf.d/modules. Se si vuole, si possono anche aggiungere altre
opzioni ai moduli.
Per vedere tutti i moduli disponibili, eseguire il comando find. Non
dimenticarsi di sostituire "<versione kernel>" con la versione del
kernel appena compilato:
Codice 4.1: Vedere tutti i moduli disponibili |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'|less
|
Per esempio, per caricare automaticamente il modulo 3c59x.ko (che è il
driver per per una famiglia specifica di schede di rete 3Com), modificare
il file /etc/conf.d/modules inserirendovi il nome del modulo stesso.
Codice 4.2: /etc/conf.d/modules |
# nano -w /etc/conf.d/modules
modules_2_6="3c59x"
|
Continuare l'installazione con la Configurazione
del sistema.
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|