next up previous contents
Next: A FreeSwan Patch Up: A megvalósítás Previous: A megvalósítás   Tartalomjegyzék

Kernel fordítás

Ehhez szükségünk lesz az eredeti kernel kódra. Ahhoz, hogy a legfrissebb fájlt szerezhessük meg tudnunk kell annak verziószámát. Jelen pillanatban a 2.4.x-es széria a stabil változatok legfrissebbike, azon belül pedig az alábbi file letöltésével tudhatjuk meg, hogy melyik az aktuális:



wget "ftp://ftp.hu.kernel.org/pub/linux/kernel/v2.4/LATEST*"



Eredményként én a következő file-t kaptam: LATEST-IS-2.4.4 Ennek megfelelően a letöltendő file elérési útvonala:



ftp://ftp.hu.kernel.org/pub/linux/kernel/v2.4/linux-2.4.4.tar.bz2



vagy



ftp://ftp.hu.kernel.org/pub/linux/kernel/v2.4/linux-2.4.4.tar.gz



Ajánlatos a bz2 filet letölteni, mivel átlagosan 20%-al kisebb a fájl mérete, így a letöltés ideje is rövidebb, igaz kibontásnál jobban igénybe veszi a processzort, de általában az adatforgalom, vagy online töltött idő és nem a processzoridő után fizetünk. Az adott fájl jelen esetben 20Mb, ez egy átlagos 128kbps bérelt vonalon optimális esetben 20 perc alatt érkezik meg.

A letöltött fájlt helyezzük a /usr/src könyvtárba, majd bontsuk ki:



tar -xIf linux-2.4.4.tar.bz2



(A tar 1.13.18 verziójától a bzip2 fájlok kitömörítése -I helyett -j -vel történik: tar -xjf linux-2.4.4.tar.bz2)



Sajnos a forráskódok terjesztése során sosem elég körültekintőek a biztonságot illetően, ami annyit tesz, hogy a forráskód a terjesztő rendszerén használt UID és GID alkalmazásával kerül becsomagolásra, így a mi rendszerünkön is azokkal a jogosultságokkal fog létrejönni. Ha szerencsénk van, akkor nincs olyan felhasználó, vagy csoport akinek egyezne az azonosítója az előbb leírtakkal, de ez nem garancia semmire. nálam például a kibontást követő állapot:



drwxr-xr-x 15 burzum inact 816 May 9 21:04 linux



Ezt sürgősen orvosoljuk: chown root.src -R linux



Első lépésben egy "normál" kernelt fogunk fordítani, azaz IPSec patch-től mentesen. Belépve a linux könyvtárba konfiguráljuk be a kernelt (make menuconfig) az igényeinknek megfelelően. Az ehhez szükséges eszközök: make, as86, libncurses header file-ok, cpp, gcc.



Ajánlott opciók:

Ha végeztünk, mentsük el a konfigurációt. Ha elég stabil és nagy teljesítményű gépünk van, kellő mennyiségű memóriával, akkor illesszük be a következő sort a Makefile-ba:



MAKE = make -j20



ahol 20 a fordítás során engedélyezett feladatok száma. Egy PI osztályú gép minden gond nélkül elvisel 10-es értéket, egy PIII kategóriájú gépnek pedig 30-40-es értéket is lehet választani. Ha biztosak vagyunk a dolgunkban és a gépet nem kívánjuk egyéb célra használni a fordítás ideje alatt, valamint nem nyújt mások számára szolgáltatást, akkor el is hagyhatjuk a j utáni számot (vigyázat, ekkor végtelen).

A fenti sor hatására a fordítás jobban megterheli a gépet, viszont jóval hamarabb végez vele.

Ha nem Debian rendszerünk van kövessük a következő lépést:



make dep && make bzImage modules install modules_install



Debian rendszer esetén a kernel-package csomag segítségével:



make-kpkg kernel-image --revision normal1



ahol normal1 szabadon választott, egyetlen megkötés, hogy tartalmazzon számot, erre azért van szükség, hogy az apt-get upgrade ne írja felül a saját kernelünket. Ennek hatására az /usr/src könyvtárba létrejön a .deb kernel csomag, amit jelen esetben a



dpkg -i /usr/src/kernel-image-2.4.4_normal1_i386.deb



paranccsal telepíthetünk, vagy ami ennek a módszernek az előnye, hogy nem azon a gépen fordítjuk a kernelt, amelyiken alkalmazni fogjuk, hanem egy másikon és az így elkészült bináris csomagot könnyen átvihetjük a két gép között. További előny, hogy ezzel a módszerrel biztosabb, hogy nem veszítjük el a kernel config fájlt, mert egyrészt a .deb is tartalmazza, valamint installálás után a /boot-ba is bekerül, nem csak az /usr/src/linux-ban marad, ami viszonylag gyakran kerül felülírásra, törlésre. Az



echo "kernel-package-2.4.4 hold"|dpkg --set-selections



paranccsal pedig biztosíthatjuk magunkat, hogy egy upgrade nem írja felül a saját változatunkat.

Állítsuk be, hogy a boot folyamat a friss kernelt töltse be, ha eddig nem tettük volna. (esetlegesen lilo vagy grub config file-ok módosítása)

Indítsuk újra a rendszert. Ellenőrizzük, hogy biztosan az új kernellel bootoltunk azaz a verziószám és a fordítás dátuma stimmel-e :



uname -a



Linux host 2.4.4 #1 Fri Apr 27 10:28:11 CEST 2001 i686 unknown



Ellenőrizzük, hogy jól funkcionál-e a rendszer (hálózati interface-k működnek-e, a kapcsolat megvan-e a többi géppel, minden szükséges szolgáltatás elindult-e, ...). Ha minden rendben akkor kezdhetünk neki a patch-nek.


next up previous contents
Next: A FreeSwan Patch Up: A megvalósítás Previous: A megvalósítás   Tartalomjegyzék
Feczak Szabolcs 2001-05-26