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

  1. cd /usr/src/sys/i386/conf
  2. cp GENERIC NEWKER
  3. vi NEWKER
  4. config NEWKER
  5. cd /usr/src/sys/compile/NEWKER
  6. make depend
  7. make
  8. make install
  9. 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!