Disclaimer :
Questo documento non è più valido e non è più mantenuto.
|
Guida a Genkernel in Gentoo Linux
1.
Introduzione
In generale
Per gli utenti che non se la sentono di compilare il kernel, genkernel è uno
strumento che automatizza questo processo. Può aiutare a creare un'immagine del
kernel simile a quelle disponibili sui CD di installazione Gentoo, che sono
progettate per rilevare automaticamente la configurazione hardware del sistema.
Alcuni utenti possono anche essere interessati ad usare genkernel per quel
genere di hardware che richiede una inizializzazione e un kernel funzionante
prima di essere usato. Questo perché genkernel compila automaticamente i moduli
del kernel, permettendo così all'hardware di essere caricato con particolari
parametri che ne permettano l'uso.
A chi si rivolge genkernel
Se si è incerti su come compilare un kernel, o semplicemente non si ha
familiarità con la propria configurazione hardware, genkernel può essere molto
utile. È progettato per eliminare il disagio della compilazione del kernel, e
supporta in modo predefinito gran parte dell'hardware.
Tuttavia, se si conoscono i driver richiesti dal proprio sistema, è possibile
ridurre ulteriormente il tempo necessario per compilare il kernel. Questo è
possibile configurando genkernel in modo che compili solo i driver necessari per
il proprio hardware. Spesso, il numero di driver richiesti dal proprio sistema è
minore (con conseguente minore tempo di compilazione) di quello fornito con la
configurazione predefinita.
Installare genkernel
Per ottenere genkernel, eseguire emerge genkernel dalla linea di comando.
Se si sta utilizzando la Gentoo
Reference Platform (GRP), ricordarsi di installare i pacchetti binari
usando il parametro -k per emergere. Dal momento che i GRP sono meno
aggiornati, i parametri potrebbero risultare differenti. In ogni caso, è
possibile consultare genkernel --help per ottenere aiuto su come usare la
versione di genkernel installata nel proprio sistema.
2.
Lavorare con genkernel
Come usare genkernel
Sebbene vi siano diversi modi per eseguire genkernel, l'approccio meno intrusivo
è costituito da genkernel all. Con questo comando, verrà utilizzata una
configurazione generica, che funziona bene per la maggior parte dei sistemi.
Come è stato già detto, questo metodo non è privo di difetti; la maggior parte
dei moduli creati sono inutili per l'utente medio, e potrebbero aumentare il
tempo di compilazione. Qui sotto è illustrato un approccio più efficiente,
che consiste nel passare alcune determinate flag a genkernel, come root:
Codice 2.1: Eseguire genkernel (con flag) |
# genkernel --splash --no-install --no-clean --menuconfig all
|
Il comando illustrato sopra fa in modo che genkernel crei un kernel con il
supporto a bootsplash abilitato (--splash) che dovrà essere installato
manualmente (--no-install). Nella preparazione dell'albero dei sorgenti
del kernel, genkernel si asterrà dal cancellare qualsiasi file oggetto presente
nell'albero dei sorgenti (--no-clean). Verrà infine visualizzata una
utilità di configurazione strutturata in menù, che consentirà all'utente di
selezionare quali moduli debbano essere compilati per il sistema
--menuconfig.
Ci sono altre flag che modificano il risultato prodotto da genkernel. Ad
esempio, sostituendo --no-install con la flag --install, genkernel
installerà automaticamente il nuovo kernel nella directory /boot.
La flag --mountboot consente invece a genkernel di montare
automaticamente la partizione /boot, se necessario.
Ricordarsì che genkernel è progettato per rendere la compilazione del kernel
semplice e non stressante. Per questo motivo, genkernel supporta diverse flag
per semplificare il processo di compilazione del kernel. Per fare alcuni esempi,
ci sono flag che aiutano la configurazione del kernel, mentre altre influenzano
la compilazione vera e propria. Alcune flag aiutano anche il debugging del
processo di compilazione. Per chi fosse interessato ad una maggiore
ottimizzazione, ci sono flag che influenzano l'assemblamento, la
pacchettizzazione e persino l'inizializzazione del kernel.
Il resto di questo capitolo esamina il funzionamento di varie flag e azioni
disponibili per genkernel. Alcune flag hanno varianti che servono a compiere
una operazione inversa. Le varianti inverse contengono il prefisso
no-, e i loro effetti sono racchiusi tra parentesi quadre, [].
Flag di configurazione
Le flag di configurazione elencate qui sotto servono ad aiutare l'utente a
decidere quali funzioni dovrebbero essere attivate o disattivate nel kernel
prima della compilazione. Si può anche scegliere se salvare o no il file di
configurazione creato durante il processo. Ecco le flag di configurazione
principali:
-
--no-menuconfig: Attiva [o disattiva] il comando
make menuconfig (che invoca una utilità di configurazione del kernel
interattiva e strutturata in menù), prima di compilare il kernel.
-
--gconfig: Fornisce una utility di configurazione del kernel che
dipende dalle librerie GTK+. Il vantaggio di questa opzione è che la maggior
parte degli utenti trovano più semplice e più chiaro configurare il kernel
usando questo strumento, dato che si basa sul sistema di finestre X. Lo
svantaggio di questa opzione è che è necessario il sistema X per
poterla utilizzare, quindi non funzionerà sulla riga di comando.
-
--xconfig: Fornisce una utility di configurazione del kernel che
dipende dalle librerie QT. Il vantaggio di questa opzione è che la maggior
parte degli utenti trovano più semplice e più chiaro configurare il kernel
usando questo strumento, dato che si basa sul sistema di finestre X. Lo
svantaggio di questa opzione è che è necessario il sistema X per
poterla utilizzare, quindi non funzionerà sulla riga di comando.
-
--no-save-config: Salva [o non salva] la configurazione
del kernel in un file nella directory /etc/kernels/ per un
eventuale uso successivo.
flag di compilazione
Le seguenti flag di solito producono i loro effetti durante la compilazione
vera e propria.
-
--kerneldir=percorso/sorgenti/: Specifica una
collocazione alternativa dei sorgenti, diversa da quella predefinita
(/usr/src/linux/).
-
--kernel-config=/percorso/config-file: Specifica quale
file alternativo di configurazione del kernel debba essere usato, al posto
di quello predefinito (/percorso/sorgenti/.config).
-
--module-prefix=/percorso/prefix-directory/: Specifica
un prefisso alla directory dove verranno installati i moduli del kernel (il
percorso predefinito è /lib/modules/.)
-
--no-clean: Attiva [o disattiva] il comando make
clean prima di compilare il proprio kernel. Il comando make clean
rimuove tutti i file oggetto e le dipendenze dall'albero dei sorgenti del
kernel.
-
--no-mrproper: Attiva [o disattiva] il comando make
mrproper prima della compilazione del kernel. Come il comando make
clean, make mrproper rimuove tutti i file oggetto e le dipendenze
dall'albero dei sorgenti del kernel. Tuttavia, sarà rimosso anche ogni
precedente file di configurazione (in
/percorso/sorgenti/.config o
/percorso/sorgenti/.config-old.)
-
--oldconfig: invoca il comando make oldconfig, che tenta di
raccogliere informazioni di configurazione per l'architettura del sistema da
uno script generico in /usr/share/genkernel/. Questo è un
processo non interattivo; non è previsto alcun input dell'utente. Inoltre,
se --oldconfig è usato in unione con --clean, quest'ultima
flag viene negata, causando l'attivazione della flag --no-clean.
-
--callback="echo hello: Chiama gli argomenti specificati
(echo hello, in questo caso) dopo che il kernel e i moduli rilevanti
sono stati compilati, ma prima di compilare l'immagine initrd. Questo può
essere utile se si vogliono installare moduli esterni nell'immagine initrd,
emergendo gli oggetti rilevanti con la funzione callback, e ridefinendo poi
un gruppo di moduli genkernel.
-
--no-install: Attiva [o disattiva] il comando make
install, che installa la nuova immagine del kernel, il file di
configurazione, l'immagine initrd e il file System.map all'interno della
partizione di boot. Anche i moduli compilati verranno installati.
-
--no-initrdmodules: Impedisce che i moduli vengano copiati
nell'immagine initrd creata da genkernel. Questa flag è un'eccezione alla
regola del prefisso no-; l'omissione di questo prefisso genera una
flag non valida.
-
--genzimage: Crea l'immagine initrd prima dell'immagine del kernel.
(Questo trucco attualmente si applica solo ai sistemi PPC Pegasos.)
Flag del compilatore
Genkernel supporta i seguenti parametri, che vengono passati alle applicazioni
importanti durante l'assemblamento del kernel. Queste flag influenzano il
compilatore usato per il processo di compilazione del kernel, sebbene ad
un livello più basso.
-
--kernel-cc=nomeCompiler: Questo parametro specifica il
compilatore che verrà usato per compilare il kernel.
-
--kernel-ld=nomeLinker: Questo parametro specifica il linker
che verrà usato per compilare il kernel.
-
--kernel-make=nomeMake: Questo parametro specifica il GNU Make
alternativo che verrà usato per compilare il kernel.
-
--utils-cc=nomeCompiler: Questo parametro specifica un
compilatore che verrà usato per compilare le utility di supporto.
-
--utils-ld=nomeLinker: Questo parametro specifica un linker
che verrà usato per compilare le utility di supporto.
-
--utils-as=nomeAssembler: Questo parametro specifica
l'assemblatore che verrà usato per compilare le utility di supporto.
-
--utils-make=nomeMake: Questo parametro specifica un GNU Make
alternativo che verrà usato per compilare le utility di supporto.
-
--makeopts=-jX: Specifica il numero di thread contemporanei
che la utilità make può implementare durante la compilazione del kernel (e
delle utilità). La variabile 'X' è un numero che si ottiene
aggiungendo 1 al numero di CPU usate dal sistema. Quindi, per un sistema con
una sola CPU, la flag appropriata è -j2; un sistema con due CPU userà
la flag -j3, e così via. (Un sistema con un processore che
supporti la tecnologia Hyper-Threading&trade (HT), può usare la flag
-j3, sempre che il supporto Symmetric Multi-Processing (SMP)
sia abilitato nel kernel.)
Flag di debugging
L'uso di flag di debugging durante il processo di compilazione del kernel
controlla le informazioni ottenute, nonché il modo in cui tali dati si
presentano.
-
--debuglevel=verblevel: Controlla il livello di verbosità
delle informazioni fornite da genkernel. La variabile verblevel è un
intero tra 0 e 5. Il livello '0' rappresenta un output minimale, mentre '5'
fornisce tutte le informazioni possibili sulle attività di genkernel durante
il processo di compilazione.
-
debugfile=/percorso/outputfile: Ignora il valore
impostato nell'argomento --debuglevel, e invia tutti i dati di
debugging prodotti da genkernel verso lo specificato file di output, che è
collocato in modo predefinito in /var/log/genkernel.log.
-
--no-color: Attiva [o disattiva] l'output colorato
delle informazioni di debugging (fornite da genkernel) usando sequenze di
escape.
Flag di inizializzazione
Queste flag sono usate per creare determinati effetti durante l'avvio del
sistema. Alcune di esse agiscono principalmente sull'estetica, mentre altre
possono essere essenziali per attivare alcune funzioni sul sistema.
-
--no-splash: Attiva [o disattiva] il supporto per framebuffer splash
nell'immagine initrd prodotta da genkernel. Per sovrascrivere il tema
utilizzato in modo predefinito da fbsplash, si usa
--splash=TemaPreferito (dove TemaPreferito è il nome
di una delle directory in /etc/splash/.)
-
--splash-res=RisoluzionePreferita: Questa flag consente di
selezionare quali risoluzioni dello splash screen saranno supportate da
initrd durante l'avvio del sistema. Questo è utile per due ragioni: in primo
luogo, si è in grado di selezionare solo le risoluzioni dello splash screen
che ci interessano per il proprio sistema; in secondo luogo, si evita
l'aumento non necessario dello spazio su disco richiesto da initrd (dato che
initrd non deve supportare risoluzioni non rilevanti per la propria
configurazione di sistema.) Tuttavia, potrebbe essere utile omettere questa
flag se si sta compilando il kernel per un CD di installazione; questo
consente infatti a splash di supportare tutte le possibili risoluzioni.
-
--do-keymap-auto: Forza la selezione della mappatura della tastiera
durante la sequenza di boot.
-
--lvm2: Include il supporto per lo storage utilizzando il Logical Volume Management
(LVM2) da binari statici, se disponibile nel sistema. I binari LVM2
(statici) che servono, se non sono disponibili vengono compilati.
Assicurarsi di installare il pacchetto lvm2 con emerge lvm2 prima di
abilitare questa flag, e consulta la guida Installazione di Gentoo con LVM2.
-
--evms2: Include il supporto per lo storage utilizzando l'Enterprise Volume Management
System (EVMS2), se disponibile. Assicurarsi di installare il pacchetto
evms con USE=static emerge evms2 prima di usare questa flag
(genkernel.) (Omettere la flag USE=static durante
l'installazione del pacchetto impedirà l'installazione dei binari statici
necessari.)
-
--dmraid: Include il supporto per DMRAID,
l'utilità che crea mappature RAID usando il sottosistema device-mapper del
kernel. DMRAID rileva, attiva, disattiva e mostra le proprietà dei set RAID
software (ATARAID, per esempio) e delle partizioni DOS contenute.
-
--luks: Include il supporto per Linux Unified Key Setup o LUKS.
Permette di usare un dispositivo criptato tramite LUKS contenente il
filesystem di root. Sul bootloader verrà quindi impostato quel dispositivo
criptato come valore di crypt_root (e real_root sarà il dispositivo non
criptato creato da LUKS).
-
--linuxrc=/percorso/linuxrc: Specifica un linuxrc —
creato dall'utente; si tratta di uno script che viene inizializzato durante
la fase di avvio del kernel, prima del processo di boot vero e proprio. (Uno
script linuxrc predefinito dovrebbe trovarsi nella directory
/usr/share/genkernel/.) Questo script consente di avviare un
kernel leggero e modularizzato, caricando (come moduli) i driver che sono
necessari al sistema.
-
--cachedir="/percorso/directory/alternativa/: Sostituisce la
collocazione predefinita della cache usata durante la compilazione del
kernel.
-
--tempdir=/percorso/nuova/tempdir/: Specifica la collocazione dei
file temporanei usati da genkernel durante la compilazione del kernel.
-
--unionfs: Include il supporto per lo Unification File
System nell'immagine initrd.
Altre flag
Le flag elencate qui sotto sono supportate da genkernel, ma non fanno parte di
nessuna delle altre categorie:
-
--mountboot: Rileva se la directory /boot deve essere
montata su una partizione separata, oppure no. Controllerà poi lo script
/etc/fstab per istruzioni su come montare la partizione di boot
su un filesystem (se necessario).
-
--kernname=NickName: Consente di modificare il nome
dell'immagine del kernel e di quella initrd nella directory
/boot/, cosicché le immagini prodotte si chiameranno
kernel-NickName-versione e initramfs-NickName-versione.
Azioni possibili
Un'azione dice a genkernel cosa produrre. Attualmente, sono supportate le
seguenti azioni:
-
initrd: Produce solo l'immagine initrd
-
bzImage: Produce solo l'immagine del kernel
-
kernel: Produce solo l'immagine del kernel e i moduli
-
all: Produce tutti gli stage — l'immagine initrd, quella del
kernel e i moduli.
L'ultima azione, all, è raccomandata per la maggior parte degli utenti,
dato che produce gli stage necessari per avere un kernel funzionante. È
importante ricordare che un'azione dice semplicemente a genkernel cosa
produrre, non cosa installare.
Configurazione del bootloader
Per permettere a genkernel di funzionare con il proprio bootloader, è necessario
effettuare tre o quattro modifiche al file di configurazione di quest'ultimo.
-
Aggiungere root=/dev/ram0 e init=/linuxrc ai parametri da
fornire all'immagine del kernel.
-
Aggiungere real_root=/dev/hda3, per esempio, ai parametri da fornire
all'immagine del kernel se /dev/hda3 contiene la partizione di
root.
-
Se si stà utilizzando splash, è necessario fornire un modalità video
corretta come vga=0x317 ai parametri da passare al kernel ed
aggiungere splash=verbose o splash=silent, a seconda del grado
di verbosità che si richiede al bootloader.
-
Aggiungere le informazioni initrd a seconda di come il bootloader le
richieda: per maggiori informazioni su come rendere il bootloader in grado
di usare initrd, consultare il capitolo Configurazione
del Bootloader nel Manuale Gentoo.
3.
Opzioni di configurazione
Modificare /etc/genkernel.conf
Passare le flag a genkernel da linea di comando può essere macchinoso,
specialmente quando se ne hanno una dozzina:
Codice 3.1: Eseguire genkernel (con molte flag) |
# genkernel --debuglevel=5 --no-color --no-mrproper --clean --splash \
--kerneldir=/path/to/alternate/kernel/sources --install --menuconfig \
--kernel-config=/path/to/preferred/configfile --save-config --mountboot all
|
Per fortuna, esiste un file di configurazione dove può essere impostata (o
modificata) a proprio piacimento gran parte delle opzioni principali. Ecco una
sintesi delle opzioni più importanti:
-
MENUCONFIG=[yes|no]: Questa opzione equivale alla flag
--menuconfig usata da genkernel, che fa sì che venga utilizzato il
comando make menuconfig per invocare una utilità di configurazione
del kernel basata sulla linea di comando. Per invocare automaticamente
questa utilità durante la configurazione del kernel attraverso questo
script, impostare l'opzione su 'yes'; altrimenti, scegliere 'no'.
-
CLEAN=[yes|no]: Impostare questa opzione su 'yes' equivale
alla flag --clean usata da genkernel, e invoca il comando make
clean per rimuovere tutti i file oggetto e le dipendenze dall'albero dei
sorgenti del kernel. Impostare quasta opzione su 'no' crea un effetto a
cascata — equivale alla flag --no-clean di genkernel, che
disabilita il comando make clean e implica la flag
--no-mrproper — annullando in pratica il comando make
mrproper.
-
MRPROPER=[yes|no]: Impostare questa opzione su 'yes' equivale
alla flag --mrproper usata da genkernel, e invoca il comando make
mrproper, che ripulisce l'albero dei sorgenti del kernel da qualunque
file di configurazione. Selezionare 'no' equivale invece alla flag
--no-mrproper, che disabilita il comando make mrproper.
-
MOUNTBOOT=[yes|no]: Impostare questa opzione su 'yes' equivale
alla flag --mountboot, che monta automaticamente la directory
/boot/ durante la compilazione (se necessario). Se la directory
/boot/ si trova su una partizione separata, è consigliabile
attivare questa opzione; sarà un passo (essenziale) in meno da ricordare
dopo.
-
SAVE_CONFIG=[yes|no]: Dopo la configurazione del kernel, le
opzione selezionate vengono salvate come .config nell'albero
del sorgenti del kernel. Questo script può essere sovrascritto nella
compilazione del kernel successiva, o addirittura può essere cancellato
dall'albero dei sorgenti. Scegliere 'yes' qui equivale alla flag
--save-config, che salva tutte le opzioni selezionate durante la
configurazione del kernel in uno script nella directory
/etc/kernels/. Scegliere 'no' mantiene lo status quo.
-
USECOLOR=[yes|no]: Impostare questa opzione su 'yes' equivale
alla flag --color, che colora l'output di genkernel per facilitare il
debugging (quando necessario.)
-
DEBUGLEVEL=[0|1|2|3|4|5]: Questa opzione serve a regolare la
verbosità dell'output prodotto da genkernel — impostando questa
opzione a '0', con --debuglevel=0 sarà soppresso ogni output prodotto
da genkernel; impostare questa opzione a '5', con --debuglevel=5,
fornisce all'utente tutto l'output prodotto da genkernel.
Scegliendo le opzioni appropriate in /etc/genkernel.conf, si può
ridurre il numero delle flag passate a genkernel dalla riga di comando:
Codice 3.2: Eseguire genkernel (con flag), dopo aver configurato genkernel.conf |
# genkernel --splash --kerneldir=/path/to/alternate/kernel/sources \
--kernel-config=/path/to/preferred/configfile --install all
|
Con entrambi i metodi si ottengono risultati identici, ma il secondo ha la
maggior parte delle opzioni salvate in uno script che può essere modificato in
un secondo tempo.
4.
Avvio da rete con genkernel
Avvio da rete con un CD di Installazione
L'utilità genkernel può produrre immagini del kernel e di initrd che supportino
l'avvio da rete, o netboot. Con un po' di fortuna, si dovrebbe riuscire
ad avviare da rete qualsiasi computer recente, entrando nell'ambiente fornito
dal CD di installazione.
La magia sta nello script linuxrc di genkernel: esso proverà ad effettuare il
netmount del CD di Installazione usando NFS. Fatto ciò, gli init
scripts del CD di Installazione potranno assumere il controllo, come se il
CD fosse presente localmente.
Produrre immagini del kernel e initrd con supporto per l'avvio da
rete
Per abilitare il supporto all'avvio da rete, includere le seguenti opzioni
durante la configurazione del kernel:
Avvertenza:
Il supporto all'avvio da rete con genkernel è sperimentale e potrebbe contenere
bug.
|
Per prima cosa, l'immagine del kernel deve includere i driver per le proprie
schede di rete, o Network Interface Cards (NIC). Normalmente, i driver per
l'avvio da rete è essenziale avere questi driver compilati direttamente
all'interno dell'immagine del kernel, e non come moduli.
Codice 4.1: Configurare un kernel della serie 2.6.x affinché supporti il proprio driver di rete |
Device Drivers --->
Networking Support --->
Ethernet (10 or 100Mbit) --->
[*] Ethernet (10 or 100Mbit)
<*> il driver per la propria schede di rete
|
In secondo luogo, si suggerisce di attivare le opzioni IP: kernel level
autoconfiguration e IP:DHCP support. Questo rende le cose più
semplici, dato che gli indirizzi IP e il percorso NFS del CD di Installazione
possono essere configurati su un server DHCP. Certo, questo significa che la
linea di comando del kernel rimarrà la stessa per ogni macchina — il che è
molto importante nell'etherbooting.
Codice 4.2: Configurare un kernel della serie 2.6.x affinché supporti DHCP |
Device Drivers --->
Networking Support --->
Networking options
[*] TCP/IP networking--->
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
|
Inoltre, si dovrebbe abilitare SquashFS, dato che la maggior parte dei moderni
CD di Installazione Gentoo lo richiedono. Il supporto per SquashFS non è incluso
nell'albero dei sorgenti del kernel generico. Per abilitare SquashFS, applicare
le patch necessarie al kernel generico, oppure installare gentoo-sources.
Codice 4.3: Configurare il kernel affinché supporti SquashFS |
File systems--->
Miscellaneous filesystems --->
[*] SquashFS 2.X - Squashed file system support
|
Una volta completato il processo di compilazione, creare un tarball
compresso (tar.gz) che contenga i moduli del kernel. Questo passaggio è
necessario solo se la versione del proprio kernel non corrisponde alla versione
dell'immagine del kernel sul CD di Installazione.
Codice 4.4: Creare un tarball compresso contenente i moduli del kernel |
# cd /
# tar -cf /tmp/modules-X.Y.Z.tar.gz /lib/modules/X.Y.Z/
|
A seconda del meccanismo usato dall'avvio da rete, si dovranno eseguire alcuni
dei seguenti passaggi:
Codice 4.5: Creare un'immagine di boot |
# emerge mknbi
# cd /boot
# mkelf-linux -params="root=/dev/ram0 init=/linuxrc ip=dhcp" kernel... initrd... > etherboot.img
# emerge sparc-utils
# cd /boot
# elftoaout kernel... -o kernel.aout
# piggyback64 kernel.aout System.map-... initrd-...
# mv kernel.aout openboot.img
|
Per finire, copiare questo kernel sul proprio server TFTP. I dettagli dipendono
dall'architettura e non rientrano negli scopi di questa guida. Si prega di fare
riferimento alla documentazione per la propria piattaforma.
Configurazione NFS
Per configurare una condivisione NFS che contenga il CD di Installazione, usare
il loop device per montare l'immagine ISO, e poi copiare il contenuto del CD
all'interno della condivisione NFS. In più, gli script initrd di genkernel
estrarranno tutti i files tar.gz che si trovano nella directory
/nfs/livecd/add/. Tutto ciò che si deve fare è copiare l'archivio
modules-X.Y.Z.tar.gz nella directory /nfs/livecd/add/.
Codice 4.6: Preparare la condivisione NFS |
# mount /tmp/gentoo-livecd.iso /mnt/cdrom -o loop
# cp -p /mnt/cdrom /nfs/livecd
# umount /mnt/cdrom
# mkdir /nfs/livecd/add
# cp /tmp/modules-X.Y.Z.tar.gz /nfs/livecd/add
|
Configurazione DHCP
Le immagini netboot chiederanno al proprio server DHCP un indirizzo IP e un
parametro root-path. Entrambi possono essere specificati usando un indirizzo MAC
per identificare le macchine:
Codice 4.7: Esempio configurazione client dhcpd.conf |
...
host netbootableMachine {
hardware ethernet 11:22:33:44:55:66;
fixed-address 192.168.1.10;
option root-path "192.168.1.2:/nfs/livecd";
}
...
|
Istruzione per l'avvio da rete
L'avvio da rete di per sé dipende molto dalla piattaforma. La parte importante
sta nello specificare i parametri ip=dhcp e init=/linuxrc sulla
riga di comando del kernel, visto che questo attiverà l'interfaccia di rete e
dirà agli script initrd di montare il CD di Installazione via NFS. Ecco alcuni
consigli specifici per le diverse piattaforme:
Codice 4.8: Istruzioni per l'avvio da rete |
ok boot net ip=dhcp init=/linuxrc
DEFAULT gentoo
TIMEOUT 40
PROMPT 1
LABEL gentoo
KERNEL kernel-X.Y.Z
APPEND initrd=initrd-X.Y.Z root=/dev/ram0 init=/linuxrc ip=dhcp
|
5.
Conclusione
Automatizzare o non automatizzare?
Lo scopo di genkernel è quello di fornire un'alternativa (più facile) al metodo
tradizionale di compilazione del kernel. Come sempre, si può scegliere se si
vuole automatizzare il processo di compilazione del kernel, oppure no.
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|