Először is tegyünk egy rövidke
sétát a rendszermag könyvtárában.
A továbbiakban említendő összes
könyvtár a /usr/src/sys
könyvtáron belül található, amely
/sys
néven is elérhető.
Itt rengeteg alkönyvtár található,
mindegyikük a rendszermag különböző
részeit testesíti meg. Ezek közül most
számunkra a legfontosabb az
architektúra/conf
lesz, ahol majd létrehozzuk a saját rendszermagunk
konfigurációs állományát,
valamint a compile
, ahol majd a
rendszermagunk fordítása történik. Itt
az architektúra
lehet
i386
, alpha
,
amd64
, ia64
,
powerpc
, sparc64
vagy
pc98
(a PC-k egyik, leginkább
Japánban elterjedt változata). Az adott
architektúra könyvtárában
található összes állomány csak
arra az architektúrára vonatkozik, a kód
többi része pedig gépfüggetlen és
közös az összes többi létező
és leendő FreeBSD platformon. Érdemes megfigyelni
a könyvtárak logikai elrendezését:
minden egyes ismert eszköz, állományrendszer
és bővítmény saját
alkönyvtárral rendelkezik.
A példák során ez a fejezet feltételezi, hogy az i386 architektúrát használjuk. Ha ez a mi esetünkben nem így lenne, ne felejtsük el átírni bennük az elérési útvonalakat a rendszerünk architektúrájának megfelelően.
Ha nem lenne
/usr/src/sys
könyvtár a
rendszerünkben, valószínűleg még
nem telepítettük a rendszermag
forráskódját. Ezt a legkönnyebben
úgy tudjuk megtenni, ha root
felhasználóként elindítjuk a
sysinstall
programot és ott
kiválasztjuk a
(Beállítások), azon belül
(Terjesztések)
menüpontot, amiben válasszuk ki a
,
és terjesztéseket.
Ha nem szeretnénk erre a célra a
sysinstall programot
használni, de rendelkezésünkre áll a
„hivatalos” FreeBSD CD, akkor a forrásokat
akár parancssorból is
telepíthetjük:
#
mount /cdrom
#
mkdir -p /usr/src/sys
#
ln -s /usr/src/sys /sys
#
cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
#
cat /cdrom/src/sbase.[a-d]* | tar -xzvf -
Ezután lépjünk be az
i386/conf
könyvtárba és másoljuk le a
GENERIC
konfigurációs
állományt a kedvünk szerinti nevűre.
Például:
#
cd /usr/src/sys/i386/conf
#
cp GENERIC SAJÁT
Általában a nevet végig nagybetűkkel
írjuk, és ha több FreeBSD-s gépet is
üzemeltetünk különböző hardverekkel,
hasznosnak bizonyulhat megemlíteni benne az adott
gép rendszerének nevét is. Ebben a
példában ez most a
SAJÁT
lesz.
A rendszermagunk konfigurációs
állományát nem éppen a legjobb
ötlet a /usr/src
könyvtárban tárolni. Ugyanis könnyen
előfordulhat, hogy egy rosszul sikerült
fordítás után egyszerűen csak
letöröljük az egész
/usr/src
könyvtárat és
onnan kezdjük újra. Azonban csak ezután
juthat eszünkbe, hogy vele együtt bizony
letöröltük a saját rendszermagunk
konfigurációs állományát is!
Ehhez hasonlóan, közvetlenül a
GENERIC
konfigurációs
állomány szerkesztése sem ajánlott,
mivel a források egy esetleges frissítésénél
könnyen felülíródhat és ezzel
együtt elvesznek a módosításaink
is.
Tehát érdemes inkább valahol
máshol tárolnunk a rendszermagunk
konfigurációs állományát,
majd létrehozni rá egy szimbolikus linket a
i386
könyvtárban.
Valahogy így:
#
cd /usr/src/sys/i386/conf
#
mkdir /root/kernel
#
cp GENERIC /root/kernel/SAJÁT
#
ln -s /root/kernel/SAJÁT
Most pedig a kedvenc szövegszerkesztőnkkel
lássunk neki a
SAJÁT
átírásának! Ha nemrég
telepítettük csak a rendszerünket, az egyetlen
elérhető szövegszerkesztőnk minden bizonnyal
a vi lesz. Róla most
túlságosan is bonyolult lenne leírást
adnunk, de az Irodalomjegyzékben
található könyvek közül sokban
elég jól bemutatják. Ezen kívül
a FreeBSD ajánl egy könnyebben megtanulható
szövegszerkesztőt is az ee
személyében, amely a kezdők
számára az ideális választás.
Nyugodtan átírhatjuk az elöl
található megjegyzéseket a saját
konfigurációnknak megfelelően, vagy akár
azt is rögzíthetjük, hogy miben
tértünk el a GENERIC
beállításaitól.
Ha fordítottunk már rendszermagot SunOS™ vagy
más BSD operációs rendszer alatt, ez az
állomány ismerősnek tűnhet. Ha viszont
más operációs rendszerek, mint
például a DOS felől érkezünk, a
GENERIC
konfigurációs
állomány egy kissé terebélyesnek
tűnhet számunkra, ezért A konfigurációs
állomány című részt
figyelmesen és lassan olvassuk át.
Amennyiben a forrásfánkat a FreeBSD projekt
legfrissebb forrásaival szinkronizáljuk, mindig
olvassuk el a /usr/src/UPDATING
állományt, mielőtt bármilyen
frissítéshez is kezdenénk. Itt
megtalálhatóak azok a fontos érintett
kérdések és területek, amely
külön figyelmet igényelnek a frissített
forráskód esetén. A
/usr/src/UPDATING
mindig a FreeBSD
forrásának legfrissebb változatához
igazodik, és ezért sokkal naprakészebb
információkat tartalmaz, mint ez a
kézikönyv.
Most pedig le kell lefordítanunk a rendszermag forráskódját.
Lépjünk be a /usr/src
könyvtárba:
#
cd /usr/src
Fordítsuk le a rendszermagot:
#
make buildkernel KERNCONF=SAJÁT
Telepítsük az új rendszermagot:
#
make installkernel KERNCONF=SAJÁT
A FreeBSD teljes forrásfájára szükség van a rendszermag lefordításához.
Amikor egy saját rendszermagot
alapértelmezés szerint fordítunk, vele
együtt az összes modul is
lefordításra kerül. Ha viszont időt
szeretnénk megtakarítani a rendszermag
frissítése során, vagy csak a saját
moduljainkat akarjuk lefordítani, érdemes
átírnunk az /etc/make.conf
állományt a rendszermag
fordításának megkezdése
előtt:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Ez a változó megadja a ténylegesen lefordítandó modulok listáját.
WITHOUT_MODULES = linux acpi sound ntfs
Ez a változó a fordításból kihagyandó felső szintű modulokat sorolja fel. A rendszermag fordításának folyamatában egyéb hasznosnak tekinthető változókról a make.conf(5) man oldalán olvashatunk.
Ezután az új rendszermag a /boot/kernel
könyvtárba
kerül /boot/kernel/kernel
néven,
a korábbi rendszermag pedig
/boot/kernel.old/kernel
néven
őrződik meg. Most állítsuk le a rendszert
és indítsuk újra az új rendszermag
aktiválásához. Ha közben valamilyen
hiba történt volna, nézzük meg a fejezet
végén található, hibakeresésre
vonatkozó utasításokat. Mindenképpen
olvassuk el azt a részt, amely leírja, hogyan
állítsuk helyre a rendszerünket abban az
esetben, ha az új rendszermaggal nem indul.
A rendszerindítási folyamathoz tartozó
további állományok, mint
például a rendszerbetöltő
(loader(8)) és annak konfigurációs
állománya, a /boot
könyvtárban találhatóak. A
külső és saját modulok a /boot/kernel
a
könyvtárba kerülhetnek, azonban a
felhasználóknak nagyon ügyelniük kell
rá, hogy az itt található modulok
szinkronban legyenek a lefordított rendszermaggal.
Ellenkező esetben a rendszerben
megbízhatatlanságot, hibákat
észlelhetünk.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.