root@provoip # uname -i GENERIC
1. Наличие исходников
Перед тем как создавать свое ядро, необходимо загрузить исходники системы, например, с помощью subversion. Или же загрузить исходники при установке… В общем, неважно как, но они должы появиться у вас в системе.
Проверяем директорию /usr/src — если она пустая, то исходников нет (если, конечно, вы их не переместили куда-нибудь).
В /usr/src/sys находятся поддиректории с названиями поддерживаемых системой архитектур — amd64, i386,powerpc и др. Все, что находится в определенной поддиректории, относится только к определенной архитектуре. В каждой такой поддиректории находится поддиректория conf, которая содержит GENERIC конфигурацию ядра для этой архитектуры.
cd /usr/src/sys/amd64/conf/ root@provoip:/usr/src/sys/amd64/conf # ls DEFAULTS GENERIC GENERIC.hints Makefile NOTES
2. Файл конфигурации ядра
— Если нужно урезать конфигурацию ядра:
Советуют не редактировать GENERIC, а сделать копию и производить изменения уже над копией. Существует соглашение использовать для названия заглавные буквы.
root@provoip:/usr/src/sys/amd64/conf # cp GENERIC PROVOIP
— Если нужно расширить конфигурацию ядра:
Можно также скопировать GENERIC в свой файл и дописать нужные опции, а можно поступить следующим образом:
создать свой файл конфигурациии ядра — например, PROVOIP — там указать только дополнительные опции и подключить к нему файл GENERIC с помощью директивы include.
/usr/src/sys/amd64/conf/PROVOIP
# add Generic kernel include GENERIC ident PROVOIP # IPFW options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=5 options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT options IPFIREWALL_NAT options LIBALIAS
3. Сборка и установка Custom kernel
root@provoip # cd /usr/src
Собираем с указанием конфигурационного файла ядра:
root@provoip:/usr/src # make buildkernel KERNKONF=PROVOIP
Устанавливаем тоже с указанием конфигурационного файла ядра:
root@provoip:/usr/src # make installkernel KERNKONF=PROVOIP
-эта команда скопирует новое ядро в /boot/kernel/kernel, а старое сохранит в /boot/kernel.old/kernel.
Перезагружаемся и загружаемся с новым ядром.
root@provoip # uname -i PROVOIP