Главная Форум Wiki Почта Jabber Devel NIX-FILES
Материал из AltLUG Wiki
Перейти к: навигация, поиск

Сборка нового ядра во FreeBSD

В большинстве случаев GENERIC-ядра FreeBSD (wikipedia:FreeBSD) хватает на все случаи жизни, но иногда нужно собрать специализированное ядро или вы его решили банально обновить. Для определенности предположим, что при установке FreeBSD (physics:FreeBSD) вы установили исходные коды ядра системы и у вас есть подключение с интернету с "подопытной BSD-машины".

В качестве базовой системы для этого примера я буду использовать FreeBSD 7 (i386), хотя он подходит и для всех других версий FreeBSD (возможно за исключением совсем античных версий - этак 2-й и 3-й).

Содержание

Обновление исходных кодов ядра

Для начала неплохо обновить исходные коды ядра, для чего настроем соответствующий supfile для csup (cvsup). Каркасы для supfile можно найти в папке /usr/share/examples/cvsup/ . Возмем из каркасов standard-supfile и отредактируем его для последующего использования:

hostel# mkdir /root/cvsup
hostel# cp /usr/share/examples/cvsup/standard-supfile /root/cvsup/standard-supfile
hostel# vim /root/cvsup/standard-supfile

В standard-supfile нужно отредакрировать несколько строк, в которых нужно указать зеркало с иходниками FreeBSD и версию ядра. Для моего случая адрес ближайшего зеркала с исходными кодами FreeBSD является freebsd.uni-altai.ru, а версия - RELENG_7 (если понадобится собрать ядро для версии 7.1, к примеру, то значение tag изменится на значение RELENG_7_1). Привожу указанный кусок файла:

*default host=FreeBSD.uni-altai.ru
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7
*default delete use-rel-suffix

Следующим шагом обновляем дерево исходных кодов FreeBSD:

hostel# csup -g -L2 /root/cvsup/standard-supfile

После обновления исходные коды можно будет найти в папке /usr/src/ и не лишним будет ознакомиться с содержимым файла /usr/src/UPDATING

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

Если вы решили использовать GENERIC-конфигурацию, то этот пункт можете смело пропустить. Чтобы в будущем не затереть случайно файл с настройками ядра, сделаем следующее: скопируем GENERIC-конфигурацию в домашнюю папку под новым именем и сделаем симлинк на файл настроек.

hostel# mkdir /root/kernel
hostel# cp /usr/src/sys/i386/conf/GENERIC /root/kernel/HOSTEL
hostel# ln -fs /root/kernel/HOSTEL /usr/src/sys/i386/conf/HOSTEL

Далее внимательно читаем файл настроек и редактируем его под ваши задачи:

hostel# vim /root/kernel/HOSTEL

Сборка ядра

После редактирования файла конфигурации сборка ядра выглядит тривиальной задачей:

hostel# cd /usr/src
hostel# make buildkernel KERNCONF=HOSTEL

Если же вы пересобираете GENERIC-ядро, то тогда все будет еще тривиальнее:

hostel# cd /usr/src
hostel# make buildkernel

Установка нового ядра

Если вы устанавливаете обновленное GENERIC-ядро, то установка тривиальна:

hostel# make installkernel

Для ядра с модифицированными настройками так:

hostel# make installkernel KERNCONF=HOSTEL

Перезагрузка FreeBSD

После установки нового ядра нужно перегрузить компьютер, чтобы новые настройки ядра вступили в силу:

hostel# shutdown -r now
Личные инструменты