RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Процес пересборки ядра в FreeBSD по-моему, намного
легче, чем в linux (это сугубо моё мнение). Он состоит из 3 этапов:
установка исходников, внесение изменений в файл конфига ядра, собственно
пересборка.
1) Установка
исходников
Первым делом ставим их (если они у вас уже стоят, то этот этап
можно пропустить). Ставить можно по разному, с диска, с ftp, ... Я чаще всего
ставлю с диска. И так, вставляем диск, запускаем от рута sysinstall и выбираем
пункт меню Configure -> Distribution -> src и выбираем откуда
ставить. Я выбираю с диска.
2) Внесение изменений в
ядро.
После установки исходников, идём редактировать файл
конфигурации ядра. Он находится по адресу /usr/src/sys/{тип установленной ОС:
i386, amd64, ...}/conf/{имя файла ядра}. По умолчанию присутствует несколько
файлов конфигурации, включая GENERIC. Это как бы самый основной конфиг,
подходит для большинства. Вот его и рекомендую править, точнее копию. (копируем
GENERIC например в kern1) и дальше будем править только
kern1, что бы если что, можно было обратно вернуться на GENERIC.
Теперь открываем полученный kern1 любым удобным
редактором и вносим собственно изменения. Обычно это добавление каких-то
устройств, опций. Рекомендую при внесении изменений добавлять свои комментарии.
При удалении, лучше закомментировать сообвествующий опции, вместо того, что бы
просто удалить.
После внесения изменений, сохрнаняемся, и выходим.
3) Собственно компиляци
нового ядра.
После всех изменений, переходим в каталог /usr/src и
выполняем следующую команду (если вы компилируете на многопроцессорной машине,
имеет смысл выполнять make с ключом -j, где n – количество
процессоров:)
#make -j4 buildkernel
KERNCONF=kern1 && make installkernel KERNCONF=kern1
Параметр j4 означает собирать в 4 потока, то есть
значительно быстрее. Если у вас не Pentium3, а хотя бы какой-нибудь dualcore
тогда применение этого параметра будет целесообразным.
Если всё прошло успешно, то можно будет перегрузить машину, и
проверить изменения.
Примечание Если вдруг
новое ядро не загрузилось, тогда делаем так. При загрузке появляется 10
секундная пауза, выбираем пункт 6 и делаем такие действия
OK unload
kernel_name
OK load
/boot/kernel.old/kernel
OK boot
, где kernel_name - имя нового ядра при сборке
Возможно на некоторых системах вторая строчка может показывать
сообщение, что ядро не найдено. Тогда можно попробовать сделать так.
OK unload
kernel_name
boot
/boot/kernel.old/kernel
4) Некоторые опции
конфига ядра работы с модулями.
NO_MODULES="YES" - не
компиллировать модули
MODULES_OVERRIDE=acpi
ipfw - компиллировать только указанные модули (задаются через пробел)
WITHOUT_MODULES=pf
ntfs_iconv - не компиллировать указанные модули (будут скомпиллированы все,
кроме указанных модулей)
5) Полезная
опция
Начиная с персии 7.0 появилась переменная sysctl
kern.conftxt, которая позволяет просмотреть, с какой конфигурацией собрано
текущее ядро (следует использовать команду «sysctl -b kern.conftxt»).
Правда, доступной она будет только в случае, если ядро собрано с опцией
INCLUDE_CONFIG_FILE (в файле GENERIC она отсутствует). Также можно
воспользоваться командой «config -x /boot/kernel/kernel», извлекающей
конфигурацию из указанного двоичного файла ядра. Раньше опция
INCLUDE_CONFIG_FILE тоже поддерживалась, но конфигурацию приходилось
«выдирать» из бинарного файла с помощью утилиты strings.