Kernel (Русский)/Arch Build System (Русский) - ArchWiki

# Kernel (Русский)/Arch Build System (Русский)

From ArchWiki
< Kernel (Русский)
Jump to navigation Jump to search

Arch Build System позволит вам собрать собственное ядро на основе официального пакета Linux. Этот метод предлагает автоматизировать весь процесс компиляции и основан на тщательно протестированном пакете. Вы можете отредактировать PKGBUILD для использования собственных настроек ядра или для добавления дополнительных патчей.

## Получение необходимых пакетов

Поскольку сборка осуществляется при помощи 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
    ...

Важно: У systemd есть несколько требований к конфигурации ядра для работы, некоторых вариантов использования (напр., UEFI) и для специфичной функциональности (напр., bootchart). Несоблюдение этих требований может привести к нестабильной работе или отказу системы. Список необходимых и рекомендуемых параметров вы можете найти в файле `/usr/share/doc/systemd/README`. Сверьтесь с ним перед компиляцией. Сами требования время от времени меняются, а изменения не анонсируются, так как Arch предполагает, что вы используете официальное ядро. Перед установкой новой версии systemd обратитесь к примечанию к релизу и убедитесь, что ваша конфигурация ядра соответствует требованиям.

### Пересоздание контрольных сумм

Т.к. файл настройки был изменен, необходимо сгенерировать новые контрольные суммы, запустив:

    $ updpkgsums

## Компиляция

Теперь можно приступить к компиляции ядра обычной командой `makepkg`. Если вы выбрали интерактивную программу для настройки параметров ядра (напр. menuconfig), вы должны присутствовать во время компиляции.

     $ makepkg -s

Параметр `-s` загрузит все необходимые зависимости, используемые последними ядрами, такие как xml и docs.

Примечание:

- Одновременный запуск нескольких процессов компиляции может значительно сократить время компиляции на многоядерных системах.
- Ядру нужно время на компиляцию, 1 час - это вполне нормально. На современных системах с SSD обычно это занимает менее десяти минут.
- Исходные коды ядра подписаны PGP, и makepkg проверит это. Смотрите makepkg#Проверка цифровых подписей для получения подробностей.

## Установка

После makepkg, вы можете посмотреть файл linux.install. Можно заметить, что некоторые переменные изменились. Теперь пакет можно установить, как обычно, с помощью pacman (или эквивалентной программы):

    # pacman -U <kernel-headers_package>
    # pacman -U <kernel_package>

Примечание: Желательно так же установить kernel headers. Он может понадобится, если, к примеру, понадобится установить драйвера NVIDIA с nvidia-hook[broken link: invalid section]

## Загрузчик

К этому времени файлы и каталоги для собранного вами ядра должны быть созданы, например, `/boot/vmlinuz-linux-test`. Для проверки вашего ядра нужно обновить загрузчик (/boot/grub/menu.lst для GRUB), добавив новые записи ('default' and 'fallback') для вашего свежесозданного ядра. Таким образом, вы можете паралельно хранить и основное и собранное вами ядра.

Category:

- Kernel (Русский)

Hidden category:

- Pages with broken section links