Gentoo Logo

Disclaimer : Questo manuale è stato sostituito da una nuova versione e non è più mantenuto.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


7. Configurazione del Kernel

Indice:

7.a. Timezone

Innanzitutto è necessario selezionare la propria timezone, in modo che il sistema riconosca in che parte del globo è collocato. Per la propria timezone, consultare /usr/share/zoneinfo. Crare dunque un link simbolico a /etc/localtime usando ln:

Codice 1.1: Abilitare le informazioni sulla timezone

# ls /usr/share/zoneinfo
(Per esempio GMT:)
# ln -sf /usr/share/zoneinfo/GMT /etc/localtime

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.

Per i sistemi basati sull'architettura x86 son disponibili, tra gli altri, i seguenti kernel: vanilla-sources (il sorgente del kernel 2.4 di default, così come viene rilasciato dagli sviluppatori del kernel di linux), gentoo-sources (il sorgente del kernel 2.4 contenente patch per aumentarne le performance), gentoo-dev-sources (il sorgente del kernel 2.6 che contiene patch per aumentarne la performance e migliorare la stabilità), development-sources (il sorgente originale del kernel 2.6) e altri.

Ora è possibile dunque scegliere ed installare i sorgenti del kernel tramite emerge.

Codice 2.1: Installare un sorgente del kernel

# emerge gentoo-sources

Se si dà un'occhiata a /usr/src, si dovrebbe vedere un link simbolico chiamato linux, che punta al sorgente del kernel, ad esempio gentoo-sources-2.4.26-r9:

Codice 2.2: Il link simbolico al sorgente del kernel

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux -> linux-2.4.26-gentoo-r9

Se così non fosse (cioè il link simbolico punta a un sorgente del kernel differente), prima di continuare è necessario cambiare il link simbolico:

Codice 2.3: Cambiare il link simbolico al sorgente del kernel

# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.4.26-gentoo-r9 linux

Ora si procede a configurare e compilare il sorgente del kernel. Allo scopo è possibile utilizzare genkernel, che compila un kernel generico come quello usato dal LiveCD. Si tratta però prima la configurazione "manuale", poichè è il miglior modo di ottimizzare l'ambiente.

Se si desidera configurare il kernel manualmente, continuare con Default: Configurazione manuale. Per chi preferisce usare genkernel, leggere Alternativa: Usare genkernel.

7.c. Default: Configurazione manuale

Introduzione

La configurazione manuale del kernel è spesso considerata la parte più difficile che ogni utente Linux incontra. Non è assolutamente vero -- dopo aver configurato un po' di kernel, l'operazione risulta semplice.

Una cosa è però vera: si deve conoscere il proprio sistema quando si comincia una configurazione manuale del kernel. La maggior parte delle informazioni può essere raccolta vedendo il contenuto di /proc/pci (o usando lspci se disponibile). Si può anche eseguire lsmod per vedere che moduli del kernel usa il LiveCD (potrebbe fornire un buon suggerimento su cosa abilitare).

Andare nella directory del sorgente del kernel, e digitare make menuconfig per visualizzare un menu di configurazione basato su ncurses.

Codice 3.1: Aprire menuconfig

# cd /usr/src/linux
# make menuconfig

Vengono visualizzate molte sezioni di configurazione. Ecco ora alcune opzioni che devono essere attivate (altrimenti Gentoo non può funzionare, o non funziona correttamente senza modifiche aggiuntive).

Attivare le opzioni indispensabili

Prima di tutto, si deve attivare l'uso di codice/driver di sviluppo e sperimentale. Se non lo si fa, non si ha la possibilità di utilizzare qualche codice/driver molto importante:

Codice 3.2: Selezionare codice/driver sperimentale

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers

E' importante verificare di aver selezionato la famiglia di processori a cui i proprio appartiene:

Codice 3.3: Selecting correct processor family

Processor type and features --->
  (Change according to your system)
  (Athlon/Duron/K7) Processor family

Andare su File Systems e selezionare il supporto per il filesystem che si usa. Non compilarlo come modulo, altrimenti Gentoo non può montare le partizioni. Selezionare anche Virtual memory, /proc file system, /dev file system e Automatically mount at boot:

Codice 3.4: Selezionare il filesystem

(per un kernel 2.4.x)
File systems --->
  [*] Virtual memory file system support (former shm fs)
  [*] /proc file system support
  [*] /dev file system support (EXPERIMENTAL)
  [*]   Automatically mount at boot
  [ ] /dev/pts file system for Unix98 PTYs

(per un kernel 2.6.x)
File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] /dev file system support (OBSOLETE)
    [*]   Automatically mount at boot
    [*] Virtual memory file system support (former shm fs)

