Компиляция ядра FreeBSD

В статье описано как компилировать ядро FreeBSD. При правильной конфигурации размер ядра может намного уменьшиться.
Для того, чтобы вы могли скомпилировать свое ядро вам надо было с диска установить

src — Source for everything but encryption

и потом выбрать

sys — /usr/src/sys (FreeBSD kernel)

.
Доставить можно через /stand/sysinstall.
Считаем, что исходники ядра вы установили.
Под пользователем root идем в папку /usr/src/sys/i386/conf.
Копируем файл GENERIC, например в mykernel. Полученный файл и будем править.
Если у вас машина Pentium4, то советую сразу закоментировать строки:

cpu I386_CPU
cpu I486_CPU
cpu I586_CPU

пусть наша машина будет настроена на определенный процессор и не распыляется на всякую фигню 😉
Можно отключить не используемы устройства, что уменьшит размер ядра и соответсвенно нагрузку на процессор. Посмотреть какие у вас устройства можно коамандой dmesg, после загрузки компьютера.
Так же можно добавить устройства, которые по умолчанию не поддерживаются в ядре. Более подробно устройства описаны в файл LINT для FreeBSD ветки 4.х, и в файле NOTES для FreeBSD ветки 5.х.

После того как мы отредактировали наш файл, можно приступить к его компиляции.
Нам надо будет выполнить следующие команды:

config mykernel - конфигурим ядро
cd ../../compile/mykernel
make depend
make
make install - устанавливаем ядро

Если все прошло удачно, то все что нам надо это перезагрузиться.

Если вдруг перезагрузка не прошла нормально, то мы можем загрузиться со старым ядром. Для этого надо во время отсчета 9 сек. нажать любую клавишу и написать boot kernel.old.

Если загрузка прошла нормально, то мы получаем новое ядро и работаем в систиме с обновленным ядром ;).

P.S. Советую перед эксперементами сохранить нормальное ядро, например под именем kernel.good и тогда если не загрузилось наше новое ядро, мы вместо kernel.old указажем boot kernel.good. Это предлагаю сделать, потмоу что при новом собирании ядра наш kernel.old перезапишется например не рабочим ядром и мы вообще не сможем загрузиться.

P.P.S. Сохранение хорошего рабочего ядра:
Для FreeBSD 4.x — команда cp /kernel /kernel.good
Для FreeBSD 5.x — команда cp -R /boot/kernel /boot/kernel.good

Второй способ обновления ядра:
Перейдите в каталог /usr/src.
# cd /usr/src

Соберите ядро.
# make buildkernel KERNCONF=MYKERNEL

Установите новое ядро.
# make installkernel KERNCONF=MYKERNEL

Замечание: Этот способ построения требует наличия всех исходных файлов систем. Если вы только установили исходные файлы ядра, то используйте традиционный способ, как описано выше.

MYKERNEL — конфигурационный файл вашего ядра, который для i386 находится в папке /usr/src/sys/i386/conf. Если не указывать параметр KERNCONF, то соберется ядро GENERIC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Проверка знаний * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.