Handbook:Parts/Installation/Kernel/ru

Файлы прошивки
Перед тем, как вы начнёте настраивать ядро, мы хотим отметить, что для некоторых устройств необходимо установить дополнительные файлы прошивки, чтобы они работали корректно. Чаще всего это касается сетевого оборудования, особенно беспроводных интерфейсах, которые часто используются и в ноутбуках, и в компьютерах. Cовременные видеочипы от AMD, NVidia и Intel также часто нуждаются во внешних файлах прошивки. Большинство файлов прошивки для современного железа поставляется в пакете.

Рекомендуется установить пакет перед первоначальной перезагрузкой системы, чтобы прошивка была доступна в случае необходимости:

It is important to note that kernel symbols that are built as modules (M) will load their associated firmware files from the filesystem when they are loaded by the kernel. It is not necessary to include the device's firmware files into the kernel's binary image for symbols loaded as modules.

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

Обновления микрокода для процессоров AMD распространяются в вышеупомянутом пакете. Обновления микрокода для процессоров Intel находятся в пакете, который необходимо установить отдельно. Смотрите страницу про микрокод для получения дополнительной информации о том, как применять обновления микрокода.

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

От самого незначительного вмешательства с наименьшим контролем над обновлениями, до самого значительного вмешательства с наибольшим контролем над обновлениями:


 * Полная автоматизация: Проект Distribution Kernel используется для конфигурации, автоматической сборки и установки ядра Linux, связанных с ним модулей и (опционально, но по умолчанию включено) файла initramfs. Новые обновления ядра полностью автоматизированы, поскольку они обрабатываются через менеджер пакетов, как и любой другой системный пакет. Можно предоставить пользовательский конфигурационный файл ядра, если необходима индивидуальная настройка. Это наименее сложный процесс, который идеально подходит для новых пользователей Gentoo, но обеспечивает наименьший контроль над обновлениями.
 * Genkernel (гибридный): Новые обновления ядра устанавливаются через системный менеджер пакетов. Системные администраторы используют инструмент Gentoo для общей конфигурации, автоматической сборки и установки ядра Linux, связанных с ним модулей и (опционально, но не  включено по умолчанию) файла initramfs. Можно предоставить пользовательский файл конфигурации ядра, если необходима кастомизация. Будущая конфигурация, сборка и установка ядра требуют участия системного администратора в виде выполнения,  и, возможно, других команд для каждого обновления.
 * Ручная настройка: Новые исходные тексты ядра устанавливаются с помощью системного менеджера пакетов. Ядро конфигурируется, собирается и устанавливается вручную с помощью команды и множества команд . С новыми обновлениями ядра повторяется ручной процесс конфигурирования, сборки и установки файлов ядра. Это самый сложный процесс, но он обеспечивает максимальный контроль над процессом обновления ядра.

Основой, вокруг которой строятся все дистрибутивы, является ядро Linux. Оно является прослойкой между пользовательскими программами и аппаратным обеспечением системы. Хотя руководство предоставляет своим пользователям несколько возможных источников ядра, более подробная информация с более детальным описанием доступна на странице Общие сведения о ядре.

Установка исходного кода ядра
When installing and compiling the kernel for -based systems, Gentoo recommends the package.

Choose an appropriate kernel source and install it using :

Данная команда установит исходный код ядра Linux в, используя в названии версию ядра. Эта команда не установит автоматически символьную ссылку, пока вы не укажете  для выбранного исходного кода ядра.

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

Чтобы подробнее узнать, зачем нужна эта символьная ссылка и как ею управлять, смотрите Kernel/Upgrade/ru.

Для начала, просмотрите список установленных ядер (в виде исходного кода):

Для того, чтобы создать символьную ссылку, используйте:

Альтернатива: Genkernel
Если ручная установка кажется слишком сложной, попробуйте использовать утилиту. Она сконфигурирует и соберёт ядро автоматически.

Genkernel provides a generic kernel configuration file, automatically generates the kernel, initramfs, and associated modules, and then installs the resulting binaries to the appropriate locations. This results in minimal and generic hardware support for the system's first boot, and allows for additional update control and customization of the kernel's configuration in the future.

Be informed: while using to maintain the kernel provides system administrators with more update control over the system's kernel, initramfs, and other options, it will require a time and effort commitment to perform future kernel updates as new sources are released. Those looking for a hands-off approach to kernel maintenance should use a distribution kernel.

For additional clarity, it is a misconception to believe genkernel automatically generates a custom kernel configuration for the hardware on which it is run; it uses a per-determined kernel configuration that supports most generic hardware and automatically handles the commands necessary to assemble and install the kernel, the associate modules, and the initramfs file.

Binary redistributable software license group
If the linux-firmware package has been previously installed, then skip onward to the to the installation section.

As a prerequisite, due to the  USE flag being enabled by default for the  package, the package manager will also attempt to pull in the  package. The binary redistributable software licenses are required to be accepted before the linux-firmware will install.

This license group can be accepted system-wide for any package by adding the  as an ACCEPT_LICENSE value in the  file. It can be exclusively accepted for the linux-firmware package by adding a specific inclusion via a file.

If necessary, review the methods of accepting software licenses available in the Installing the base system chapter of the handbook, then make some changes for acceptable software licenses.

If in analysis paralysis, the following will do the trick:

Installation
Приступим. Сперва нужно установить :

Generation
Осталось скомпилировать ядро, выполнив. Учтите, что поскольку включает поддержку как можно большего диапазона оборудования, процесс сборки может занять некоторое время!

