Пересборка ядра NetBSD

Скачиваем исходные тексты ядра с официального FTP-сервера проекта:

# cd /usr
# ftp anonymous@ftp.netbsd.org
# cd pub/NetBSD/NetBSD-9.1/source/sets/
# get syssrc.tgz
# cd /
# tar xzvf syssrc.tgz
# cd /usr
# rm syssrc.tgz

Переходим в каталог с конфигурациями ядер для архитектуры i386:

# cd src/sys/arch/i386/conf

Будем собирать своё ядро на основе модульного ядра. Для этого создадим новый файл MODULAR_M2 и впишем в него одну опцию:

include "arch/i386/conf/MODULAR"

И добавим в этот файл ещё две опции для замены планировщика 4.4BSD на планировщик M2:

no options SCHED_4BSD
options SCHED_M2

Выполним конфигурирование:

# config MODULAR_M2

Соберём зависимости:

# cd ../compile/MODULAR_M2
# make depend

Теперь можно собрать само ядро:

# make

После сборки в текущем каталоге появится файл с именем netbsd - это и есть ядро.

Сделаем резервную копию текущего ядра и поместим на его место только что собранное ядро:

# cp /netbsd /netbsd.generic
# cp netbsd /netbsd

Я дополнительно копирую его под именем netbsd.modular_m2, чтобы в дальнейшем при переходе между ядрами можно было вернуться именно к этому ядру:

# cp netbsd /netbsd.modular_m2

Кроме архива syssrc.tgz можно сачать и другие наборы с исходниками системы:

  • gnusrc.tgz - используемые проектом сторонние компоненты c лицензиями GPL,
  • sharesrc.tgz - исходные тексты содержимого каталога /usr/share: документация, примеры, данные для локализации, страницы руководства, шрифты, клавиатурные раскладки, make-файлы,
  • src.tgz - исходные тексты базовой системы NetBSD,
  • syssrc.tgz - исходные тексты ядра NetBSD и связанных с ним утилит,
  • xsrc.tgz - графическая система X11 и связанные с ней утилиты и библиотеки.