Meniu

Ghid Genkernel pentru Gentoo Linux

Pentru utilizatorii ce nu sunt obisnuiti cu compilarea de kernel, genkernel este un utilitar pentru automatizarea acestui proces. Va poate ajuta sa creati o imagine de kernel asemanatoare cu cele disponibile pe mediile Installation CD ale Gentoo, ce sunt proiectate pentru a detecta automat configuratia hardware a sistemului dvs. Unii utilizatori pot fi, de asemenea, interesati in utilizarea genkernel pentru initializarea necesitatilor hardware si a unui kernel functional inainte de a porni sistemul. Deoarece genkernel va compileaza automat modulele de kernel, puteti utiliza componente hardware ce pot necesita anumiti parametri de module pentru a fi incarcate pentru operarea corecta.

Audienta tinta

Daca sunteti, fie nesiguri despre modalitatea de compilare a unui kernel, sau sunteti doar nefamiliari cu configuratia hardware, genkernel este un utilitar foarte la-ndemana. Este proiectat pentru a inlatura chinul procesului de compilare a kernel-ului si suporta cele mai multe componente hardware, implicit.

Oricum, daca doriti sa stiti ce driver-e sunt necesare pentru sistemul dvs., este posibil sa puteti reduce timpul de compilare a kernel-ului. Aceasta este posibil, deoarece ii puteti specifica utilitarului genkernel sa compileze doar driver-ele relevante pentru componentele dvs. hardware. Deseori, numarul driver-elor necesare sistemului dvs. va fi mai mic (implicand un timp de compilare al kernel-lui redus) decat configuratia implicita oferita.

Instalarea genkernel

Pentru a obtine genkernel, rulati emerge genkernel din linia de comanda. Daca utilizati Platforma de Referinta Gentoo (eng.: Gentoo Reference Platform - GRP), amintiti-va sa instalati pachetele binare prin adaugarea optiunii -k comenzii emerge. Deoarece pachetele GRP contin o versiune veche de genkernel, optiunile pot diferi. In oricare caz, consultati genkernel --help pentru a observa modul de utilizare a versiunii de genkernel instalata pe sistemul dvs.

Lucrul cu genkernel

Modul de utilizare al genkernel

Desi exista mai multe modalitati de a rula genkernel, cea mai putin intruziva abordare este oferita de genkernel all. In acest caz, o configuratie generica ce functioneaza corect pe majoritatea sistemelor este utilizata. Asa cum am mentionat anterior, aceasta abordare nu este una fara dezavantaje; majoritatea modulelor create sunt nefolositoare pentru utilizatorul comun si poate mari timpul de compilare. Mai jos aveti o ilustrare a unei abordari mai eficiente, obtinuta prin transmiterea anumitor optiuni utilitarului genkernel, ca root:

Rularea genkernel (cu alte optiuni)

# genkernel --bootsplash --no-install --no-clean --menuconfig all

Operatia de mai sus cauzeaza genkernel sa creeze un kernel cu bootsplash activat (--bootsplash) ce va trebui instalat manual (--no-install). In timpul pregatirii structurii surselor de kernel, genkernel nu va curata nici un modul deja existent prezent in structura de surse (--no-clean). Un utilitar bazat pe meniuri pentru configurarea kernel-ului va fi afisat pentru a permite utilizatorului sa selecteze ce module vor fi compilate pentru sistem (--menuconfig).

Exista si alte optiuni ce modifica rezultatul oferit de genkernel. Spre exemplu, inlocuirea optiunii --no install cu optiunea --install ii permite utilitarului genkernel sa instaleze automat noua imagine de kernel in directorul /boot. Utilizarea optiunii --mountboot ii permite utilitarului genkernel sa mount-eze partitia dvs. /boot in mod automat, daca este necesar.

Amintiti-va, genkernel este proiectat pentru a va usura considerabil compilarea de kernel. Din acest motiv, genkernel detine unele optiuni pentru a usura efortul de compilare al kernel-ului. Spre exemplu, exista optiuni pentru a ajuta configurarea kernel-ului, in timp ce alte optiuni afecteaza compilarea efectiva. Unele optiuni va ajuta chiar sa depanati procesul de compilare. Pentru cei interesati in optimizari viitoare, exista optiuni ce afecteaza asamblarea kernel-ului, impachetarea si chiar initializarea kernel-ului.

