FreeBSD kernelfordítás mini-HOWTO
A HupWiki-ből...
Tartalomjegyzék |
FreeBSD kernelfordítás mini-HOWTO
Micskó Gábor trey@hup.hu - Hungarian Unix Portal
v.1.0, 2002. augusztus. 28 - Copyright © Hungarian Unix Portal
Ez nem az!
Ez a HOWTO nem egy teljes referencia, hanem egy gyors összefoglaló arról, hogy hogyan tudsz egyedi FreeBSD kernelt fordítani. A HOWTO számos dologra nem tér ki, nem megy bele a részletekbe, egyszerűen csak megmutatja az utat, hogy hogyan is kellene hozzákezdeni a fordításhoz. A FreeBSD kernelt - mint ahogy a Linux kernelt is - ezerféleképpen le lehet fordítani. Mindenki fordítsa le úgy, ahogy neki a legmegfelelőbb. Arról, hogy hogyan tudsz FreeBSD kernelt fordítani, találsz egy teljes összefoglalást a FreeBSD Handbook-ban, a "Building and Installing a Custom Kernel" címszó alatt, amelyet megtalálsz a http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ kernelconfig-building.html URL alatt
Miért?
Hogy miért fordítsuk újra a FreeBSD kernelt? Több okunk is lehet arra, hogy egy operációs rendszer kernelét újra fordítsuk. Egyik ok lehet az, hogy új drivereket, funkciókat akarunk a kernelbe építeni, a másik fő ok éppen ennek az ellenkezője, azaz ki szeretnénk szedni minden felesleges funkciót, drivert a kernelből. A jelen esetben tételezzük fel, hogy azért fordítunk új kernelt, hogy aktiváljuk az SMP (Symmetric Multi Processing) támogatást a FreeBSD kernelben. Tesszük mindezt azért, mert olyan számítógéppel rendelkezünk, amelyben mondjuk 2 CPU van.
Előkészületek
Amikor úgy döntesz, hogy újrafordítod a FreeBSD kernelt legyél biztos benne, hogy rendelkezel BOOTDISK-kel. Amire még szükséged lesz, az egy kernelforrás. Ellenőrizd a fordítás megkezdése előtt, hogy rendelkezel-e a FreeBSD kernel forrásával. Ezt megteheted így:
# cd /sys
ha nincs meg a forrás, akkor futtasd root-ként a
# /stand/sysinstall
programot, és válaszd a "configure"-t, következőnek a "distribution"-t, majd az "src"-t és végül a "sys"-t. Ezzel telepítheted a szükséges forrásfile-okat a /usr/src/sys könyvtárba.
Configure Do post-install configuration of FreeBSD
Distributions Install additional distribution sets
[ ] src Sources for everything
[ ] sys /usr/src/sys (FreeBSD kernel)
[OK]
Ahhoz, hogy elkezd a kernel fordítással kapcsolatos kalandjaidat, válts munkakönyvtárat a /usr/src/sys/i386/conf könyvtárba. Két filet kell találnod ebben a könyvtárban. Ezekre szükségünk lesz, a fileok a GENERIC, és a LINT nevű fileok.
GENERIC alapkonfiguráció, erről készített kernelt bootolsz ha a "gyári rendszered" van LINT kibővített, "advanced" konfigurációs file, még több hardver és eszközmeghajtó támogatással
A kernel konfigurálása
Az első dolog legyen amit csinálsz, hogy készítesz egy másolatot a GENERIC fileról, mondjuk NEWKER néven:
# cp GENERIC NEWKER
NE TÖRÖLD LE A "GENERIC" VAGY A "LINT" fileokat, mert később megbánhatod, szükséged lehet még rájuk!
Szerkeszd az új kernel filet (jelen esetben a NEWKER nevűt) a kedvenc editoroddal (vi a barátod). Végezd el a szükséges változtatásokat (kommentezd ki a # karakterrel a szükségtelen dolgokat, vagy épp ellenkezőleg, távolítsd el a # karakert az elől a sor elől, amit be szeretnél építeni a kernelbe). Jelen esetben az SMP támogatás megvalósításához a következőket végezd el:
#To make an SMP kernel, the next two are needed
#options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/O
a változtatás előtt, és utána így nézzek ki:
#To make an SMP kernel, the next two are needed
options SMP # Symmetric MultiProcessor Kernel
options APIC_IO # Symmetric (APIC) I/O
végezd el a szükséges beállításokat, majd mentsd el a NEWKER file változásait.
Most joggal kérdezheted, hogy nem kell a LINT file? A FreeBSD nem detektálja a hangkártyát magától például, azt neked kell beletenni a konfigba! Hogy hozzáadd a hangkártya támogatást, nézd meg a LINT filet. Talán abban megtalálod a számodra megfelelő sort.
Következő, amit el kell végezni, hogy futtatni kell a ``config filenev" parancsot.
# config NEWKER
Ha közben bármilyen hibát kapsz, valamit elrontottál a konfig fileban, menj vissza és javítsd ki!
A kernel fordítása
A kernel fordításához be kell lépned az új kerneled konfigjának nevét viselő könyvtárba, azaz a /usr/src/sys/compile/FILENEV, ahol a FILENEV a kernelkonfig neve, jelen esetben NEWKER.
# cd /usr/src/sys/compile/NEWKER
A befejezéshez már csak három lépést kell megtenned. Az alábbi parancsokat kell kiadnod:
# make depend # make # make install
Ez a dolog egy kicsit hosszabb időt vesz igénybe, itt az ideje, hogy rendelj egy pizzát, vagy igyál egy kávét ;) Pár szóban, hogy mi is történik ilyenkor: a make depend scriptek sorozatát futtatja, amelyek összegyűjtik a fordításhoz szükséges forráskódokat. A make segítségével fordul le maga a kernel. A make install telepíti tulajdonképpen a root könyvtárba "/" a kernelt, és nevezi át a jelenlegi kernelt, a kernel.GENERIC-et kernel.old-ra, és teszi a helyére az új kernelt.
Reboot
Ha kövtetted a felsorolt lépéseket, és mindent jól csináltál, akkor most rebootolhatsz. Hacsak nem rontottad el nagyon a konfigurálást, nagy valószínűséggel be is fog bootolni az új kernel.
Parancsok összefoglalása
- cd /usr/src/sys/i386/conf
- cp GENERIC NEWKER
- vi NEWKER
- config NEWKER
- cd /usr/src/sys/compile/NEWKER
- make depend
- make
- make install
- reboot
Copyright, licenc, visszajelzés és ilyesmi
Micskó Gábor trey () hup ! hu - Hungarian Unix Portal - http://www.hup.hu/
Ez a dokumentum szabadon másolható és terjeszthető a GNU GPL terjesztési feltételei szerint.
Garancia nincs.
Visszajelzéseket, építő jellegű kritikát a trey () hup ! hu email címre várok.
Sok szerencsét!