Következő Előző Tartalom

4. A kernel fordítása

4.1 Törlések és függőségek

Amikor a konfiguráló script véget ér, azt is mondja, hogy add ki a `make dep' és a `make clean' parancsokat. A `make dep' ellenőrzi, hogy az összes függőség, mint például az include fájlok, a helyükön vannak-e. Nem tart sokáig, hacsak a géped nem nagyon lassú. Egy `make clean'-t is csinálni kell. Ez letörli az összes object fájlt és néhány egyéb dolgot, amit a régi verzió hátrahagy. Mindenesetre ne felejtsd el ezt a lépést, mielőtt megpróbálod újrafordítani a kernelt.

4.2 Fordítási idő

A 'make dep` és a 'make clean` után jöhet a `make bzImage' vagy a `make bzdisk'. (Ez az a rész, ami sokáig tart.) A `make bzImage' lefordítja a kernelt, és többek között egy `bzImage' nevű fájlt hagy maga után az arch/i386/boot könyvtárban. Ez az új tömörített kernel. A `make bzdisk' ugyanezt teszi, de az új bzImage-t rámásolja egy hajlékony lemezre, amelyet addigra remélhetőleg már betettél az ``A:'' meghajtóba. A `bzdisk' nagyon kényelmes az új kernelek teszteléséhez. Ha lefagy (vagy egyszerűen csak nem működik jól), akkor csak kiveszed a lemezt, és bootolhatsz a régi kernellel. Akkor is jól jön, ha véletlenül letörlöd a kernelt (vagy valami hasonló szörnyűség történik). Új rendszerek telepítésére is lehet használni; az egyik lemez tartalmát egyszerűen átmásolod a másikra.

Minden valamirevaló újabb kernel tömörítve van, ezért van `bz' a nevük előtt. A tömörített kernel automatikusan kicsomagolja magát, amikor végrehajtódik.

A régebbi kerneleknél még nem volt lehetőség bzImage létrehozására, akkor még csak zImage volt. Ez a lehetőség még ma is megvan, de tekintve az újabb kernelek méretét, többé kevésbé kötelező bzImage-et fordítani, mert a régebbi módszerekkel nem lehet kezelni a túl nagy kerneleket.

4.3 A ``make'' egyéb opciói

A `make mrproper' alaposabb törlést végez. Néha szükség van rá; ajánlatos minden foltozás alkalmával végrehajtani. A `make mrproper' a konfigurációs fájlt (.config) is letörli, ezért csinálj róla biztonsági másolatot, ha úgy gondolod, hogy még kellhet.

A `make oldconfig' megpróbálja egy régi konfigurációs fájl alapján konfigurálni a kernelt; elvégzi helyetted a `make config' lépést. Ha még sosem fordítottál kernelt, vagy nincs régi konfigurációs fájl kéznél, akkor ne tedd, mert minden bizonnyal meg kell változtatni az alapértelmezett konfigurációt.

A `make modules' leírása a modulokról szóló fejezetben található.

4.4 A kernel installálása

Ha kész van a kernel és az úgy is működik, ahogy szeretnéd, itt az ideje installálni. A legtöbben a LILO-t (Linux Loader) használják erre célra. A `make bzlilo' installálja a kernelt, lefuttatja rajta a LILO-t, és bootolásra kész állapotba hozza, DE CSAK AKKOR, ha a LILO a következőképpen van konfigurálva: a kernel /vmlinuz, a LILO az /sbin-ben van, és a LILO konfigurációs fájl (/etc/lilo.conf) tartalma is ennek megfelelő.

Ellenkező esetben közvetlenül kell a LILO-t használni. Eléggé könnyű installálni és használni, de a konfigurációs fájl hajlamos összezavarni az embereket. Nézd meg a konfigurációs fájlban (a régebbi verzióknál /etc/lilo/config, az újaknál /etc/lilo.conf), hogy mi az aktuális beállítás. A konfigurációs fájl így néz ki:

 
    ...
    image = /vmlinuz 
        label = Linux 
        root = /dev/hda1 
    ...

Az `image =' az aktuális kernelre mutat. A legtöbben /vmlinuz-t használnak. A `label' alapján dönti el a lilo, hogy melyik kernelt, vagy operációs rendszert indítsa el, és a `root' az adott operációs rendszert gyökérkönyvtára. Készíts biztonsági másolatot a régi kernelről és másold a frissen fordított bzImage-et a helyére. (Például, ha `/vmlinuz'-t használsz, azt mondod, hogy `cp bzImage /vmlinuz'.) Ezután futtasd a lilo-t -- az újabb rendszereken elég annyi, hogy `lilo', de régebbieken lehet, hogy `/etc/lilo/install' , vagy akár `/etc/lilo/lilo -C /etc/lilo/config' kell.

Ha szeretnél többet tudni a LILO konfigurálásáról, vagy nincs is meg neked, akkor szerezd meg a legújabb verziót a kedvenc ftp helyedről, és kövesd az utasításokat.

Ha szeretnél egy régi kernelt bootolni a merevlemezről (így is megmenekülhetsz, ha az újat elrontottad), másold le a lilo konfigurációs fájlban az `image = xxx' sort és az utánna következő sorokat a fájl aljára, és változtasd meg az `image = xxx' sort `image = yyy'-ra, ahol `yyy' annak a fájlnak a teljes elérési útvonala, amelybe a régi kernelt mentetted. Azután változtasd meg a `label = zzz' sort `label = linux-backup'-ra és futtasd a lilo-t. Lehet, hogy be kell tenni egy `delay=x' sort is a konfigurációs fájlba, ahol x az az idő tizedmásodpercben megadva, amennyit a lilo vár, mielőtt bootolna. Így meg lehet szakítani (például a shift billentyűvel), és be lehet írni a régi kernel címkéjét, ha valami kellemetlen történik az újjal.


Következő Előző Tartalom