(Selezionare una o più delle seguenti, secondo necessità)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

Se il proprio BIOS non è in grado di gestire i dischi grandi e il drive è stato impostato per riportare una dimensione limitata, è necessario abilitare la seguente opzione per poter accedere all'intera unità:

Codice 3.5: Selezionare il rilevamento autometico della dimensione

(solo kernel 2.4.x)
ATA/IDE/MFM/RLL support --->
  IDE, ATA and ATAPI Block devices --->
    <*>   Include IDE/ATA-2 DISK support
    [ ]     Use multi-mode by default
    [*]     Auto-Geometry Resizing support

Se si sta usando PPPoE per connettersi a Internet, si ha bisogno delle seguenti opzioni nel kernel:

Codice 3.6: Selezionare i driver necessari per PPPoE

(per un kernel 2.4.x)
Network device support --->
  <*> PPP (point-to-point protocol) support
  <*>   PPP support for async serial ports
  <*>   PPP support for sync tty ports

(per un kernel 2.6.x)
Device Drivers --->
  Networking support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

Le due opzioni di compressione non sono dannose, ma neppure necessarie; lo stesso vale per PPP over Ethernet, che potrebbe essere usata soltanto da rp-pppoe se configurato in modalità kernel.

Chi ne ha bisogno, non deve dimenticare di includere il supporto per la scheda ethernet nel kernel.

Se si è in possesso di una CPU Intel che supporta HyperThreading (tm), o si possiede un sistema con più CPU, è possibile attivare il "Symmetric multi-processing support":

Codice 3.7: Attivare il supporto multiprocessore

Processor type and features  --->
  [*] Symmetric multi-processing support

Se si utilizzano periferiche USB (come mouse o tastiere) è necessario abilitarle:

Codice 3.8: Attivare il supporto USB

USB Support --->
  <*>   USB Human Interface Device (full HID) support

Per i portatili, se si desidera il supporto PCMCIA non bisogna attivare i relativi driver per i kernel 2.4. Sono disponibili driver più recenti nel pacchetto pcmcia-cs che può essere installato successivamente. Nel kernel 2.6 possono invece essere utilizzati i driver inclusi.

Una volta terminata la configurazione del kernel continuare conCompilazione e Installazione.

Compilazione e Installazione

Ora che il kernel è configurato, il prossimo passo è la compilazione e l'installazione. Uscire dal menu di configurazione e avviare il processo di compilazione:

Codice 3.9: Compilare il kernel

(Per kernel 2.4)
# make dep && make bzImage modules modules_install

(Per kernel 2.6)
# make && make modules_install

Quando la compilazione è finita, è necessario copiare l'immagine del kernel in /boot. Da qui in poi si suppone che si stia installando la versione 2.4.26 dei sorgenti gentoo-sources. E' possibile utilizzare qualsiasi nome appropriato, ma è importante ricordarlo perchè verrà utilizzato in seguito.

Codice 3.10: Installare il kernel

# cp arch/i386/boot/bzImage /boot/kernel-2.4.26-gentoo-r9
# cp System.map /boot/System.map-2.4.26-gentoo-r9

E' inoltre consigliato copiare il file di configurazione del kernel in /boot.

Codice 3.11: Back up della configurazione del kernel

# cp .config /boot/config-2.4.26-gentoo-r9

Adesso continuare con Installare i moduli del Kernel separati.

7.d. Alternativa: Usare genkernel

Se si sta leggendo questa sezione, vuol dire che si è scelto di usare lo script genkernel, che configura il kernel.

Adesso che sono stati installati i sorgenti del kernel si può utilizzare lo script genkernel per configurarlo e compilarlo automaticamente. genkernel configura il kernel in modo quasi identico a come è configurato quello del LiveCD. Infatti quando si usa genkernel per compilare il kernel, il sistema rileva tutto l'hardware al boot, proprio come il LiveCD. Poichè genkernel non richiede nessuna configurazione manuale del kernel, questa è una soluzione ideale per quegli utenti che hanno qualche difficoltà nel compilarsi il kernel da soli.

Ecco come usare genkernel. Per prima cosa si deve emergere l'ebuild di genkernel:

Codice 4.1: Emergere genkernel

# emerge genkernel

Compilare ora il proprio kernel eseguendo genkernel all. Visto che genkernel compila un kernel che supporta quasi tutto l'hardware disponibile questa compilazione può essere un processo piuttosto lungo.

E' importante sapere anche che se non si usano ext2 o ext3 come filesystem potrebbe essere necessario configurare manualmente il kernel usando genkernel --menuconfig all e aggiungere il supporto per il filesystem scelto nel kernel (cioè non come modulo).

