[ << ]
[ < ]
[ 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, e copiarla in
/etc/localtime. Evitare le timezone di
/usr/share/zoneinfo/Etc/GMT* poichè i loro nomi non indicano
le rispettive zone. Per esempio GMT-8 è GMT+8.
Codice 1.1: Abilitare le informazioni sulla timezone |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. Installare i sorgenti
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 tra vanilla-sources e
gentoo-sources entrambi del ramo 2.6. Il secondo è disponibile quando
si esegue un'installazione senza connessione di rete. Ora è possibile dunque
installare i sorgenti del kernel tramite emerge. E'
necessario USE="-doc" per evitare di installare xorg-x11 o altre
dipendenze. USE="symlink" non è necessario per una
nuova installazione, ma assicura la creazione del symlink
/usr/src/linux.
Codice 2.1: Installare i sorgenti del kernel |
# USE="-doc symlink" emerge 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.12-r6. 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.12-gentoo-r6
|
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é è il miglior modo di ottimizzare l'ambiente.
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 un paio 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 pciutils) che contiene lspci. Si potrà usare
lspci con l'ambiente in cui si è effettuato il chroot. Si può 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. E' raccomandato aggiungere
le impostazioni di default alla propria configurazione eseguendo make
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 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
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, General setup |
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
General setup --->
[*] Support for hot-pluggable devices
|
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.
Codice 3.3: Selezionare i filesystem |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> Second extended fs support
<*> XFS filesystem 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 --->
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.
Gli utenti di macchine NewWorld e OldWorld possono attivare il supporto HFS.
Gli utenti OldWorld lo richiedono per copiare i kernel compilati nella
partizione MacOS. Gli utenti NewWorld lo richiedono per configurare la
partizione speciale Apple_Bootstrap:
Codice 3.5: Attivare il supporto HFS |
File Systems --->
[*] HFS Support
|
La prelazione kernel è ancora instabile su PPC e può causare fallimenti di
compilazione e random segfaults. E' fortemente raccomandato di non usare
questa caratteristica.
Codice 3.6: Assicurare che Preemptible Kernel Option non sia selezionata |
Platform options --->
[ ] Preemptible Kernel
|
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 OpenFirmware. 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 menu di configurazione ed eseguire i comandi per
compilare il kernel:
Codice 3.10: Compilare il kernel |
# make && make modules_install
|
Una volta terminata la compilazione, copiare l'immagine del kernel in
/boot (assicurarsi che sia montata correttamente sui Pegasos).
Codice 3.11: Installazione del kernel |
(Apple/IBM) # cp vmlinux /boot/<kernel-version>
(Pegasos) # cp arch/ppc/boot/images/zImage.chrp /boot/<kernel-version>
|
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 visualizzare tutti i moduli disponibili eseguire il comando find.
Non dimenticarsi di sostituire "<kernel version>" con la versione del
kernel che si è compilata:
Codice 4.1: Visualizzare 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.6 e inserire il nome:
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
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 5.1: Emergere genkernel |
# emerge 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.
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 --genzimage 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.3: Esecuzione di genkernel |
# genkernel --genzimage all
|
Codice 5.4: 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.5: Controllo dell'immagine del kernel e dell'initrd |
# ls /boot/kernel* /boot/initramfs*
|
Se si desidera che il sistema sia come l'ambiente del CD di installazione, si
dovrebbe emergere coldplug terminata l'installazione di Gentoo. Mentre
initrd rileva automaticamente l'hardware necessario per avviare il sistema,
coldplug autorileva tutto il resto. coldplug è disponibile come
pacchetto binario sul CD di pacchetti.
Codice 5.6: Emergere ed abilitare coldplug |
# emerge -k coldplug
# rc-update add coldplug boot
|
Se si desidera che il sistema abbia hotplug, lo si installi e imposti:
Codice 5.7: Emerge ed abilitare hotplug |
# emerge hotplug
# rc-update add hotplug default
|
Continuare l'installazione con
Configurazione del sistema.
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|