Gentoo Logo

[ << ] [ < ] [ 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
(Per esempio Europe/Rome:)
# cp /usr/share/zoneinfo/Europe/Rome /etc/localtime
(Poi impostare il fuso orario)
# 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
(Premere invio ad ogni prompt per accettare l'impostazione predefinita, i cambiamenti verranno fatti più avanti)
# 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

(Compilazione nativa)
# make vmlinux modules modules_install

(cross compiling)
(sostituire mips64-unknown-linux-gnu- di conseguenza)
# make vmlinux modules modules_install CROSS_COMPILE=mips64-unknown-linux-gnu-

(Quando si compila su un'altra macchina, come una x86, usare)
(i seguenti comandi per compilare il kernel & installare)
(i moduli in una directory specifica affinchè vengano trasferiti nella macchina principale.)
# 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
(Questo crea vmlinux.32 -- il kernel finale)

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

(Cobalt Servers -- Comprimere la immagine del kernel)
# 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 ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 22 febbraio 2012

La versione originale di questo documento è più recente ed è stata aggiornata il 17 dicembre 2013

Oggetto: Il kernel di Linux è il cuore di ogni distribuzione. Il capitolo tratta della configurazione del Kernel.

Sven Vermeulen
Autore

Grant Goodyear
Autore

Grant Goodyear
Autore

Roy Marples
Autore

Daniel Robbins
Autore

Chris Houser
Autore

Jerry Alexandratos
Autore

Seemant Kulleen
Sviluppo x86

Tavis Ormandy
Sviluppo Alpha

Jason Huebel
Sviluppo AMD64

Guy Martin
Sviluppo HPPA

Pieter Van den Abeele
Sviluppo PPC

Joe Kallar
Sviluppo SPARC

John P. Davis
Redazione

Pierre-Henri Jondot
Redazione

Eric Stockbridge
Redazione

Rajiv Manglani
Redazione

Jungmin Seo
Redazione

Stoyan Zhekov
Redazione

Jared Hudson
Redazione

Colin Morey
Redazione

Jorge Paulo
Redazione

Carl Anderson
Redazione

Jon Portnoy
Redazione

Zack Gilburd
Redazione

Jack Morgan
Redazione

Benny Chuang
Redazione

Erwin
Redazione

Joshua Kinard
Redazione

Stuart Longland
Redazione

Tobias Scherbaum
Redazione

Xavier Neys
Redazione

Joshua Saddler
Redazione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Pacella
Traduzione

Enrico Morelli
Traduzione

Davide Cendron
Traduzione

Sergio Vaccaro
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.