Kernels/Arch Build System (Русский)
Arch Build System позволит вам собрать собственное ядро на основе официального пакета Linux. Этот метод предлагает автоматизировать весь процесс компиляции и основан на тщательно протестированном пакете. Вы можете отредактировать PKGBUILD для использования собственных настроек ядра или для добавления дополнительных патчей.
Contents
Получение необходимых пакетов
Поскольку сборка осуществляется при помощи makepkg, необходимо следовать рекомендациям ниже. К примеру, вы не сможете запустить makepkg от имени root/sudo, поэтому для начала создадим папку build
в домашней директории пользователя.
$ cd ~/ $ mkdir build $ cd build/
Установите пакет asp и группу base-devel
# pacman -S asp base-devel
Перед кастомизацией потребуется чистое ядро. Получите из ABS файлы пакета в рабочую папку командой:
$ asp checkout linux
Затем получите все остальные файлы, которые вам потребуются (например, пользовательские файлы конфигурации, патчи и т.д.) из соответствующих источников.
Редактирование PKGBUILD
Отредактируйте PKGBUILD
обратите внимание на параметр pkgbase
. Укажите в нем имя вашего пакета, например:
pkgbase=linux-custom
В зависимости от PKGBUILD также может потребоваться переименовать linux.install
для соответствия измененному pkgbase
.
Изменение prepare()
Внутри этой функции вы можете применить патчи или изменить конфигурацию сборки ядра.
Если вам нужно изменить несколько опций можно использовать config.x86_64
для 64-битной системы и config
для 32-битной по умолчанию и добавить в него необходимые вам опции :
$ echo ' CONFIG_DEBUG_INFO=y CONFIG_FOO=n ' >> config.x86_64
Также вы можете использовать утилиту с графическим интерфейсом для настройки параметров. Для этого раскомментируйте одну из возможных, указанных в prepare() функций в PKGBUILD, например:
PKGBUILD
... # load configuration # Configure the kernel. Replace the line below with one of your choice. #make menuconfig # CLI menu for configuration make nconfig # new CLI menu for configuration #make xconfig # X-based configuration #make oldconfig # using old config from previous kernel version # ... or manually edit .config ...
Пересоздание контрольных сумм
Т.к. файл настройки был изменен, необходимо сгенерировать новые контрольные суммы, запустив:
$ updpkgsums
Компиляция
Теперь можно приступить к компиляции ядра обычной командой makepkg
. Если вы выбрали интерактивную программу для настройки параметров ядра (напр. menuconfig), вы должны присутствовать во время компиляции.
$ makepkg -s
Параметр -s
загрузит все необходимые зависимости, используемые последними ядрами, такие как xml и docs.
Установка
После makepkg, вы можете посмотреть файл linux.install. Можно заметить, что некоторые переменные изменились. Теперь пакет можно установить, как обычно, с помощью pacman (или эквивалентной программы):
# pacman -U <kernel-headers_package> # pacman -U <kernel_package>
Загрузчик
К этому времени файлы и каталоги для собранного вами ядра должны быть созданы, например, /boot/vmlinuz-linux-test
. Для проверки вашего ядра нужно обновить загрузчик (/boot/grub/menu.lst для GRUB), добавив новые записи ('default' and 'fallback') для вашего свежесозданного ядра. Таким образом, вы можете паралельно хранить и основное и собранное вами ядра.