В большинстве случаев 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
После установки нового ядра нужно перегрузить компьютер, чтобы новые настройки ядра вступили в силу:
hostel# shutdown -r now