Szerző: mrsla

2000. április 19. 00:00

Kernel fordítás

A következőkben egy teljes kernel fordítását írom le. Nem patchelésről lesz tehát szó.

A következőkben egy teljes kernel fordítását írom le. Nem patchelésről lesz tehát szó.

Amivel kezdened kell, hogy letöltöd a legfrissebb (stabil, tehát az x.szam.x-nél a szám legyen páros) kernelt. Ennek a www.kernel.org-on tudsz utánna nézni.

A letöltött kernel csomagolva lesz, vmi.tar.gz néven. Ezt kicsomagolva be kell másolni a /usr/src könyvtárba (mielőtt elfelejteném, természetesen mindezt root-ként kell végezned). Én javaslom az MC (midnight commander) használatát. Én úgy szoktam, hogy az usr/src-be csinálok egy könyvtárat, olyan névvel ami megmondja, hogy milyen kernelről van szó. Például most van egy usr/src/linux2214 nevű könyvtáram amiben a 2.2.14-es kernel source van. A linux2214 könyvtárra pedig mutat egy symlink, /usr/src/linux néven. Mindig így használd, tehát a symlinken keresztül lépj a könyvtárba (pl.: cd /usr/src/linux).

Négy módon tudsz a kernel fordításra előkészülni és a makefile-ket konfigurálni.

  • Kézzel editálod (kezdőknek nem javasolt)
  • Futtatod a make config-ot, ennek az a baja, hogy ha valamit elrontasz, újra kell kezdened a konfigurációt
  • make menuconfig (én legtöbbször ezt használom), karakteres felületű,menüvezérelt konfigurálást tesz lehetővé
  • make xconfig az előzőhöz hasonló, csak grafikus módban (én nem kedvelem)
Na szóval ha bemásoltad amit fentebb leírtam, először lépj be a linux könyvtárba, cd /usr/src/linux. Utána a teendők a következők:
  • make clean (erre az első kernel fordításkor nincs szüség, de ha újra fordítasz akkor már igen)
  • make menuconfig (így nagyon kényelmesen tudod konfigurálni a kerneledet)
  • make dep (meghatározza a függőségeket)
  • make bzImage (létrehozza az új kernelt, tömörítve és elhelyezi a /usr/linux/arch/i386/boot könyvtárba, bzImage néven.
  • make modules (ha a kernel egyes részeit modulba konfiguráltad akkor szükséges. Szinte biztos van ilyen)
  • make modules_install (elhelyezi a modulokat a megfelelő könyvtárba)
  • a bzImage kernelt másold a /boot könyvtárba, és adj neki valami normális nevet, például kernel-2214.
  • készítsd el a gyökérből a rámutató symlinket és konfiguráld a lilót (a liló konfigurálását egy másik cikkben írom meg)
  • futtasd a lilót--> lilo .
  • Ha a rendszert újra bootolod , már indíthatod is az új kerneleddel.
Egy jó tanács: Mindig hagyd fenn a korábbi, jól működő kerneledet is. Csak akkor töröld ha az új kernel már mindenben okésan működik. Nálam mindig minimum három kernel van, két stabil, meg egy kísérleti.
Természetesen a kernel fordításhoz is van részletes dokumentáció, a linuxdoc-on.

Ha kérdésed van írj levelet a mrsla@hwsw.hu-ra.

[oldal:Csomagot a kernelből, azaz a make-kpkg használata]

A make-kpkg használata több szempontból is használatra ajánlható. A make-kpkg-t használva, a kernel, a modulok, a lilo.conf is egy deb csomagba kerül. Így ha több, ám azonos (például vállalati gépek esetén) hardverrel ellátott gépen kell frissítened a kernelt, sok munkát megtakaríthatsz a kernel frissítésekor.

A munkamenet nagyon egyszerű, a következőket kell csinálni:

  • cd 'kernelforrás'
  • make menuconfig
  • make-kpkg clean
  • make-kpkg --revision=kernel.datum.verzio kernel_image
  • dpkg -i 'kernelcsomag.deb'
A kernel.datum.verzio rendszerű elnevezés csupán az én javaslatom. Így viszonylag könnyen beazonosítható illetve dokumentálható a kernelek útja.

Figyelj oda, hogy a make-kpkg vmlinuz-nak nevezi el a kernelt! Ha már van ilyen nevű kerneled, akkor azt felülírja egy rákérdezés után. Ezért javaslom, hogy mindig legyen boot lemezed, vagy egy más nevű kerneled.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról