Avertisment :
Acest document nu este valid şi nu mai este întreţinut.
|
Ghid Genkernel pentru Gentoo Linux
1.
Introducere
Raţionalism
Pentru utilizatorii ce nu sunt obişnuiţi cu compilarea de kernel, genkernel
este un utilitar pentru automatizarea acestui proces. Vă poate ajuta să
creaţi o imagine de kernel asemănătoare cu cele disponibile pe mediile
Installation CD ale Gentoo, ce sunt proiectate pentru a detecta automat
configuraţia hardware a sistemului dvs. Unii utilizatori pot fi, de asemenea,
interesaţi în utilizarea genkernel pentru iniţializarea necesităţilor
hardware şi a unui kernel funcţional înainte de a porni sistemul. Deoarece
genkernel vă compilează automat modulele de kernel, puteţi utiliza
componente hardware ce pot necesita anumiţi parametri de module pentru a fi
încărcate pentru operarea corectă.
Audienţa Ţintă
Dacă sunteţi, fie nesiguri despre modalitatea de compilare a unui kernel,
sau sunteţi doar nefamiliari cu configuraţia hardware, genkernel este un
utilitar foarte la-ndemână. Este proiectat pentru a înlătura chinul
procesului de compilare a kernel-ului şi suportă cele mai multe componente
hardware, implicit.
Oricum, dacă doriţi să ştiţi ce driver-e sunt necesare pentru sistemul
dvs., este posibil să puteţi reduce timpul de compilare a kernel-ului.
Aceasta este posibil, deoarece îi puteţi specifica utilitarului genkernel
să compileze doar driver-ele relevante pentru componentele dvs. hardware.
Deseori, numărul driver-elor necesare sistemului dvs. va fi mai mic
(implicând un timp de compilare al kernel-lui redus) decât configuraţia
implicită oferită.
Instalarea genkernel
Pentru a obţine genkernel, rulaţi emerge genkernel din linia de
comandă. Dacă utilizaţi Platforma
de Referinţă Gentoo (eng.: Gentoo Reference Platform - GRP),
amintiţi-vă să instalaţi pachetele binare prin adăugarea opţiunii
-k comenzii emerge. Deoarece pachetele GRP conţin o versiune veche de
genkernel, opţiunile pot diferi. În oricare caz, consultaţi genkernel
--help pentru a observa modul de utilizare a versiunii de genkernel
instalată pe sistemul dvs.
2.
Lucrul cu genkernel
Modul de utilizare al genkernel
Deşi există mai multe modalităţi de a rula genkernel, cea mai puţin
intruzivă abordare este oferită de genkernel all. În acest caz, o
configuraţie generică ce funcţionează corect pe majoritatea sistemelor
este utilizată. Aşa cum am menţionat anterior, această abordare nu este
una fără dezavantaje; majoritatea modulelor create sunt nefolositoare
pentru utilizatorul comun şi poate mări timpul de compilare. Mai jos aveţi
o ilustrare a unei abordări mai eficiente, obţinută prin transmiterea
anumitor opţiuni utilitarului genkernel, ca root:
Cod 2.1: Rularea genkernel (cu alte opţiuni) |
# genkernel --bootsplash --no-install --no-clean --menuconfig all
|
Operaţia de mai sus cauzează genkernel să creeze un kernel cu bootsplash
activat (--bootsplash) ce va trebui instalat manual
(--no-install). În timpul pregătirii structurii surselor de kernel,
genkernel nu va curăţa nici un modul deja existent prezent în structura de
surse (--no-clean). Un utilitar bazat pe meniuri pentru configurarea
kernel-ului va fi afişat pentru a permite utilizatorului să selecteze ce
module vor fi compilate pentru sistem (--menuconfig).
Există şi alte opţiuni ce modifică rezultatul oferit de genkernel. Spre
exemplu, înlocuirea opţiunii --no install cu opţiunea
--install îi permite utilitarului genkernel să instaleze automat noua
imagine de kernel în directorul /boot. Utilizarea opţiunii
--mountboot îi permite utilitarului genkernel să mount-eze partiţia
dvs. /boot în mod automat, dacă este necesar.
Amintiţi-vă, genkernel este proiectat pentru a vă uşura considerabil
compilarea de kernel. Din acest motiv, genkernel deţine unele opţiuni pentru
a uşura efortul de compilare al kernel-ului. Spre exemplu, există opţiuni
pentru a ajuta configurarea kernel-ului, în timp ce alte opţiuni afectează
compilarea efectivă. Unele opţiuni vă ajută chiar să depanaţi
procesul de compilare. Pentru cei interesaţi în optimizări viitoare,
există opţiuni ce afectează asamblarea kernel-ului, împachetarea şi
chiar iniţializarea kernel-ului.
Restul acestui capitol examinează funcţionalitatea unor diverse opţiuni
şi acţiuni disponibile pentru genkernel. Unele din aceste opţiuni au
variante ce efectuează o operaţie convergentă. Variantele convergente
deţin prefixul no- şi efectele acestora sunt afişate între
paranteze pătrate, [].
Opţiuni de Configurare
Opţiunile de configurare afişate mai jos sunt prezente pentru a vă ajuta
în decizia căror funcţionalităţi să fie activate şi care nu, în
kernel, înainte de compilare. Puteţi chiar alege dacă fişierul de
configurare să fie salvat sau nu. Următoarele opţiuni sunt în special de
configurare:
-
--no-menuconfig: Activează [sau dezactivează]
comanda make menuconfig (ce invocă un utilitar de configurare a
kernel-ului interactiv, bazat pe meniuri), înainte de a compila
kernel-ul.
-
--gconfig: Oferă utilitarul de configurare al kernel-ului ce
depinde de librăriile GTK+. Avantajul acestei opţiuni este că
majoritatea utilizatorilor îl găsesc mai uşor şi mai clar de
configurat kernel-ul prin utilizarea acestui utilitar, deoarece se
bazează pe sistemul de ferestre X. Dezavantajul acestei opţiuni este
că aveţi nevoie de sistemul de ferestre X pentru a o utiliza,
deci nu va funcţiona în linie de comandă.
-
--xconfig: Oferă un utilitar de configurare a kernel-ului ce
depinde de librăriile QT.Avantajul acestei opţiuni este că
majoritatea utilizatorilor îl găsesc mai uşor şi mai clar de
configurat kernel-ul prin utilizarea acestui utilitar, deoarece se
bazează pe sistemul de ferestre X. Dezavantajul acestei opţiuni este
că aveţi nevoie de sistemul de ferestre X pentru a o utiliza,
deci nu va funcţiona în linie de comandă.
-
--no-save-config: Salvează [sau nu salvează]
configurarea kernel-ului într-un fişier din directorul
/etc/kernels/ pentru o utilizare ulterioară.
Opţiuni de Compilare
Următoarele opţiuni au efect, de obicei, în timpul compilării efective:
-
--kerneldir=/calea/catre/surse/: Specifică o locaţie
alternativă a surselor de kernel, în locul celei implicite,
/usr/src/linux/.
-
--kernel-config=/calea/catre/fisierul-de-configurare:
Specifică ce configuraţie alternativă de kernel va fi utilizată, în
locul fişierului implicit, /calea/catre/surse/.config.
-
--module-prefix=/calea/catre/directorul-prefix/:
Specifică un prefix către directorul unde modulele de kernel vor fi
instalate (calea implicită este directorul /lib/modules/.)
-
--no-clean: Activează [sau dezactivează] comanda
make clean înainte de compilarea kernel-ului dvs. Comanda make
clean îndepărtează toate fişierele obiect şi dependenţele din
structura de surse a kernel-ului.
-
--no-mrproper: Activează [sau dezactivează]
comanda make mrproper înainte de compilarea kernel-ului. La fel ca
şi comanda make clean, make mrproper îndepărtează
toate fişierele obiect şi dependenţele din structura de surse a
kernel-ului. Oricum, orice fişiere de configurare anterioare (din
/calea/catre/surse/.config sau
/calea/catre/surse/.config.old) vor fi de asemenea
îndepărtate din structura de surse de kernel.
-
--oldconfig: Execută comanda make oldconfig, ce încearcă
să colecteze informaţii de configurare pentru arhitectura sistemului
dintr-un script generic din /usr/share/genkernel/. Acesta este
un proces non-interactiv; nu este cerut nimic din partea utilizatorului. De
asemenea, dacă --oldconfig este utilizat în conjuncţie cu
--clean, ultima opţiune este negată, rezultând în activarea
opţiunii --no-clean.
-
--callback="echo hello": Execută argumentele specificate
(echo hello, în acest caz) după ce kernel-ul şi modulele
relevante au fost construite, dar înainte de a compila imaginea initrd.
Aceasta poate fi utilă în cazul în care doriţi să instalaţi
module externe în imaginea initrd prin instalarea cu ajutorul emerge a
pachetelor relevante cu ajutorul opţiunii de callback, şi apoi
redefinirea unui grup de module genkernel.
-
--no-install: Activează [sau dezactivează]
comanda make install, ce instalează noua dvs. imagine de kernel,
fişierul de configurare, imaginea initrd şi harta sistem în
partiţia dvs. mount-ată de boot. Orice module compilate vor fi
instalate, de asemenea.
-
--no-initrdmodules: Opreşte operaţia de copiere a
oricărui modul în imaginea initrd creată de genkernel. Această
opţiune este o excepţie de la regula prefixului no-; omiterea
acestui prefix, creează o opţiune invalidă de kernel.
-
--genzimage: Crează o imagine initrd, înainte de imaginea de
kernel (Acest truc se aplică, momentan, doar sistemelor PPC Pegasos.)
Opţiuni pentru Compilator
Următoarele opţiuni sunt suportate de genkernel, şi sunt transmise
aplicaţiilor relevante, în timp ce kernel-ul este asamblat. Aceste opţiuni
afectează compilatorul utilizat pentru procesul de compilare a
kernel-ului, dar la un nivel mult mai inferior.
-
--kernel-cc=unAnumeCompilator: Specifică un compilator
invocat în timpul procesului de compilare a kernel-ului.
-
--kernel-ld=unAnumeEditorDeLegături: Specifică un
editor de legături invocat în timpul procesului de compilare a
kernel-ului.
-
--kernel-as=unAnumeAsamblor: Specifică aplicaţia pentru
asamblare invocată în timpul procesului de compilare a kernel-ului.
-
--kernel-make=oAnumeAplicaţieMake: Specifică o
alternativă la utilitarul GNU make invocat în timpul procesului
de compilare a kernel-ului.
-
--utils-cc=unAnumeCompilator: Specifică aplicaţia
compilator invocată în timpul compilării utilitarelor de suport.
-
--utils-ld=unAnumeEditorDeLegături: Specifică editorul
de legături invocat în timpul compilării utilitarelor de suport.
-
--utils-as=unAnumeAsamblor: Specifică aplicaţia pentru
asamblare invocată în timpul compilării utilitarelor de suport.
-
--utils-make=oAnumeAplicaţieMake: Specifică o
alternativă la utilitarul GNU make invocat în timpul
compilării utilitarelor de suport.
-
--makeopts=-jX: Specifică numărul de fire de execuţie
concurente ce pot fi implementate de aplicaţia make în timp ce
kernel-ul (şi utilitarele) sunt compilate. Variabila 'X' este
numărul obţinut prin adăugarea numărului unu (1) numărului de
procesoare utilizate de sistem. Deci, pentru un sistem cu un singur
procesor, opţiunea potrivită este -j2; un sistem cu două
procesoare va utiliza opţiunea -j3, şi aşa mai departe.
(Un sistem cu un singur procesor ce suportă Tehnologia
Hyper-Threading™ (HT) poate utiliza opţiunea -j3
oferită de suportul Symmetric Multi-Processing (SMP) activat în
kernel.)
Opţiuni de Depanare
Utilizarea opţiunilor de depanare în timpul procesului de compilare a
kernel-ului, controlează cantitatea de informaţie raportată, ca şi
prezentarea datelor indicate.
-
--debuglevel=verblevel: Controlează nivelul de informare
pentru datele oferite de genkernel. Variabila verblevel este un
număr întreg între 0 şi 5. Nivelul '0' reprezintă afişare
minimală, în timp ce '5' oferă atâta informaţie cât este
posibilă despre activităţile genkernel în timpul procesului de
compilare a kernel-ului.
-
--debugfile=/calea/catre/fisierul-de-iesire: Ignoră
valoarea setată de argumentul --debuglevel şi transmite
toate datele de depanare produse de genkernel în fişierul de
ieşire specificat, ce este stocat în
/var/log/genkernel.log, implicit.
-
--no-color: Activează [sau dezactivează] afişarea colorată
a informaţiei de depanare (raportată de genkernel) utilizând
secvenţe escape.
Opţiuni de Iniţializare
Opţiunile indicate aici sunt utilizate pentru a crea anumite efecte în timpul
pornirii sistemului. Unele din aceste opţiuni sunt în primul rând pentru
estetică, în timp ce altele pot fi esenţiale pentru activarea anumitor
funcţionalităţi în sistem.
-
--no-bootsplash: Activează [sau dezactivează]
suportul pentru bootsplash
în imaginea initrd compilată de genkernel. Funcţionalitatea
bootsplash este suportată pe un număr restrâns de arhitecturi, fiind
necesar, de asemenea, un kernel ce suportă bootsplash.
-
--no-gensplash: Activează [sau dezactivează]
suportul pentru gensplash
în imaginea initrd compilată de genkernel. Utilitarul gensplash este
intenţionat ca fiind un înlocuitor al lui bootsplash şi este
proiectat pentru utilizarea în seriile de kernel 2.6.x. Pentru a
suprascrie tema implicită utilizată de gensplash, utilizaţi
--gensplash=TemaPreferata (unde TemaPreferata este
titlul unuia din directoarele din locaţia /etc/splash/.
-
--gensplash-res=RezolutiaPreferata: Această opţiune vă
permite să selectaţi ce rezoluţii de afişare a imaginii splash vor
fi suportate de imaginea initrd, în timpul pornirii sistemului. Aceasta
este utilă din două motive: Primul, este faptul că puteţi selecta
doar rezoluţiile de afişare a imaginii splash, ce sunt relevante
pentru sistemul dvs. Al doilea este faptul că evitaţi creşterea
nenecesară a spaţiului de disc necesitat de imaginea initrd (deoarece
initrd nu trebuie să suporte rezoluţii irelevante pentru sistemul
dvs.) Oricum, puteţi omite această opţiune, dacă kernel-ul este
construit pentru un mediu Installation CD; aceasta permite suportul
gensplash pentru toate rezoluţiile posibile.
-
--do-keymap-auto: Forţează selecţia dispunerii tastelor în
timpul secvenţei de boot.
-
--lvm2: Include suport pentru stocarea prin intermediul Logical Volume Management
(LVM2) din binare statice, dacă sunt disponibile pentru sistem.
Binarele relevante (statice) de LVM2 sunt compilate, dacă nu sunt
disponibile. Asiguraţi-vă că instalaţi pachetul lvm2 în sistemul
dvs., cu emerge lvm2 înainte de a activa această opţiune, şi
să consultaţi ghidul pentru Instalarea LVM2 în
Gentoo.
-
--evms2: Include suport de stocare utilizând Enterprise Volume Management
System (EVMS2), în cazul în care este disponibil. Asiguraţi-vă
că instalaţi pachetul evms în sistemul dvs., cu USE=static emerge
evms2 înainte de a utiliza această opţiune (genkernel).
(Omiterea indicatorului USE=static în timpul
instalării pachetului nu va putea include binarele statice necesare,
cauzând eroare.)
-
--dmraid: Include suport pentru DMRAID;
utilitarul ce creează scheme RAID utilizând subsistemul device-mapper
din kernel. DMRAID descoperă, activează, dezactivează şi
afişează proprietăţi ale seturilor software de RAID (ATARAID, spre
exemplu) şi partiţiile DOS conţinute.
-
--linuxrc=/calea/catre/script-ul/dvs/linuxrc: Specifică un
script creat personalizat linuxrc — un script ce este
iniţializat în timpul stadiului de pornire al unui kernel, înainte de
procesul de boot efectiv. (Un fişier implicit linuxrc ar trebui să se
afle în directorul /usr/share/genkernel/.) Acest script
vă permite să boot-aţi într-un kernel mic, modularizat şi să
încărcaţi driver-ele necesare (ca module) de sistem.
-
--cachedir=/calea/catre/alt/director/: Suprascrie locaţia de
cache implicită, utilizată în timpul compilării kernel-ului.
-
--tempdir=/calea/catre/noul/director-temporar/: Specifică
locaţia directorului temporar utilizat de genkernel în timpul
compilării kernel-ului.
-
--unionfs: Include suport pentru Sistemul de
Fişiere de Unificare în imaginea initrd.
Opţiuni Diverse
Opţiunile afişate mai jos sunt suportate de genkernel, dar nu se
încadrează perfect în nici una din celelalte categorii:
-
--mountboot: Detectează dacă sau nu directorul
/boot/ trebuie mount-at într-o partiţie separată. Va
verifica script-ul /etc/fstab pentru instrucţiuni despre
modalitatea de mount-are a partiţiei boot pe un sistem de fişiere
(dacă este nevoie).
-
--kernname=Nume: Vă permite să modificaţi numele
kernel-ului şi a imaginilor initrd din directorul /boot/,
pentru ca imaginile produse să fie kernel-Nume-versiune şi
initramfs-Nume-versiune.
Acţiuni Posibile
O acţiune îi specifică utilitarului genkernel ce anume să construiască.
Momentan, următoarele acţiuni sunt suportate:
-
initrd: Construieşte doar imaginea initrd
-
bzImage: Construieşte doar imaginea de kernel
-
kernel: Construieşte doar imaginea de kernel şi modulele
-
all: Construieşte toate stadiile — imaginea initrd, imaginea de kernel şi modulele.
Ultima acţiune, all, este recomdandată pentru majoritatea
utilizatorilor, deoarece construieşte stagiile necesare pentru un kernel
funcţional. Amintiţi-vă, o acţiune doar îi specifică aplicaţiei
genkernel ce să construiască, nu ce să instaleze.
Configurarea Aplicaţiei Bootloader
Pentru a seta genkernel să funcţioneze cu aplicaţia dvs. bootloader,
trebuie aplicate trei sau patru paşi fişierului de configurare al
aplicaţiei dvs. bootloader:
-
Adăugaţi root=/dev/ram0 şi init=/linuxrc parametrilor
de kernel ce sunt transmişi imaginii de kernel.
-
Adăugaţi real_root=/dev/hda3, spre exemplu, parametrilor de
kernel transmişi imaginii de kernel, dacă /dev/hda3
conţine partiţia dvs. rădăcină.
-
Dacă utilizaţi bootsplash, adăugaţi un mod cum ar fi
vga=0x317 parametrilor transmişi imaginii de kernel şi
adăugaţi, de asemenea, splash=verbose sau splash=silent
în funcţie de nivelul de informare necesar din aplicaţia dvs.
bootloader.
-
Adăugaţi informaţia initrd, aşa cum este cerut de aplicaţia
bootloader. Consultaţi Capitolul
despre Configurarea Aplicaţiei Bootloader din Manualul Gentoo
pentru detalii despre modalitatea de vă configura aplicaţia bootloader
pentru a putea încărca imagini initrd.
3.
Opţiuni de Configurare
Editarea /etc/genkernel.conf
Transmiterea de opţiuni utilitarului genkernel din linie de comandă, poate
fi greoaie, în special când aveţi o duzină de parametri:
Cod 3.1: Rularea genkernel (supraîncărcat cu opţiuni) |
# genkernel --debuglevel=5 --no-color --no-mrproper --clean --gensplash \
--kerneldir=/calea/catre/surse/de/kernel/alternative --install --menuconfig \
--kernel-config=/calea/catre/fisierul-de-configurare/preferat --save-config --mountboot all
|
Din fericire, există un fişier de configurare unde majoritatea opţiunilor
de bază pot fi setate (sau modificate)în funcţie de necesităţi. Ceea ce
urmează este o trecere în revistă a opţiunilor mai relevante:
-
MENUCONFIG=[yes|no]: Această opţiune este echivalentă
cu parametrul --menuconfig utilizat de genkernel, care, la
rându-i utilizează comanda make menuconfig pentru a invoca
utilitarul de configurare a kernel-ului din linie de comandă. Pentru a
invoca utilitarul automat în timpul configurării kernel-ului prin
intermediul acestui script, setaţi opţiunea cu valoarea 'yes', aici;
altfel, alegeţi 'no'.
-
CLEAN=[yes|no]: Setarea acestei opţiuni cu valoarea 'yes'
este echivalentă cu parametrul --clean utilizat de genkernel,
şi invocă comanda make clean ce şterge toate fişierele
obiect şi dependenţele din structura de surse de kernel. Setarea
acestei opţiuni cu valoare 'no' creează un efect de cascadă —
este echivalentă cu parametrul --no-clean din genkernel, ce
dezactivează parametrul genkernel --no-mrproper — în
esenţă anulând comanda make mrproper.
-
MRPROPER=[yes|no]: Setarea acestei opţiuni cu valoarea
'yes' este echivalentă cu paramtetrul --mrproper utilizat de
genkernel, şi invocă comanda make mrproper, ce şterge
structura de surse pentru kernel de fişiere de configurare. Selectarea
'no' aici, este echivalentă cu parametrul --no-mrproper din
genkernel, ce dezactivează comanda make mrproper.
-
MOUNTBOOT=[yes|no]: Setarea acestei opţiuni cu valoarea
'yes' este echivalentă cu parametrul --mountboot şi
mount-ează automat directorul /boot/ (dacă este necesar)
în timpul compilării. Dacă directorul /boot/ este
stocat pe o altă partiţie, luaţi în considerare activarea acestei
opţiuni; va face ca un pas în minus (esenţial) să fie efectuat
ulterior.
-
SAVE_CONFIG=[yes|no]: După configurarea kernel-ului,
opţiunile selectate sunt stocate ca fişierul .config în
structura de surse de kernel. Acest script poate fi suprascris în timpul
următoarei compilări de kernel, sau chiar înlăturat din structura
de surse de kernel. Alegând 'yes' aici este echivalent cu parametrul
--save-config şi stochează toate opţiunile selectate în
timpul configurării de kernel ca un script în directorul
/etc/kernels/. Alegând valoarea 'no' păstrează starea
de status quo.
-
USECOLOR=[yes|no]: Setarea acestei opţiuni cu valoarea
'yes' este echivalentă cu parametrul --color ce colorează
textele afişate de genkernel, pentru a uşura procesul de depanare
(în cazul în care este necesar.)
-
DEBUGLEVEL=[0|1|2|3|4|5]: Această opţiune este pentru a
ajusta nivelul de informare a textelor produse de genkernel —
setarea acestei opţiuni la '0' cu --debuglevel=0 va înlătura
toate textele produse de genkernel; setarea acestei opţiuni cu valoarea
'5' cu --debuglevel=5, oferă utilizatorului toate textele
produse de genkernel.
Alegând opţiunile corespunzătoare în /etc/genkernel.conf,
puteţi înjumătăţi numărul parametrilor transmişi aplicaţiei
genkernel din linie de comandă:
Cod 3.2: Rularea genkernel (cu opţiuni), după configurarea genkernel.conf |
# genkernel --gensplash --kerneldir=/calea/catre/surse/de/kernel/alternative \
--kernel-config=/calea/catre/fisierul-de-configurare/preferat --install all
|
Sunt obţinute rezultate identice din ambele abordări, dar ultima are cele
mai multe opţiuni stocate într-un script ce poate fi modificat la o dată
ulterioară.
4.
Procesul de Boot din Reţea cu genkernel
Procesul de Boot din Reţea de pe un mediu Installation CD
Utilitarul genkernel poate construi imagini de kernel şi initrd ce oferă
suport pentru procesul de boot din reţea, sau procesul de netbooting.
Cu un oarecare noroc, ar trebui să puteţi efectua boot din reţea de pe un
sistem recent în mediul oferit de Installation CD.
Magia constă în script-ul linuxrc din genkernel: va încerca să utilizeze
netmount pentru Installation CD utilizând NFS. De-acolo,
script-urile de iniţializare de pe mediul Installation CD pot prelua
procesul, ca şi când mediul CD ar fi fost prezent local.
Construirea Imaginilor de Kernel şi Initrd cu Suport pentru Procesul De Boot din Reţea
Pentru a activa suportul pentru procesul de boot din reţea, includeţi
următoarele opţiuni în timpul configurării kernel-ului:
Atenţie:
Suportul pentru procesul de boot din reţea este experimental şi poate
conţine erori.
|
Mai întâi, imaginea de kernel trebuie să includă driver-e pentru
Plăcile dvs. de Reţea (eng.: Network Interface Cards - NIC). În mod
normal, driver-ele pentru astfel de dispozitive vor fi compilate ca module.
Oricum, este esenţial (pentru procesul de boot în reţea) ca să compilaţi
aceste drivere direct în imaginea de kernel şi nu ca module.
Cod 4.1: Configurarea unei serii de kernel 2.6.x pentru a suporta driver-ul plăcii dvs. de reţea |
Device Drivers --->
Networking Support --->
Ethernet (10 or 100Mbit) --->
[*] Ethernet (10 or 100Mbit)
<*> driver-ul pentru placa dvs. de reţea
|
Apoi, vă sugerăm să activaţi opţiunile IP: kernel level
autoconfiguration şi IP: DHCP support. Aceasta evită un nivel de
complexitate nenecesar, deoarece adresa de IP şi calea NFS către mediul
Installation CD poate fi configurată pe un server DHCP. Bineînţeles,
aceasta înseamnă că linia de comandă pentru kernel va rămâne
constantă pentru orice maşină — ceea ce este foarte important
pentru procesul de etherbooting.
Cod 4.2: Configurarea unei serii de kernel 2.6.x pentru a suporta DHCP |
Device Drivers --->
Networking Support --->
Networking options
[*] TCP/IP networking--->
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
|
Adiţional, aţi putea să activaţi SquashFS, deoarece majoritatea mediilor
moderne Gentoo Installation CD îl necesită. Suportul pentru SquashFS nu este
inclus în structura de surse de kernel generică. Pentru a activa SquashFS,
aplicaţi patch-urile necesare surselor de kernel generice sau instalaţi
gentoo-sources.
Cod 4.3: Configurarea kernel-ului pentru a suporta SquashFS |
File systems--->
Miscellaneous filesystems --->
[*] SquashFS 2.X - Squashed file system support
|
Odată ce procesul de compilare s-a terminat, creaţi o arhivă
tarball (tar.gz) ce conţine modulele kernel-ului. Acest pas este
necesar doar în cazul în care versiunea dvs. de kernel nu se potriveşte cu
versiunea imaginii de kernel de pe mediul Installation CD.
Cod 4.4: Crearea unei arhive tarball ce conţine modulele de kernel |
# cd /
# tar -cf /tmp/modules-X.Y.Z.tar.gz /lib/modules/X.Y.Z/
|
În funcţie de mecanismul de boot din reţea, veţi avea nevoie să
efectuaţi unii din următorii paşi:
Cod 4.5: Crearea unei imagini de 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
|
La final, copiaţi acest kernel pe server-ul dvs. TFTP. Detaliile sunt
dependente de arhitectură şi nu reprezintă scopul acestui ghid. Vă
rugăm să consultaţi documentaţia specifică platformei dvs.
Setarea NFS
Pentru a seta un director partajat NFS ce conţine mediul Installation CD,
utilizaţi dispozitivul loop pentru a efectua mount pentru imaginea ISO şi
apoi copiaţi conţinutul mediului CD în directorul partajat NFS. Ca o
extra-opţiune utilă, script-urile din imaginea initrd a genkernel va extrage
toate fişierele tar.gz stocate în directorul /nfs/livecd/add/.
Tot ce trebui să faceţi acum este să copiaţi arhiva
modules-X.Y.Z.tar.gz în directorul /nfs/livecd/add/.
Cod 4.6: Pregătirea directorului partajat 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
|
Setarea DHCP
Imaginile netboot vor cere server-ului DHCP o adresă IP, ca şi un parametru
root-path. Ambele pot fi specificate în funcţie de sistemul gazdă
utilizând adresa MAC pentru a identifica maşinile:
Cod 4.7: Setare exemplu de fişier dhcpd.conf client |
...
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";
}
...
|
Instrucţiuni pentru Procesul de Boot din Reţea
Însuşi procesul de boot din reţea este, din nou, foarte dependent de
platformă. Partea importantă este să specificaţi parametrii
ip=dhcp şi init=/linuxrc liniei de comandă a kernel-ului,
deoarece aceasta va activa interfaţa de reţea şi va specifica script-urilor
initrd să mount-eze mediul Installation CD prin NFS. Iată câteva sfaturi
dependente de platformă:
Cod 4.8: Instrucţiuni pentru Procesul de Boot din Reţea |
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.
Concluzii
A Automatiza sau a nu Automatiza?
Scopul utilitarului genkernel este să ofere o alternativă (mai uşoară)
celei consumatoare de timp a compilării kernel-ului. Ca întotdeauna,
sunteţi liberi să decideţi dacă doriţi sau nu să automatizaţi
procesul de compilare a kernel-ului.
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|
|
Actualizat la 16 Decembrie 2005 |
Versiunea originală a acestui document a fost actualizată ultima dată la 29 Iunie 2012 |
Sumar:
Acest ghid intenţionează să reprezinte o referinţă pentru toate
funcţiile oferite de genkernel.
|
Tim Yamin
Autor
Jimi Ayodele
Contribuitor
Thomas Seiler
Suport NFS
Alin Dobre
Translator
|
|
Donate to support our development efforts.
|
|
|