Codice 4.2: Esecuzione di genkernel

# genkernel all

Una volta completato genkernel, viene creato un kernel completo di moduli e root disk iniziale (initrd). Il kernel e initrd intervengono quando si configura un boot loader. E' consigliabile dunque annotare il nome del kernel e del initrd, poichè servono quando si scrive il file di configurazione del bootloader. Initrd si avvia subito dopo il boot per effettuare un rilevamento automatico dell'hardware (come nel LiveCD), prima che si avvii il sistema "reale".

Codice 4.3: Controllo dell'immagine del kernel e dell'initrd

# ls /boot/kernel* /boot/initrd*

Ancora un altro passo per ottenere il sistema più simile al LiveCD: emergere hotplug. Mentre initrd rileva automaticamente l'hardware necessario per avviare il sistema, hotplug autorileva tutto il resto. Per emergere e abilitare hotplug, digitare:

Codice 4.4: Emergere ed abilitare hotplug

# emerge hotplug
# rc-update add hotplug default

7.e. Installare i moduli del kernel separati

Installare i moduli extra

Ora si dovrebbero emergere le ebuild per ogni altro componente presente nel sistema. Ecco una lista degli ebuild relativi al kernel che si possono emergere:

Ebuild Scopo Comando
nvidia-kernel Grafica accelerata NVIDIA per xorg-x11 emerge nvidia-kernel
nforce-audio Audio On-board delle schede madri NVIDIA NForce(2) emerge nforce-audio
e100 Schede Ethernet Intel e100 Fast emerge e100
e1000 Schede Ethernet Intel e1000 Gigabit emerge e1000
emu10k1 Supporto per Creative Sound Blaster Live!/Audigy (solo kernel 2.4) emerge emu10k1
ati-drivers Grafica accelerata ATI Radeon 8500+/FireGL per xorg-x11 emerge ati-drivers

Si deve fare attenzione dato che alcuni di questi ebuild richiedono grandi dipendenze. Per verificare quali pacchetti vengono installati all'emerge di un ebuild, si deve usare emerge --pretend. Per esempio, per il pacchetto emu10k1:

Codice 5.1: Elenco completo dei software da installare

# emerge --pretend emu10k1

Se non si è convinti dei pacchetti che vengono elencati, usare emerge --pretend --verbose per vedere le flag USE in uso:

Codice 5.2: Vedere le flag USE in uso

# emerge --pretend --verbose emu10k1
...
[ebuild  N    ] media-sound/aumix-2.8  +gpm +nls +gtk +gnome +alsa -gtk2

Nell'esempio precedente, si può vedere che una delle dipendenze di emu10k1 (aumix), usa le flag USE gtk e gnome, facendo sì che gtk (che dipende da xorg-x11) sia compilato con essa.

Se non si vuole che tutto questo sia compilato, deselezionare tutte le flag USE interessate, per esempio:

Codice 5.3: Emergere emu10k1 con tutte le flag USE deselezionate

# USE="-gpm -nls -gtk -gnome -alsa" emerge --pretend emu10k1

Quando si è ottenuto un risultato soddisfacente, rimuovere --pretend per iniziare l'installazione di emu10k1.

Configurare i moduli

E' possibile elencare tutti i moduli che si desidera caricare automaticamente in /etc/modules.autoload.d/kernel-2.4 (o kernel-2.6). E' anche possibile specificare opzioni extra per i moduli, se si desidera.

Per vedere tutti i moduli disponibili, eseguire il comando find. Non dimenticarsi di sostituire "<kernel version>" con la versione del kernel che si è compilata:

Codice 5.4: Vedere tutti i moduli disponibili

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'

Per esempio, per caricare automaticamente il modulo 3c59x.o, modificare il file kernel-2.4 o kernel-2.6 e inserire il nome:

Codice 5.5: Modificare /etc/modules.autoload.d/kernel-2.4

(Esempio per i kernel 2.4)
# nano -w /etc/modules.autoload.d/kernel-2.4

Codice 5.6: /etc/modules.autoload.d/kernel-2.4 o kernel-2.6

3c59x

Eseguire modules-update per rendere effettivi i cambiamenti al file /etc/modules.conf:

Codice 5.7: Eseguire modules-update

# modules-update

Continuare l'installazione con la Configurazione del sistema.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 25 marzo 2005

Questa traduzione non è più mantenuta

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

Sven Vermeulen
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

Tobias Scherbaum
Redazione

Grant Goodyear
Revisione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Rossi
Traduzione

Enrico Morelli
Traduzione

Donate to support our development efforts.

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