8.7. Ha valamilyen hiba történne

Négyféle probléma jelentkezhet egy saját rendszermag készítése során. Ezek:

A config hibát jelez:

Amikor a config(8) parancs hibát jelez vissza a rendszermagunk konfigurációs beállításainak feldolgozása során, akkor minden bizonnyal csak egy apró hibát vétettünk valahol. Szerencsére a config(8) kiírja a hibás sor számát, ezért gyorsan fel tudjuk kutatni a hibát tartalmazó sort. Például, ha ezt látjuk:

config: line 17: syntax error

Akkor győződjünk meg róla, hogy helyesen írtuk be az adott sorban szereplő kulcsszót. Ebben segítségünkre lehet, ha összevetjük a GENERIC konfigurációs állománnyal vagy más hivatkozásokkal.

A make hibát jelez:

Ha a make jelez hibát, az általában arra utal, hogy az általunk korábban megadott rendszermag konfigurációs állományt a config(8) nem értette meg rendesen. Megint azt tudjuk csak javasolni, hogy nézzük át a konfigurációs beállításainkat, és ha ezután sem sikerül megoldani a problémát, akkor mellékeljük egy levélben a rendszermagunk konfigurációs beállításait és küldjük el a FreeBSD general questions levelezési lista címére, ahol a hozzáértők gyorsan átnézik.

A rendszermag nem indul:

Ha az új rendszermagunk nem indul vagy nem képes felismerni az eszközeinket, ne essünk kétségbe! Szerencsére a FreeBSD tökéletes megoldással tud szolgálni az összeférhetetlen rendszermagok esetére: a FreeBSD rendszerbetöltőjében egyszerűen válasszuk ki az indítandó rendszermagot. Ezt akkor tudjuk előhívni, amikor a rendszerindító menü megjelenik. Válasszuk ki a hatos, vagyis az "Escape to a loader prompt" (a betöltő parancssorának előhívása) menüpontot. Mikor megjelenik a parancssor, írjuk be, hogy unload kernel, majd adjuk ki a boot /boot/kernel.old/kernel, parancsot, amiben bármilyen más olyan rendszermagot is megnevezhetünk, ami korábban már működött. Ezért amikor beállítunk egy új rendszermagot, mindig érdemes a kezünk ügyében tartani legalább egy olyan rendszermagot, amely működik.

Miután sikerült elindítanunk az egyik használható rendszermagot, nézzük át még egyszer a konfigurációs állományt és próbáljuk újra lefordítani a rendszermagot. A probléma megoldását segítheti a /var/log/messages állomány áttanulmányozása is, ami többek közt rögzíti a rendszermag sikeres indulása során keletkező üzeneteket. Ezenkívül a dmesg(8) parancs is meg tudja jeleníteni az aktuális rendszerindítás üzeneteit.

Megjegyzés:

Ha gondok merülnének fel a rendszermag elkészítése során, mindenképpen tartsuk meg a GENERIC, vagy bármilyen másik olyan rendszermagot, amelyről tudjuk, hogy működik. Nevezzük át, így nem fog felülíródni a következő fordítás és telepítés során. A kernel.old állományra ugyanis nem minden esetben számíthatunk, mivel az új rendszermagok telepítésénél a kernel.old mindig felülíródik a legutóbb telepített rendszermaggal, amely azonban nem feltétlenül lesz működőképes. Sőt, amint csak lehetséges, rakjuk a működő rendszermagot a /boot/kernel könyvtárba vagy különben a ps(1) és a hozzá hasonló parancsok nem fognak rendesen működni. Mindezek elvégzéséhez egyszerűen nevezzük át a jó rendszermagot tartalmazó könyvtárt:

# mv /boot/kernel /boot/kernel.rossz
# mv /boot/kernel.jó /boot/kernel
A rendszermag működik, a ps(1) viszont nem:

Ha olyan rendszermagot telepítettünk, aminek a verziója nem egyezik meg a hozzá tartozó segédprogramokéval, tehát például -CURRENT rendszermagot raktunk egy -RELEASE rendszerhez, egyes rendszerállapotjelző parancsok, mint például a ps(1) vagy a vmstat(8) nem fognak működni. Ebben az esetben az egész rendszert újra kell fordítanunk és telepítenünk a rendszermagunkkal megegyező verziójú forrásból. Részben ezért sem különösen ajánlott, hogy az operációs rendszer többi részétől eltérő verziójú rendszermagot használjunk.

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>.