Restul acestui capitol examineaza functionalitatea unor diverse optiuni si actiuni disponibile pentru genkernel. Unele din aceste optiuni au variante ce efectueaza o operatie convergenta. Variantele convergente detin prefixul no- si efectele acestora sunt afisate intre paranteze patrate, [].

Optiuni de Configurare

Optiunile de configurare afisate mai jos sunt prezente pentru a va ajuta in decizia caror functionalitati sa fie activate si care nu, in kernel, inainte de compilare. Puteti chiar alege daca fisierul de configurare sa fie salvat sau nu. Urmatoarele optiuni sunt in special de configurare:

--no-menuconfig: Activeaza [sau dezactiveaza] comanda make menuconfig (ce invoca un utilitar de configurare a kernel-ului interactiv, bazat pe meniuri), inainte de a compila kernel-ul.
--gconfig: Ofera utilitarul de configurare al kernel-ului ce depinde de librariile GTK+. Avantajul acestei optiuni este ca majoritatea utilizatorilor il gasesc mai usor si mai clar de configurat kernel-ul prin utilizarea acestui utilitar, deoarece se bazeaza pe sistemul de ferestre X. Dezavantajul acestei optiuni este ca aveti nevoie de sistemul de ferestre X pentru a o utiliza, deci nu va functiona in linie de comanda.
--xconfig: Ofera un utilitar de configurare a kernel-ului ce depinde de librariile QT.Avantajul acestei optiuni este ca majoritatea utilizatorilor il gasesc mai usor si mai clar de configurat kernel-ul prin utilizarea acestui utilitar, deoarece se bazeaza pe sistemul de ferestre X. Dezavantajul acestei optiuni este ca aveti nevoie de sistemul de ferestre X pentru a o utiliza, deci nu va functiona in linie de comanda.
--no-save-config: Salveaza [sau nu salveaza] configurarea kernel-ului intr-un fisier din directorul /etc/kernels/ pentru o utilizare ulterioara.

Optiuni de Compilare

Urmatoarele optiuni au efect, de obicei, in timpul compilarii efective:

--kerneldir=/calea/catre/surse/: Specifica o locatie alternativa a surselor de kernel, in locul celei implicite, /usr/src/linux/.
--kernel-config=/calea/catre/fisierul-de-configurare: Specifica ce configuratie alternativa de kernel va fi utilizata, in locul fisierului implicit, /calea/catre/surse/.config.
--module-prefix=/calea/catre/directorul-prefix/: Specifica un prefix catre directorul unde modulele de kernel vor fi instalate (calea implicita este directorul /lib/modules/.)

--no-clean: Activeaza [sau dezactiveaza] comanda make clean inainte de compilarea kernel-ului dvs. Comanda make clean indeparteaza toate fisierele obiect si dependentele din structura de surse a kernel-ului.
--no-mrproper: Activeaza [sau dezactiveaza] comanda make mrproper inainte de compilarea kernel-ului. La fel ca si comanda make clean, make mrproper indeparteaza toate fisierele obiect si dependentele din structura de surse a kernel-ului. Oricum, orice fisiere de configurare anterioare (din /calea/catre/surse/.config sau /calea/catre/surse/.config.old) vor fi de asemenea indepartate din structura de surse de kernel.
--oldconfig: Executa comanda make oldconfig, ce incearca sa colecteze informatii 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, daca --oldconfig este utilizat in conjunctie cu --clean, ultima optiune este negata, rezultand in activarea optiunii --no-clean.

--callback="echo hello": Executa argumentele specificate (echo hello, in acest caz) dupa ce kernel-ul si modulele relevante au fost construite, dar inainte de a compila imaginea initrd. Aceasta poate fi utila in cazul in care doriti sa instalati module externe in imaginea initrd prin instalarea cu ajutorul emerge a pachetelor relevante cu ajutorul optiunii de callback, si apoi redefinirea unui grup de module genkernel.

