Руководство FreeBSD


Сборка и установка собственного ядра - часть 3


Теперь вы должны скомпилировать ядро. Существует два способа, которые позволяют это сделать. Какой из них выбрать, зависит от того, почему вам понадобилось пересобирать ядро и версии FreeBSD, которую вы используете.

  • Если вы установили только

    исходные тексты ядра, используйте способ 1.

  • Если вы используете FreeBSD версии более ранней, чем 4.0 и вы не обновляете систему до FreeBSD 4.0 или выше, используя make world, используйте способ 1.

  • Если вы собираете новое ядро, не обновляя исходные тексты (возможно, для того, чтобы добавить новую опцию, например IPFIREWALL), вы можете использовать любой способ.

  • Если вы пересобираете ядро как часть процесса make world, используйте способ 2.

Если вы не обновляли дерево исходных текстов с момента последнего успешного завершения цикла buildworld-installworld, (то есть не запускали CVSup, CTM, или не использовали anoncvs), возможно использование последовательности config, make depend, make, make install.

Способ 1. Сборка ядра ``традиционным'' способом

  1. Запустите для того, чтобы сгенерировать исходные тексты ядра.

    # /usr/sbin/config MYKERNEL

  2. Перейдите в каталог, в котором будет собираться ядро. Запущенный как показано выше config(8) выведет имя этого каталога.

    # cd ../compile/MYKERNEL

    Для FreeBSD версий более ранних, чем 5.0, вместо этого используйте:

    # cd ../../compile/MYKERNEL

  3. Соберите ядро.

    # make depend

    # make

  4. Установите новое ядро.

    # make install

Способ 2. Сборка ядра ``новым'' способом.

  1. Перейдите в каталог /usr/src.

    # cd /usr/src

  2. Соберите ядро.

    # make buildkernel KERNCONF=MYKERNEL

  3. Установите новое ядро.

    # make installkernel KERNCONF=MYKERNEL

Замечание: В FreeBSD 4.2 и в более ранних, вам будет необходимо заменить KERNCONF= на KERNEL=. 4.2-STABLE, исходные тексты которой были обновлены до 2 февраля 2001 года, не понимает параметра KERNCONF=.

Новое ядро будет скопировано в каталог /boot/kernel как /boot/kernel/kernel, а старое ядро будет перемещено в /boot/kernel.old/kernel.


Начало  Назад  Вперед