|
1.
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
# cp /usr/share/zoneinfo/Europe/Rome /etc/localtime
# echo "Europe/Rome" > /etc/timezone
|
1.
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 i sistemi basati sull'architettura ${arch} 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 1.1: Installare i sorgenti 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 il sorgente del kernel installato punta a gentoo-sources-${kernel-version}, ma ricordarsi che la versione potrebbe essere
diversa:
Codice 1.1: 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-${kernel-version}
|
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
Predefinito: Configurazione manuale. Se si desidera
usare genkernel, continuare con Alternativa: Usare
genkernel.
1.
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 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 installando pciutils (emerge
pciutils) che contiene lspci. Si potrà usare lspci con
l'ambiente in cui si è effettuato il chroot. Si possno ignorare gli errori
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).
Andare nella directory dei sorgenti del kernel. E' importante configurare subito
un kernel in grado di avviare la maggior parte delle macchine PowerPC a 32 bit,
eseguendo make pmac32_defconfig. Dopo che la configurazione predefinita è
stata generata, digitare make menuconfig per visualizzare un menu di
configurazione basato su ncurses.
Codice 1.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
Come prima cosa 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 /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 1.1: Selezionare i filesystem |
File systems --->
Pseudo Filesystems --->
[*] /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
<*> 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 1.1: 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 o si usa un modem dial-up, si ha
bisogno delle seguenti opzioni nel kernel:
Codice 1.1: 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.
Non dimenticare di includere nel kernel 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 1.1: 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
|
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 1.1: Abilitare il supporto per dispositivi Firewire durante il boot |
Device Drivers --->
IEEE 1394 (FireWire) support --->
<*> IEEE 1394 (FireWire) support
<*> OHCI-1394 support
<*> SBP-2 support (Harddisks etc.)
|
Se si avvia da USB, si devono abilitare queste opzioni. Se non si desidera
compilarle nel supporto, si dovranno includere questi moduli e le loro
dipendenze in un initrd.
Codice 1.1: 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 togliere 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 1.1: 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 venire selezionato in
modo predefinito un driver non ottimale. Usare solo un dispositivo framebuffer
o specificare quale usare aggiungendo ai parametri passati al kernel la
modalità video, per esempio video=radeonfb.
|
Una volta terminata la configurazione del kernel continuare con la sua 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 seguenti
comandi:
Codice 1.1: 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 1.1: Installazione del kernel |
# cd /usr/src/linux
# cp vmlinux /boot/${kernel-name}
# cp arch/powerpc/boot/images/zImage /boot/${kernel-name}
|
Ora proseguire con i Moduli del Kernel.
1.
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 1.1: Emergere genkernel |
# emerge genkernel
|
Se si usa Firewire o USB per avviare, si devono aggiungere i moduli a initrd.
Modificare /usr/share/genkernel/arch/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 1.1: Rimuovere /boot da /etc/fstab su sistemi senza una partizione di boot |
# nano -w /etc/fstab
/dev/BOOT /boot ext2 noauto,noatime 0 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 LVM2 probabilmente dovranno aggiungere --lvm2 agli argomenti.
Codice 1.1: Esecuzione di genkernel |
# genkernel all
|
Codice 1.1: Esecuzione di genkernel su Pegasos |
# genkernel --genzimage 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". Assicurasi di copiare gli argomenti di boot richiesti, sono
necessari per un boot corretto con genkernel.
Codice 1.1: Controllo dell'immagine del kernel e dell'initrd |
# ls /boot/${genkernel-name} /boot/${genkernel-initrd}
|
Continuare l'installazione con (Configurazione del
sistema).
1.
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 1.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 1.1: /etc/conf.d/modules |
# nano -w /etc/conf.d/modules
modules_2_6="3c59x"
|
Continuare l'installazione con la (Configurazione
del sistema).
|