--no-install: Activeaza [sau dezactiveaza] comanda make install, ce instaleaza noua dvs. imagine de kernel, fisierul de configurare, imaginea initrd si harta sistem in partitia dvs. mount-ata de boot. Orice module compilate vor fi instalate, de asemenea.
--no-initrdmodules: Opreste operatia de copiere a oricarui modul in imaginea initrd creata de genkernel. Aceasta optiune este o exceptie de la regula prefixului no-; omiterea acestui prefix, creeaza o optiune invalida de kernel.
--genzimage: Creaza o imagine initrd, inainte de imaginea de kernel (Acest truc se aplica, momentan, doar sistemelor PPC Pegasos.)

Optiuni pentru Compilator

Urmatoarele optiuni sunt suportate de genkernel, si sunt transmise aplicatiilor relevante, in timp ce kernel-ul este asamblat. Aceste optiuni afecteaza compilatorul utilizat pentru procesul de compilare a kernel-ului, dar la un nivel mult mai inferior.

--kernel-cc=unAnumeCompilator: Specifica un compilator invocat in timpul procesului de compilare a kernel-ului.
--kernel-ld=unAnumeEditorDeLegaturi: Specifica un editor de legaturi invocat in timpul procesului de compilare a kernel-ului.
--kernel-as=unAnumeAsamblor: Specifica aplicatia pentru asamblare invocata in timpul procesului de compilare a kernel-ului.
--kernel-make=oAnumeAplicatieMake: Specifica o alternativa la utilitarul GNU make invocat in timpul procesului de compilare a kernel-ului.

--utils-cc=unAnumeCompilator: Specifica aplicatia compilator invocata in timpul compilarii utilitarelor de suport.
--utils-ld=unAnumeEditorDeLegaturi: Specifica editorul de legaturi invocat in timpul compilarii utilitarelor de suport.
--utils-as=unAnumeAsamblor: Specifica aplicatia pentru asamblare invocata in timpul compilarii utilitarelor de suport.
--utils-make=oAnumeAplicatieMake: Specifica o alternativa la utilitarul GNU make invocat in timpul compilarii utilitarelor de suport.

--makeopts=-jX: Specifica numarul de fire de executie concurente ce pot fi implementate de aplicatia make in timp ce kernel-ul (si utilitarele) sunt compilate. Variabila 'X' este numarul obtinut prin adaugarea numarului unu (1) numarului de procesoare utilizate de sistem. Deci, pentru un sistem cu un singur procesor, optiunea potrivita este -j2; un sistem cu doua procesoare va utiliza optiunea -j3, si asa mai departe. (Un sistem cu un singur procesor ce suporta Tehnologia Hyper-Threading? (HT) poate utiliza optiunea -j3 oferita de suportul Symmetric Multi-Processing (SMP) activat in kernel.)

Optiuni de Depanare

Utilizarea optiunilor de depanare in timpul procesului de compilare a kernel-ului, controleaza cantitatea de informatie raportata, ca si prezentarea datelor indicate.

--debuglevel=verblevel: Controleaza nivelul de informare pentru datele oferite de genkernel. Variabila verblevel este un numar intreg intre 0 si 5. Nivelul '0' reprezinta afisare minimala, in timp ce '5' ofera atata informatie cat este posibila despre activitatile genkernel in timpul procesului de compilare a kernel-ului.
--debugfile=/calea/catre/fisierul-de-iesire: Ignora valoarea setata de argumentul --debuglevel si transmite toate datele de depanare produse de genkernel in fisierul de iesire specificat, ce este stocat in /var/log/genkernel.log, implicit.
--no-color: Activeaza [sau dezactiveaza] afisarea colorata a informatiei de depanare (raportata de genkernel) utilizand secvente escape.

Optiuni de Initializare

Optiunile indicate aici sunt utilizate pentru a crea anumite efecte in timpul pornirii sistemului. Unele din aceste optiuni sunt in primul rand pentru estetica, in timp ce altele pot fi esentiale pentru activarea anumitor functionalitati in sistem.

