Описание всех устройств и описаний, которые могут быть использованы в 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
options
config
controller
device
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Обязательно проверьте их наличие!