Опис всіх пристроїв і описів, які можуть бути використані в FreeBSD, знаходяться у файлі /sys/i386/conf/LINT.

В директорії /sys/i386/conf також знаходиться файл з описом ядра GENERIC. Ядро GENERIC — це ядро, з допомогою якого ми встановили FreeBSD на комп’ютер.
В описі ядра можуть перебувати:
1) machine
( в нашому випадку це «i386», тобто процесор, сумісний з Intel 386 );
2) cpu «I586_CPU»

«I386_CPU» — 386-е процесори;
«I486_CPU» — 486-е процесори, включаючи AMD-5×86;
«I586_CPU» — 586-e процесори: Pentium, Pentium MMX, AMD-K5, AMD-K6;
«I686_CPU» — 686-е процесори: Pentium Pro, Pentium II;
3) ident FIRST
ідентифікатор (назва) ядра.
4) options
5) config
6) controller
7) device
8) pseudo-device

Перевірити список пристроїв у вашій системі можна за допомогою наступної команди:

# dmesg
(Правда, якщо говорити точніше, то ця команда показує системні повідомлення, див. man dmesg).

Що ж потрібно зробити, що зібрати нове ядро??
1) мати при собі список всіх пристроїв, встановлених у вашому комп’ютері;
2) знати (!!!) чого ви хочете від ОС;

Якщо ви це знаєте — продовжимо.
Беремо звичайний файл /usr/src/sys/i386/conf/GENERIC та копіюємо його в файл FIRST.

# cd /sys/i386/conf
# cp GENERIC FIRST
Додаємо в нього потрібні опції, контролери пристрою, непотрібні відповідно прибираємо.

Закінчили редагування — виконуємо команди.

# /usr/sbin/config FIRST
# cd ../../compile/FIRST
# make depend
# make
Якщо все пройшло без сучка і задирочки, то инсталлируем нове ядро:

# make install
Якщо ж одна з команд видала помилку, то слід ще раз уважно перевірити список пристроїв і опцій у файлі /usr/src/sys/i386/conf/FIRST. Якщо ж ваш погляд нормально, то спробуйте ще раз «перезібрати» ядро.

В моє ядро включений Sound Blaster 16. Деякі девайси не присутні в системі, наприклад snd0 (перевірити це можна, заглянувши в каталог /dev), тому створимо його:

# cd /dev
# sh MAKEDEV snd0
Можливо, що нове ядро з якихось причин не зможе завантажитися… Що робити?
Запишіть повідомлення, що видаються ядром в момент завантаження і відправте лист в список розсилки.
Спробуйте завантажити ваше старе ядро:

boot: kernel.old
Завантаження старого ядра повинна пройти успішно. Замініть старе ядро на нове:

# cd /
# chflags noschg kernel
# cp kernel kernel.new
# cp kernel.old kernel
# chflags schg kernel
# reboot
Перевірте наявність файл /boot.config. Якщо файлу немає — створіть його наступним чином:

# echo /boot/loader > /boot.config
В каталозі /boot повинні міститися такі файли:

boot0
boot1
boot2
loader
Обов’язково перевірте їх наявність!
Деякі музичні карти (a-la Sound Blaster 16C PnP) ініціалізуються ядром тільки в тому випадку, якщо в установках BIOS ВІДКЛЮЧЕНА ПІДТРИМКА PnP OS.