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.

Áprilisi, minden munkavállaló számára kötelező, laza jogi hallgatmányunk után itt a második, befejező rész. Nem kell megijedni, informatív és hasznos lesz ez is! Ennyi a minimum, amit munkavállalóként illik tudnod.

a címlapról