Gentoo Logo

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


[ << ] [ < ] [ 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 GMT:)
# cp /usr/share/zoneinfo/GMT /etc/localtime

7.b. Installare i sorgenti del kernel

Scegliere un Kernel

Il cuore, attorno 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 l'architettura PPC si suggerisce di usare gentoo-sources che è un kernel 2.6 recente.

Codice 2.1: Installare i sorgenti del kernel

# emerge --usepkg gentoo-sources

Se si dà un'occhiata a /usr/src, si dovrebbe vedere un link simbolico chiamato linux, che punta all'attuale sorgente del kernel. In questo caso il sorgente del kernel installato punta a gentoo-sources-2.6.24-r5. La versione potrebbe essere differente.

Codice 2.2: Il link simbolico al sorgente del kernel

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           22  Mar 18 16:23 /usr/src/linux
->linux-2.6.24-gentoo-r5

Ora si procede a configurare e compilare i sorgenti del kernel. Allo scopo è possibile utilizzare genkernel, che compila un kernel generico come quello usato dal CD di installazione. Prima però viene trattata la configurazione "manuale", poiché realizza una configurazione migliore.

Se si desidera configurare manualmente il kernel, continuare con Default: Configurazione manuale. Se si desidera usare genkernel, continuare con 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 alcuni di kernel, l'operazione risulta semplice.

Tuttavia una cosa è vera: quando si comincia una configurazione manuale del kernel si deve conoscere il proprio sistema. La maggior parte delle informazioni possono essere raccolte con emergere pciutils (emerge --usepkg pciutils) che contiene lspci. Si potrà usare lspci con l'ambiente in cui si è effettuato il chroot. Si possono ignorare i warning pcilib (come pcilib: cannot open /sys/bus/pci/devices). E' possibile anche eseguire lspci da un ambiente in cui non si è effettuato il chroot. I risultati sono gli stessi. Si può anche eseguire lsmod per vedere che moduli del kernel usa il CD di installazione (potrebbe fornire un buon suggerimento su cosa abilitare). Un altro posto da vedere per vedere quali componenti avbilitare è il log del messaggio del kernel dopo aver completato il boot con successo. Digitare dmesg per vedere il messaggio del kernel.

Andare nella directory dei sorgenti del kernel. Cominciare con la creazio ne di un kernel valido per la maggior parte dei PowerPC a 32 Bit eseguendo make pmac32_defconfig. Dopo che la configurazione di default è stata generata, digitare make menuconfig per visualizzare un menu di configurazione basato su ncurses.

Codice 3.1: Aprire menuconfig

# cd /usr/src/linux
# make pmac32_defconfig
# 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

Per prima cosa andare su File Systems e selezionare il supporto per i filesystem che si usano. Non compilarlo come modulo, altrimenti Gentoo non può montare le partizioni. Selezionare anche /proc file system e Virtual memory. Assicurarsi di abilitare il supporto per le partizioni Amiga se si sta usando un Pegasos, o per le partizioni Macintosh se si sta usando un Apple.

Codice 3.2: Selezionare i filesystem

File systems --->
  Pseudo Filesystems --->
(/proc potrebbe già essere forzato sulla propria configurazione, in
tale caso viene visualizzato ---)
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)
        Partition Types --->
    [*] Advanced partition support
    [*] Amiga partition table support
    [*] Macintosh partition map support

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

Gli utenti delle macchine NewWorld e OldWorld hanno bisogno anche del supporto HFS. Gli utenti OldWorld ne hanno bisogno per copiare i kernel compilati nella partizione MacOS. Gli utenti NewWorld lo usano per configurare la partizione speciale Apple_Bootstrap:

Codice 3.3: Attivazione del supporto HFS

File Systems --->
  Miscellaneous filesystems --->
    <M> Apple Macintosh file system support
    <M> Apple Extended HFS file system support

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

Codice 3.4: 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; l' opzione PPP over Ethernet potrebbe essere usata soltanto da ppp se configurato per il PPPoE in modalità kernel.

Non dimenticare di includere il supporto per la propria scheda di rete. La maggior parte degli Apple più recenti usa il driver SunGEM mentre quelli più vecchi necessitano di BMAC.

Codice 3.5: Selezionare il driver di rete

Device Drivers --->
Network device support --->
  Ethernet (10 or 100Mbit) --->
    [*] Ethernet (10 or 100Mbit)
    <*>   Generic Media Independent Interface device support
    <*>   MACE (Power Mac ethernet) support
    <*>   BMAC (G3 ethernet) support
    <*> Sun GEM support

La prelazione kernel è ancora instabile su PPC e può causare fallimenti di compilazione e crash improvvisi. E' fortemente raccomandato di non usare questa caratteristica. Sia Voluntary Preemption che No Forced Preemption dovrebbero invece funzionare correttamente.

Codice 3.6: Assicurare che Preemptible Kernel Option non sia selezionata

Kernel options --->
(Select One)
  Preemption Model
    (X) No Forced Preemption (Server)
    (X) Voluntary Kernel Preemption (Desktop)

Se si avvia da Firewire, si deve abilitare queste opzioni. Se non si desidera compilarle nel supporto, si dovranno includere questi moduli e le loro dipendenze in un initrd.

Codice 3.7: Abilitare il supporto per dispositivi firewire su boot

Device Drivers --->
  IEEE 1394 (FireWire) support --->
    <*> IEEE 1394 (FireWire) support
    <*>   OHCI-1394 support
    <*>   SBP-2 support (Harddisks etc.)

Se si avvia da USB, i deve abilitare queste opzioni. Se non si desidera compilarle nel supporto, si dovranno includere questi moduli e le loro dipendenze in un initrd.

Codice 3.8: Abilitare il supporto per dispositivi USB su boot

Device Drivers --->
  USB support --->
    <*> Support for Host-side USB
    <*>   OHCI HCD support
    <*>   USB Mass Storage support

Non levare il supporto per il kernel framebuffer poiché è richiesto per un boot corretto. Se si usa un chipset basato su NVIDIA, si dovrebbe usare il framebuffer Open Firmware. Se si usa un chipset basato su ATI, si dovrebbe selezionare il driver framebuffer basato sul proprio chipset (Mach64, Rage128 o Radeon).

Codice 3.9: Scegliere un Framebuffer Driver

Device Drivers --->
  Graphics support --->
    <*> Support for frame buffer devices
    [*] Open Firmware frame buffer device support
    <*> ATI Radeon display support
    <*> ATI Rage128 display support
    <*> ATI Mach64 display support
    Console display driver support --->
      <*> Framebuffer Console support

Nota: Se si seleziona più di un device framebuffer, potrebbe portare a un non ottimale driver. Usare solo un framebuffer device o specificare quale è da usare mettendo il driver nel kernel in boot come video=radeonfb.

Una volta terminata la configurazione del kernel continuare con Compilazione e Installazione.

Compilazione e Installazione

Ora che il kernel è configurato, il passo successivo è la compilazione e l'installazione. Uscire dal menù di configurazione ed eseguire i seguenti comandi:

Codice 3.10: Compilare il kernel

# make && make modules_install

Una volta terminata la compilazione, copiare l'immagine del kernel in /boot come mostrato in seguito. Se si utilizza una partizione di boot separata, come in Pegasos, assicurarsi che sia montata. Se si sta usando BootX per avviare, il kernel viene copiato in seguito.

Yaboot e BootX si aspettano l'uso di un kernel non compresso, non come molti altri bootloader. Il kernel non compresso è chiamato vmlinux ed è posto in /usr/src/linux dopo che il kernel ha finito la compilazione. Se si sta usando un sistema Pegasos, il Pegasos firmware richiede un kernel compresso chiamato zImage.chrp che si trova su /usr/src/linux/arch/powerpc/boot/images.

