Има пет категории с проблеми, които могат да се появят, когато изграждате собствено ядро. Те са:
Ако командата config(8) не сполучи, когато й дадете своята конфигурация на ядрото, вероятно сте направили някъде проста грешка. За щастие, config(8) ще изпише номерът на реда, която предизвиква проблема, така че бързо можете да прелистите до него с vi. Например, ако видите:
config: line 17: syntax error
Можете да скочите до проблема във vi, като напишете 17G в команден режим. Уверете се, че ключовата дума е написана правилно, като я сравните с GENERIC конфигурацията на ядрото или някакъв друг справочник.
Ако командата make не сполучи, обикновено това значи, че има грешка в описанието на ядрото, но не толкова тежка, че config(8) да може да я улови. Отново, прегледайте конфигурацията и не все пак не успеете да разрешите проблема, изпратете писмо до FreeBSD general questions mailing list заедно с конфигурацията на ядрото си, и вероятно бързо ще се разбере къде е проблемът.
Ако ядрото се компилира без грешки, но не може да бъде инсталирано (командата make install или make installkernel не сполучва), първото нещо, което трябва да проверите е, дали системата ви върви в ниво на сигурност (securelevel) 1 или по-високо (вижте init(8)). Инсталацията на ядрото се опитва да премахне флага за неизменимост (immutable flag) на ядрото ви и се опитва да постави този флаг на новото ядро. Тъй като ниво на сигурност 1 или по-високо предотвратява премахването на флага за неизменимост на всички файлове в системата, инсталацията на ядрото се нуждае от ниво на сигурност 0 или по-ниско.
Ако новото ви ядро не се зарежда или не успее да разпознае вашите устройства, не изпадайте в паника! За щастие, FreeBSD има отличен механизъм за възстановяване от несъвместими ядра. Просто изберете ядрото, което искате да заредите от FreeBSD boot loader. Имате достъп до него, когато системата брои от 10 надолу. Натиснете който и да е клавиш с изключение на Enter, напишете unload и после въведете boot kernel.old, или името на файла на всяко едно друго ядро, което би заредило правилно. Когато преконфигурирате ядро е добра идея винаги да имате под ръка ядро, което знаете че работи безпроблемно.
След като заредите добро ядро можете на проверите конфигурационния си файл и да опитате отново. Един полезен ресурс е файлът /var/log/messages, който регистрира, освен други неща, и всички съобщения изведени от ядрото при успешно зареждане. Също така, командата dmesg(8) ще изпише съобщенията на ядрото от последното зареждане.
Note: Ако имате проблеми с изграждането на ядрото се уверете, че имате GENERIC или някое друго добре функциониращо ядро под различно име, което няма да бъде изтрито при следващото изграждане. Не можете да разчитате на kernel.old, защото когато инсталирате ново ядро, върху kernel.old бива записано последното инсталирано ядро, което може да е неработещо. Също така, колкото се може по-бързо преместете работещото ядро на правилното място му (kernel) защото в противен случай команди като ps(1) няма да работят както трябва. Командата, с която да ``отключите'' файла с ядрото, който make инсталира е:
# chflags noschg /kernelАко откриете, че не можете да направите това, вероятно системата върви под нивото на сигурност (securelevel(8)) по-голямо от нула. Редактирайте реда съдържащ kern_securelevel в /etc/rc.conf и го променете на -1, след това презаредете. Можете да го промените на старата му стойност, когато настроите новото си ядро.
Ако искате да ``заключите'' ядрото си или който и да е друг файл, така че да не може да бъде местен или променян:
# chflags schg /kernel
Във FreeBSD 5.X ядрата не се инсталират със системния флаг за неизменимост (immutable flag), така че е малко вероятно това да е източника на проблемите ви.
Ако сте инсталирали ядро с версия различна от тази, с която са били изградени системните приложения, например, 4.X ядро на 3.X система, много от командите показващи системния статус като ps(1) и vmstat(8) няма да функционират повече. Трябва да прекомпилирате библиотеката libkvm, както и тези приложения. Това е и една от причините да не е добра идея използването на различни версии на ядрото и останалата част от операционната система.
Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
За въпроси относно FreeBSD, прочетете документацията преди да попитате в <questions@FreeBSD.org>.
За въпроси относно този документ, e-mail <doc@FreeBSD.org>.