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
0. Ez nem az!
1. Miért?
2. Előkészületek
3. A kernel konfigurálása
4. A kernel fordítása
5. Reboot
6. Parancsok összefoglalása
7. Copyright, licenc, visszajelzés és ilyesmi0. 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.
1. 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.
2. 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 kernet 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
3. 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!
4. 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.
5. 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.
6. 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
7. 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õ, ha a copyright és az engedély szövegét minden másolaton megõrzik. E dokumentum módosított változatai a változatlan másolatokkal megegyezõ feltételek alapján másolhatók és terjeszthetõk, ha a módosított változatot is az ezzel az engedéllyel megegyezõ feltételekkel terjesztik. A fordítások is a ``módosított változat'' kategóriájába tartoznak.
Garancia: Nincs.
Ajánlások: Az üzleti célú terjesztés megengedett és támogatott, de nyomatékosan ajánlott, hogy a terjesztõ lépjen kapcsolatba a szerzõvel a terjesztés elõtt, a dolgok naprakészségének biztosítása végett. (Küldhetsz egy példányt abból, amit csinálsz, ha már úgyis csinálod.) A fordítóknak is ajánlott kapcsolatba lépni a szerzõvel, mielõtt lefordítják. A nyomtatott változat jobban néz ki. A papírt használd fel újra!
Visszajelzéseket, építõ jellegû kritikát a trey@debian.szintezis.hu email címre várok.
A dokumentum otthona a Hungarian Unix Portal. A legfrissebb verziót a
http://www.hup.hu/old/freebsd-kernel/ URL-en keresd.
Sok szerencsét!