Codice 3.11: Installazione del kernel

# cd /usr/src/linux
notare che la propria versione potrebbe essere differente
(Apple/IBM)
# cp vmlinux /boot/kernel-2.6.24-gentoo-r5
(Pegasos)
# cp arch/powerpc/boot/images/zImage /boot/kernel-2.6.24-gentoo-r5

Adesso continuare con Installare i moduli del Kernel separati.

7.d. Installare i moduli del Kernel separati

Configurare i moduli

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

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/<versione kernel>/ -type f -iname '*.o' -or -iname '*.ko'

Per esempio, per caricare automaticamente il modulo 3c59x.ko, modificare il file kernel-2.6 e inserire il nome del modulo, uno per linea:

Codice 4.2: Modificare /etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6

Codice 4.3: /etc/modules.autoload.d/kernel-2.6

3c59x

Continuare l'installazione con Configurazione del sistema.

7.e. Alternativa: Usare genkernel

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 5.1: Emergere genkernel

# emerge --usepkg genkernel

Copiare la configurazione del kernel usata da CD di installazione nel posto in cui genkernel cerca la configurazione del kernel di default:

Codice 5.2: Copiare la configurazione del kernel del CD di installazione

# zcat /proc/config.gz > /usr/share/genkernel/ppc/kernel-config-2.6

Se si usa firewire o USB per avviare, si deve aggiungere i moduli a initrd. Modificare /usr/share/genkernel/ppc/modules_load e cambiare MODULES_FIREWIRE="ieee1394 ohci1394 sbp2" per supporto firewire o MODULES_USB="usbcore ohci-hcd ehci-hcd usb-storage" per supporto USB.

Prima di compilare i sorgenti, si deve fare un piccolo cambiamento in fstab. Il resto delle opzioni di fstab è spiegato più avanti. Se non è stata creata una partizione di boot separata (NON confondersi con la partizione bootstrap), rimuovere da /etc/fstab la riga che fa riferimento a /boot. Questo è necessario sulla maggior parte dei sistemi Apple.

Codice 5.3: Rimuovere /boot da /etc/fstab su sistemi senza una partizione di boot

# nano -w /etc/fstab
Rimuovere la riga seguente
/dev/BOOT               /boot           ext2            noauto,noatime  1 2

Compilare ora il proprio kernel eseguendo genkernel --genzimage all. Per Pegasos, si deve usare una differente configurazione e creare una zImage invece di vmlinux kernel usato su macchine Apple. 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 la partizione dove il kernel dovrebbe essere posto, non usa ext2 o ext3 come filesystem è 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 EVMS2 o LVM2 probabilmente vorranno aggiungere --evms2 o --lvm2 come argomenti.

Codice 5.4: Esecuzione di genkernel

# genkernel all

Codice 5.5: Esecuzione di genkernel su Pegasos

# genkernel --genzimage --kernel-config=/usr/share/genkernel/ppc/Pegasos 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 CD di installazione), prima che si avvii il sistema "reale". Assicurasi di copiare gli argomenti di boot richiesti, sono necessari per un boot corretto con genkernel.

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

Notare che la propria versione potrebbe essere differente
# ls /boot/kernel-genkernel-ppc-2.6.24-gentoo-r5/boot/initramfs-genkernel-ppc-2.6.24-gentoo-r5

Continuare l'installazione con Configurazione del sistema.


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


Stampa

Visualizza tutto

Aggiornato il 14 giugno 2009

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

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

Lars Weiler
Redazione

Jochen Maes
Redazione

Xavier Neys
Redazione

Joseph Jezak
Redazione

Joshua Saddler
Redazione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Marco Mascherpa
Traduzione

Stefano Pacella
Traduzione

Enrico Morelli
Traduzione

Davide Cendron
Traduzione

Donate to support our development efforts.

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