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.

Per i sistemi basati sull'architettura AMD64 sono disponibili, tra gli altri, i gentoo-sources (sorgenti del kernel modificati con patch per caratteristiche aggiuntive).

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. In questo caso si tratta di gentoo-sources-3.4.9, ma ricordarsi che la versione potrebbe essere diversa:

Codice 2.2: 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-3.4.9

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 CD di Installazione. Si tratta però prima la configurazione "manuale", poichè è il miglior modo di ottimizzare l'ambiente.

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

7.c. Predefinito: 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 installando pciutils (emerge pciutils) che contiene lspci. E' possibile tranquillamente ignorare gli errori di pcilib (ad esempio pcilib: cannot open /sys/bus/pci/devices) che a volte lspci stampa a video. In alternativa è anche possibile eseguire lspci dal di fuori dell'ambiente chrootato, in quanto i risultati sono i medesimi. Si può anche eseguire lsmod per vedere che moduli del kernel usa il CD di Installazione (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

E' importante verificare che ogni driver necessario al boot della propria macchina (ad esempio il controller SCSI, ..) sia compilato nel kernel e non come modulo. In caso contrario il sistema potrebbe non funzionare correttamente.

Selezionare il tipo esatto di processore. Il mantenitore del kernel x86_64 raccomanda gli utenti di abilitare MCE features, in modo da poter essere avvisati se ci dovessero essere problemi hardware. Su x86_64, questi errori non sono visualizzati su dmesg come per le altre architetture, ma su /dev/mcelog, che richiede il pacchetto app-admin/mcelog. Assicurarsi di selezionare IA32 Emulation se si desidera poter eseguire programmi a 32-bit. Gentoo installerà un sistema multilib (calcolo misto a 32/64-bit) in modo predefinito, per cui tale opzione è necessaria.

Nota: Se si pensa di usare un profilo non-multilib (per un sistema a 64-bit puro), allora non si dovrà selezionare il supporto all'Emulazione IA32. Tuttavia, bisognerà anche seguire le instruzioni per passare ad un profilo non-multilib, e scegliere il bootloader corretto.

Codice 3.2: Selezionare il tipo di processore e caratteristiche

Processor type and features  --->
   [ ] Machine Check / overheating reporting
   [ ] Intel MCE Features
   [ ] AMD MCE Features
  Processor family (AMD-Opteron/Athlon64)  --->
    ( ) Opteron/Athlon64/Hammer/K8
    ( ) Intel P4 / older Netburst based Xeon
    ( ) Core 2/newer Xeon
    ( ) Intel Atom
    ( ) Generic-x86-64
  Executable file formats / Emulations  --->
    [*] IA32 Emulation

Quindi selezionare Maintain a devtmpfs file system to mount at /dev un modo che i file dei device critici sono già disponibili nel processo di avvio.

Codice 3.3: Abilitare il supporto devtmpfs

Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Andare su File Systems e selezionare il supporto per i filesystem utilizzati. Non compilare tali supporti come moduli, altrimenti Gentoo non può montare le partizioni. Selezionare anche Virtual memory, /proc file system.

Codice 3.4: Selezionare i filesystem necessari

File systems --->
(Selezionare una o più delle seguenti opzioni secondo le necessità del sistema)
  <*> Second extended fs support
  <*> Ext3 journalling file system support
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  ...
  Pseudo Filesystems --->
    [*] /proc file system support   220 [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)  221 [*] Virtual memory file system support (former shm fs)

(Abilitare il supporto alle etichette GPT se si sono usate in precedenza)
-*- Enable the block layer --->
    ...
    Partition Types --->
    [*] Advanced partition selection
      ...
      [*] EFI GUID Partition support

Se si sta usando PPPoE per connettersi a Internet o se si sta usando un modem analogico, si ha bisogno delle seguenti opzioni nel kernel:

Codice 3.5: Selezionare i driver necessari per PPPoE

Device Drivers --->
  Network device 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 ppp se configurato in modalità kernel.

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

Se si è in possesso di più CPU Opteron o un multi-core (es AMD64 X2), è possibile attivare il supporto multiprocessore:

Codice 3.6: Attivare il supporto multiprocessore

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

Nota: Nei sistemi multicore, ciascun core vale come un processore.

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

Codice 3.7: Attivare il supporto USB per dispositivi di input

Device Drivers --->
  [*] HID Devices --->
    <*>   USB Human Interface Device (full HID) support

Compilazione e Installazione

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

Codice 3.8: Compilare il kernel

# make && make modules_install

Quando la compilazione è finita, è necessario copiare l'immagine del kernel in /boot. E' possibile utilizzare qualsiasi nome per indicare il proprio kernel, è sufficiente tenerlo a mente perchè è necessario nella configurazione del bootloader. Ricordare di sostituire kernel-3.4.9-gentoo con il nome e la versione del proprio kernel.

Codice 3.9: Installare il kernel

# cp arch/x86_64/boot/bzImage /boot/kernel-3.4.9-gentoo

Ora proseguire con i Moduli del Kernel.

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 CD di Installazione. Infatti quando si usa genkernel per compilare il kernel, il sistema rileva tutto l'hardware al boot, proprio come il CD di Installazione. 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 poi il 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). Gli utenti di LVM2 devono anche aggiungere il parametro --lvm2.

Codice 4.2: Esecuzione di genkernel

# genkernel all

Una volta completato genkernel, viene creato un kernel completo di moduli e ram disk iniziale (initramfs). 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 CD di Installazione), prima che si avvii il sistema "reale".

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

# ls /boot/kernel* /boot/initramfs*

7.e. 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 5.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 5.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 11 febbraio 2013

La versione originale di questo documento è più recente ed è stata aggiornata il 7 agosto 2014

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

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

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.