По завершению работы genkernel будут сформированы ядро, полный набор модулей и файловая система инициализации (initramfs). Ядро и initrd нам понадобятся позднее. Запишите название файлов ядра и initrd, так как они нам понадобятся при настройке загрузчика. Initrd запускается сразу после ядра для определения оборудования (как при загрузке установочного CD), перед запуском самой системы.

Введение
Согласно расхожему мнению, настройка ядра — наиболее сложная процедура, с которой может столкнуться пользователь Linux. Это совсем не так — после нескольких настроек ядра, не всякий вспомнит, что это было сложно!

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

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

Остаётся перейти в каталог с ядром и выполнить, который запустит экран меню конфигурации.

В конфигурации ядра Linux есть много-много разделов. Сначала пройдёмся по пунктам, которые должны быть обязательно включены (иначе Gentoo будет работать неправильно или же вовсе не запустится). Также в вики есть Руководство по настройке ядра Gentoo, которое поможет понять более тонкие детали.

Включение обязательных параметров
При использовании, строго рекомендуется включить Gentoo-специфичные настройки. С помощью них включается необходимый минимум настроек ядра для корректной работы:

Выбор из последних двух строк зависит от того, какую систему инициализации вы выбрали — (OpenRC или systemd). Ничего страшного не случится, если вы включите поддержку обоих систем.

При использовании, этих вспомогательных настроек не будет. Вы можете включить нужные настройки вручную, но это выходит за рамки данного руководства.

Enabling support for typical system components
Убедитесь, что все драйверы, необходимые для загрузки системы (например, контроллер SCSI) собраны прямо в ядре, а не в виде модуля. В противном случае, система может не загрузиться.

Далее следует выбрать тип процессора. Также рекомендуется включить возможности MCE (если они доступны), чтобы пользователи системы могли получать оповещение о любых проблемах с оборудованием. На некоторых архитектурах (например, x86_64) подобные ошибки выводятся не в, а в. А для него понадобится пакет.

Также включите Maintain a devtmpfs file system to mount at /dev, чтобы критически важные файлы устройств были доступны на самом раннем этапе загрузки ( CONFIG_DEVTMPFS и CONFIG_DEVTMPFS_MOUNT ):

Убедитесь, что поддержка SCSI-дисков включена ( CONFIG_BLK_DEV_SD ):

Verify basic NVMe support has been enabled:

It does not hurt to enable the following additional NVMe support:

Теперь перейдите в раздел File Systems и выберите те файловые системы, которые планируете использовать. Файловая система, используемая в качестве корневой, должна быть включена в ядро (не модулем), иначе Gentoo не сможет примонтировать раздел при загрузке. Также включите Virtual memory и /proc file system. По необходимости выберите один или несколько элементов из списка ( CONFIG_EXT2_FS, CONFIG_EXT3_FS , CONFIG_EXT4_FS , CONFIG_MSDOS_FS , CONFIG_VFAT_FS , CONFIG_PROC_FS , и CONFIG_TMPFS ):

Если для подключения к Интернету используется PPPoE или модемное соединение, то включите следующие параметры ( CONFIG_PPP, CONFIG_PPP_ASYNC и CONFIG_PPP_SYNC_TTY ):

Два параметра сжатия не повредят, но и не являются обязательными, как и PPP over Ethernet. Фактически, последний используется в случае, если ppp сконфигурирован на использование ядерный PPPoE режим.

Не забудьте настроить поддержку сетевых карт (Ethernet или беспроводных).

Поскольку большинство современных систем являются многоядерными, важно включить Symmetric multi-processing support ( CONFIG_SMP ):

Если используются USB-устройства ввода (например клавиатура и мышь) или другие устройства, то не забудьте включить и эти параметры ( CONFIG_HID_GENERIC, CONFIG_USB_HID , CONFIG_USB_SUPPORT , CONFIG_USB_XHCI_HCD , CONFIG_USB_EHCI_HCD , CONFIG_USB_OHCI_HCD ):

Необязательно: Сборка initramfs
В некоторых случаях необходимо собрать initramfs — файловую систему инициализации, размещаемую в оперативной памяти. Самая частая причина — когда важные части системных путей (например, или ) находятся на отдельных разделах. Эти разделы могут быть смонтированы средствами, расположенными внутри initramfs.

Без initramfs есть большой риск того, что система не загрузится правильно, так как программам, необходимым для монтирования файловых систем, нужна информация, которая находится на этих самых разделах. initramfs вытянет все необходимые файлы в архив, который загружается в память сразу же после загрузки ядра, но до того, как управление будет передано системе инициализации. Сценарии initramfs выполнят все необходимые операции для правильного монтирования разделов до того, как продолжится загрузка системы.

Чтобы установить initramfs, сперва установите, затем сгенерируйте initramfs:

initramfs будет сохранён в под названием, начинающимся с «initramfs»:

Теперь продолжите с раздела Модули ядра.

Конфигурация модулей
Укажите модули, которые должны загружаться автоматически в файлах, по одному модулю в строке. Дополнительные параметры для модулей при необходимости можно указывать в файлах.

Чтобы посмотреть доступные модули, выполните команду, не забыв заменить « » на собранную в предыдущем шаге версию:

Force loading particular kernel modules
Например, чтобы автоматически загрузить модуль (драйвер для определённого семейства сетевых карт от 3Com), отредактируйте файл, добавив туда имя модуля. Фактическое имя файла несущественно для загрузчика.

Note that the module's file suffix is insignificant to the loading mechanism and left out of the configuration file:

Продолжите установку с раздела Настройка системы.