Top News Search Software X Window System Documentation Support Home

Конфигурирование ядра FreeBSD

Описание всех устройств и описаний, которые могут быть использованы в 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-5x86;
"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.