--no-bootsplash: Activeaza [sau dezactiveaza] suportul pentru bootsplash in imaginea initrd compilata de genkernel. Functionalitatea bootsplash este suportata pe un numar restrans de arhitecturi, fiind necesar, de asemenea, un kernel ce suporta bootsplash.
--no-gensplash: Activeaza [sau dezactiveaza] suportul pentru gensplash in imaginea initrd compilata de genkernel. Utilitarul gensplash este intentionat ca fiind un inlocuitor al lui bootsplash si este proiectat pentru utilizarea in seriile de kernel 2.6.x. Pentru a suprascrie tema implicita utilizata de gensplash, utilizati --gensplash=TemaPreferata (unde TemaPreferata este titlul unuia din directoarele din locatia /etc/splash/.
--gensplash-res=RezolutiaPreferata: Aceasta optiune va permite sa selectati ce rezolutii de afisare a imaginii splash vor fi suportate de imaginea initrd, in timpul pornirii sistemului. Aceasta este utila din doua motive: Primul, este faptul ca puteti selecta doar rezolutiile de afisare a imaginii splash, ce sunt relevante pentru sistemul dvs. Al doilea este faptul ca evitati cresterea nenecesara a spatiului de disc necesitat de imaginea initrd (deoarece initrd nu trebuie sa suporte rezolutii irelevante pentru sistemul dvs.) Oricum, puteti omite aceasta optiune, daca kernel-ul este construit pentru un mediu Installation CD; aceasta permite suportul gensplash pentru toate rezolutiile posibile.
--do-keymap-auto: Forteaza selectia dispunerii tastelor in timpul secventei de boot.
--lvm2: Include suport pentru stocarea prin intermediul Logical Volume Management (LVM2) din binare statice, daca sunt disponibile pentru sistem. Binarele relevante (statice) de LVM2 sunt compilate, daca nu sunt disponibile. Asigurati-va ca instalati pachetul lvm2 in sistemul dvs., cu emerge lvm2 inainte de a activa aceasta optiune, si sa consultati ghidul pentru Instalarea LVM2 in Gentoo.
--evms2: Include suport de stocare utilizand Enterprise Volume Management System (EVMS2), in cazul in care este disponibil. Asigurati-va ca instalati pachetul evms in sistemul dvs., cu USE=static emerge evms2 inainte de a utiliza aceasta optiune (genkernel). (Omiterea indicatorului USE=static in timpul instalarii pachetului nu va putea include binarele statice necesare, cauzand eroare.)
--dmraid: Include suport pentru DMRAID; utilitarul ce creeaza scheme RAID utilizand subsistemul device-mapper din kernel. DMRAID descopera, activeaza, dezactiveaza si afiseaza proprietati ale seturilor software de RAID (ATARAID, spre exemplu) si partitiile DOS continute.
--linuxrc=/calea/catre/script-ul/dvs/linuxrc: Specifica un script creat personalizat linuxrc ? un script ce este initializat in timpul stadiului de pornire al unui kernel, inainte de procesul de boot efectiv. (Un fisier implicit linuxrc ar trebui sa se afle in directorul /usr/share/genkernel/.) Acest script va permite sa boot-ati intr-un kernel mic, modularizat si sa incarcati driver-ele necesare (ca module) de sistem.
--cachedir=/calea/catre/alt/director/: Suprascrie locatia de cache implicita, utilizata in timpul compilarii kernel-ului.
--tempdir=/calea/catre/noul/director-temporar/: Specifica locatia directorului temporar utilizat de genkernel in timpul compilarii kernel-ului.
--unionfs: Include suport pentru Sistemul de Fisiere de Unificare in imaginea initrd.

Optiuni Diverse

Optiunile afisate mai jos sunt suportate de genkernel, dar nu se incadreaza perfect in nici una din celelalte categorii:

--mountboot: Detecteaza daca sau nu directorul /boot/ trebuie mount-at intr-o partitie separata. Va verifica script-ul /etc/fstab pentru instructiuni despre modalitatea de mount-are a partitiei boot pe un sistem de fisiere (daca este nevoie).
--kernname=Nume: Va permite sa modificati numele kernel-ului si a imaginilor initrd din directorul /boot/, pentru ca imaginile produse sa fie kernel-Nume-versiune si initramfs-Nume-versiune.

Actiuni Posibile

O actiune ii specifica utilitarului genkernel ce anume sa construiasca. Momentan, urmatoarele actiuni sunt suportate:

initrd: Construieste doar imaginea initrd
bzImage: Construieste doar imaginea de kernel
kernel: Construieste doar imaginea de kernel si modulele
all: Construieste toate stadiile ? imaginea initrd, imaginea de kernel si modulele.

Ultima actiune, all, este recomdandata pentru majoritatea utilizatorilor, deoarece construieste stagiile necesare pentru un kernel functional. Amintiti-va, o actiune doar ii specifica aplicatiei genkernel ce sa construiasca, nu ce sa instaleze.

Configurarea Aplicatiei Bootloader

Pentru a seta genkernel sa functioneze cu aplicatia dvs. bootloader, trebuie aplicate trei sau patru pasi fisierului de configurare al aplicatiei dvs. bootloader:

Adaugati root=/dev/ram0 si init=/linuxrc parametrilor de kernel ce sunt transmisi imaginii de kernel.
Adaugati real_root=/dev/hda3, spre exemplu, parametrilor de kernel transmisi imaginii de kernel, daca /dev/hda3 contine partitia dvs. radacina.
Daca utilizati bootsplash, adaugati un mod cum ar fi vga=0x317 parametrilor transmisi imaginii de kernel si adaugati, de asemenea, splash=verbose sau splash=silent in functie de nivelul de informare necesar din aplicatia dvs. bootloader.
Adaugati informatia initrd, asa cum este cerut de aplicatia bootloader. Consultati Capitolul despre Configurarea Aplicatiei Bootloader din Manualul Gentoo pentru detalii despre modalitatea de va configura aplicatia bootloader pentru a putea incarca imagini initrd.

Optiuni de Configurare

Editarea /etc/genkernel.conf

Transmiterea de optiuni utilitarului genkernel din linie de comanda, poate fi greoaie, in special cand aveti o duzina de parametri:

Rularea genkernel (supraincarcat cu optiuni)

# 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, exista un fisier de configurare unde majoritatea optiunilor de baza pot fi setate (sau modificate)in functie de necesitati. Ceea ce urmeaza este o trecere in revista a optiunilor mai relevante:

MENUCONFIG=[yes|no]: Aceasta optiune este echivalenta cu parametrul --menuconfig utilizat de genkernel, care, la randu-i utilizeaza comanda make menuconfig pentru a invoca utilitarul de configurare a kernel-ului din linie de comanda. Pentru a invoca utilitarul automat in timpul configurarii kernel-ului prin intermediul acestui script, setati optiunea cu valoarea 'yes', aici; altfel, alegeti 'no'.
CLEAN=[yes|no]: Setarea acestei optiuni cu valoarea 'yes' este echivalenta cu parametrul --clean utilizat de genkernel, si invoca comanda make clean ce sterge toate fisierele obiect si dependentele din structura de surse de kernel. Setarea acestei optiuni cu valoare 'no' creeaza un efect de cascada ? este echivalenta cu parametrul --no-clean din genkernel, ce dezactiveaza parametrul genkernel --no-mrproper ? in esenta anuland comanda make mrproper.
MRPROPER=[yes|no]: Setarea acestei optiuni cu valoarea 'yes' este echivalenta cu paramtetrul --mrproper utilizat de genkernel, si invoca comanda make mrproper, ce sterge structura de surse pentru kernel de fisiere de configurare. Selectarea 'no' aici, este echivalenta cu parametrul --no-mrproper din genkernel, ce dezactiveaza comanda make mrproper.
MOUNTBOOT=[yes|no]: Setarea acestei optiuni cu valoarea 'yes' este echivalenta cu parametrul --mountboot si mount-eaza automat directorul /boot/ (daca este necesar) in timpul compilarii. Daca directorul /boot/ este stocat pe o alta partitie, luati in considerare activarea acestei optiuni; va face ca un pas in minus (esential) sa fie efectuat ulterior.
SAVE_CONFIG=[yes|no]: Dupa configurarea kernel-ului, optiunile selectate sunt stocate ca fisierul .config in structura de surse de kernel. Acest script poate fi suprascris in timpul urmatoarei compilari de kernel, sau chiar inlaturat din structura de surse de kernel. Alegand 'yes' aici este echivalent cu parametrul --save-config si stocheaza toate optiunile selectate in timpul configurarii de kernel ca un script in directorul /etc/kernels/. Alegand valoarea 'no' pastreaza starea de status quo.
USECOLOR=[yes|no]: Setarea acestei optiuni cu valoarea 'yes' este echivalenta cu parametrul --color ce coloreaza textele afisate de genkernel, pentru a usura procesul de depanare (in cazul in care este necesar.)
DEBUGLEVEL=[0|1|2|3|4|5]: Aceasta optiune este pentru a ajusta nivelul de informare a textelor produse de genkernel ? setarea acestei optiuni la '0' cu --debuglevel=0 va inlatura toate textele produse de genkernel; setarea acestei optiuni cu valoarea '5' cu --debuglevel=5, ofera utilizatorului toate textele produse de genkernel.

Alegand optiunile corespunzatoare in /etc/genkernel.conf, puteti injumatati numarul parametrilor transmisi aplicatiei genkernel din linie de comanda:

Rularea genkernel (cu optiuni), dupa configurarea genkernel.conf

# genkernel --gensplash --kerneldir=/calea/catre/surse/de/kernel/alternative \ --kernel-config=/calea/catre/fisierul-de-configurare/preferat --install all

Sunt obtinute rezultate identice din ambele abordari, dar ultima are cele mai multe optiuni stocate intr-un script ce poate fi modificat la o data ulterioara.

Procesul de Boot din Retea cu genkernel

Procesul de Boot din Retea de pe un mediu Installation CD

Utilitarul genkernel poate construi imagini de kernel si initrd ce ofera suport pentru procesul de boot din retea, sau procesul de netbooting. Cu un oarecare noroc, ar trebui sa puteti efectua boot din retea de pe un sistem recent in mediul oferit de Installation CD.

Magia consta in script-ul linuxrc din genkernel: va incerca sa utilizeze netmount pentru Installation CD utilizand NFS. De-acolo, script-urile de initializare de pe mediul Installation CD pot prelua procesul, ca si cand mediul CD ar fi fost prezent local.

Construirea Imaginilor de Kernel si Initrd cu Suport pentru Procesul De Boot din Retea

Pentru a activa suportul pentru procesul de boot din retea, includeti urmatoarele optiuni in timpul configurarii kernel-ului:

Atentie: Suportul pentru procesul de boot din retea este experimental si poate contine erori.

Mai intai, imaginea de kernel trebuie sa includa driver-e pentru Placile dvs. de Retea (eng.: Network Interface Cards - NIC). In mod normal, driver-ele pentru astfel de dispozitive vor fi compilate ca module. Oricum, este esential (pentru procesul de boot in retea) ca sa compilati aceste drivere direct in imaginea de kernel si nu ca module.

Configurarea unei serii de kernel 2.6.x pentru a suporta driver-ul placii dvs. de retea

Device Drivers ---> Networking Support ---> Ethernet (10 or 100Mbit) ---> [*] Ethernet (10 or 100Mbit) <*> driver-ul pentru placa dvs. de retea (Asigurati-va ca selectati <*> si nu )

Apoi, va sugeram sa activati optiunile IP: kernel level autoconfiguration si IP: DHCP support. Aceasta evita un nivel de complexitate nenecesar, deoarece adresa de IP si calea NFS catre mediul Installation CD poate fi configurata pe un server DHCP. Bineinteles, aceasta inseamna ca linia de comanda pentru kernel va ramane constanta pentru orice masina ? ceea ce este foarte important pentru procesul de etherbooting.

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 (Aceste optiuni ii specifica kernel-ului sa trimita o cerere DHCP la boot.)

Aditional, ati putea sa activati SquashFS, deoarece majoritatea mediilor moderne Gentoo Installation CD il necesita. Suportul pentru SquashFS nu este inclus in structura de surse de kernel generica. Pentru a activa SquashFS, aplicati patch-urile necesare surselor de kernel generice sau instalati gentoo-sources.

Configurarea kernel-ului pentru a suporta SquashFS

File systems---> Miscellaneous filesystems ---> [*] SquashFS 2.X - Squashed file system support

Odata ce procesul de compilare s-a terminat, creati o arhiva tarball (tar.gz) ce contine modulele kernel-ului. Acest pas este necesar doar in cazul in care versiunea dvs. de kernel nu se potriveste cu versiunea imaginii de kernel de pe mediul Installation CD.

Crearea unei arhive tarball ce contine modulele de kernel

(Creati un fisier tar.gz continand toate modulele) # cd / # tar -cf /tmp/modules-X.Y.Z.tar.gz /lib/modules/X.Y.Z/

In functie de mecanismul de boot din retea, veti avea nevoie sa efectuati unii din urmatorii pasi:

Crearea unei imagini de boot

(Creati o imagine etherboot) # emerge mknbi # cd /boot # mkelf-linux -params="root=/dev/ram0 init=/linuxrc ip=dhcp" kernel... initrd... > etherboot.img (Creati o imagine OpenBoot / SPARC64 TFTP) # emerge sparc-utils # cd /boot # elftoaout kernel... -o kernel.aout # piggyback64 kernel.aout System.map-... initrd-... # mv kernel.aout openboot.img (Aceasta este imaginea de boot) (PXE nu necesita nici un pas suplimentar, imaginile de kernel si initrd pot fi utilizate ca atare)

La final, copiati acest kernel pe server-ul dvs. TFTP. Detaliile sunt dependente de arhitectura si nu reprezinta scopul acestui ghid. Va rugam sa consultati documentatia specifica platformei dvs.

Setarea NFS

Pentru a seta un director partajat NFS ce contine mediul Installation CD, utilizati dispozitivul loop pentru a efectua mount pentru imaginea ISO si apoi copiati continutul mediului CD in directorul partajat NFS. Ca o extra-optiune utila, script-urile din imaginea initrd a genkernel va extrage toate fisierele tar.gz stocate in directorul /nfs/livecd/add/. Tot ce trebui sa faceti acum este sa copiati arhiva modules-X.Y.Z.tar.gz in directorul /nfs/livecd/add/.

Pregatirea directorului partajat NFS

(Aceasta presupune ca /nfs/livecd este un director partajat NFS exportat) # mount /tmp/gentoo-livecd.iso /mnt/cdrom -o loop # cp -p /mnt/cdrom /nfs/livecd # umount /mnt/cdrom (Copiati modules.tar.gz in /add) # 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 adresa IP, ca si un parametru root-path. Ambele pot fi specificate in functie de sistemul gazda utilizand adresa MAC pentru a identifica masinile:

Cod 4.7: Setare exemplu de fisier 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"; } # Aici, 192.168.1.2 este server-ul NFS # In timp ce 192.168.1.10 va fi adresa IP a masinii ce efectueaza boot din retea ...

Instructiuni pentru Procesul de Boot din Retea

Insusi procesul de boot din retea este, din nou, foarte dependent de platforma. Partea importanta este sa specificati parametrii ip=dhcp si init=/linuxrc liniei de comanda a kernel-ului, deoarece aceasta va activa interfata de retea si va specifica script-urilor initrd sa mount-eze mediul Installation CD prin NFS. Iata cateva sfaturi dependente de platforma:

Instructiuni pentru Procesul de Boot din Retea

# Etherboot - introduceti discul etherboot in unitate si reporniti # Linia de comanda pentru kernel a fost specificata in momentul construirii imaginii # Sparc64 - Apasati Stop-A la promptul de boot ok boot net ip=dhcp init=/linuxrc # PXE - Setati pxelinux (parte din syslinux), apoi creati un fisier pxelinux.cfg/default continand liniile: 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

Concluzii

A Automatiza sau a nu Automatiza?

Scopul utilitarului genkernel este sa ofere o alternativa (mai usoara) celei consumatoare de timp a compilarii kernel-ului. Ca intotdeauna, sunteti liberi sa decideti daca doriti sau nu sa automatizati procesul de compilare a kernel-ului.

John Doe

Articole publicate de la contributori ce nu detin un cont pe gnulinux.ro. Continutul este verificat sumar, iar raspunderea apartine contributorilor.
  • | 340 articole

Nici un comentariu inca. Fii primul!
  • powered by Verysign