Изграждане на ядрото на FreeBSD

След като прочетете предишния раздел, трябва да можете да проектирате минимална конфигурация на ядрото. Преди да добавите поддръжка за други функции към ядрото, препоръчвам да изградите и стартирате описаното минимално ядро. Това ще ви позволи да разберете какво наистина е необходимо за правилната работа на ядрото и каква допълнителна конфигурация е необходима.

Трябва да посочите името на файла, който съдържа вашата конфигурация на ядрото, или в командния ред, или във файла /etc/make.conf, или във файла /etc/src.conf като променлива на околната среда KERNC0NF.

фута направи KERNCONF = MYKERNEL ядро

Процесът на изграждане започва с изпълнение на командата config (8) за търсене на синтаксични грешки в конфигурационния файл. Ако config (8) срещне някакви грешки, той ще ги докладва и ще излезе. Някои от съобщенията за грешки са доста очевидни. Например, можете случайно да премахнете поддръжката на файловата система UNIX (UFS), но да активирате поддръжката за инициализация на UFS. Една функция не може без друга, така че config ще ви каже точно каква е грешката. Другите съобщения за грешки могат да изглеждат странни и неразбираеми, n тогава може да отнеме много време, за да се открият причините, като например, когато получите следното съобщение:

HUMVEE: неизвестна опция "NET6"

Ако config (8) не намери грешки, просто трябва да изчакате. Процесът на изграждане на ядрото на машина 486 може да отнеме няколко часа, но по-малко от час на модерна и бърза система. В същото време на екрана ще се показват загадъчни съобщения за напредъка на компилацията. Когато изграждането завърши, системата ще преименува текущото ядро ​​на /boot/kernel.old и новото ядро ​​ще бъде запазено като/boot/kernel. Когато свърши, рестартирайте сървъра и погледнете съобщенията, които се появяват по време на зареждане.

Отстраняване на проблеми при създаването на ядрото

Ако не е било възможно да се изгради ядрото, тогава за идентифициране на проблеми, на първо място, трябва да разгледате последните редове, издадени по време на компилацията. Някои от тези редове може да изглеждат като неразбираем шифър, докато други са съвсем очевидни. Важно е да запомните, че съобщенията като „Спиране в името на директория“ са абсолютно безполезни - съобщенията за грешки, от които се нуждаем, са пред тях. Говорихме за това как да разрешим тези проблеми в глава 1: вземете текста на съобщението за грешка и помолете търсачката за помощ. Обикновено грешките във времето на компилация се причиняват от грешки в конфигурацията.

За щастие, на FreeBSD, цялото ядро ​​трябва да бъде компилирано, преди да инсталирате каквото и да било. Благодарение на това системата е защитена и резултатите от неуспешната компилация все още са в директорията за изграждане.

Стартиране от резервно ядро

И така, ако новото ядро ​​не работи или е нестабилно? Драйверът на устройството може да не е бил посочен по време на конфигурирането или псевдо ppp устройството да е било премахнато и да не се установи комутируема връзка с Интернет. Не изпадайте в паника! Старото ядро ​​е запазено, нали? Добре. Ето какво да направите.

В глава 3 обсъдихме механизма за зареждане на алтернативно ядро. Ще преминем през този процес отново, но може да се наложи да се върнете към по-ранен раздел, за да видите някои разяснения относно подробностите за контрола на буутлоудъра. Сега нека съсредоточим вниманието си върху причините, които могат да ви принудят да стартирате от резервно ядро ​​и как да го направите правилно.

Първо трябва да решите кое ядро ​​да заредите. Старото ядро ​​трябва да е в директорията/boot - този раздел предполага, че ядрото /boot/kernel.good трябва да бъде заредено. Стартирайте рестартиране и го прекъснете, за да получите достъп до командния ред на буутлоудъра. Не забравяйте, казахме, че когато FreeBSD осигури достъп до командния ред на буутлоудъра, ядрото вече е заредено, така че първото нещо, което трябва да направите, е да изхвърлите лошото ядро ​​зад борда:

Вече можете да заредите необходимото ядро, както и модула ACPI (ако се използва) и всички други модули на ядрото, които обикновено се зареждат по време на стартиране на системата:

Добре зареждане /boot/kernel.good/kernel

Добре зареждане /boot/kernel.good/acpi. ко

След това системата ще бъде стартирана до старото ядро.

Източник: Лукас М. FreeBSD. Изчерпателно ръководство, 2-ро издание. - Пер. от английски - SPb.: Symbol-Plus, 2009. - 864 с., Ил.