Handbook:Parts/Installation/Kernel/ru

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

It is recommended to have the package installed before the initial system reboot in order to have the firmware available in the event that it is necessary:

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.

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

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

Настройка и сборка ядра
Теперь следует сконфигурировать и собрать ядро. Существует три основных подхода:


 * 1) Ядро настраивается и собирается вручную.
 * 2) Ядро автоматически собирается и устанавливается с помощью.
 * 3) Используются наработки проекта Distribution Kernel для автоматической сборки и установки ядра Linux kernel (как любого другого пакета).

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

Все дистрибутивы строятся вокруг ядра Linux. Ядро является слоем между пользовательскими программами и оборудованием системы. Gentoo предоставляет несколько вариантов исходного кода ядра. Полный список с описанием доступен на странице Общие сведения о ядре.

Установка исходного кода
Если вы устанавливаете и собираете вручную ядро на системах с архитектурой, мы рекомендуем пакет.

Выберите подходящий исходный код ядра и установите его с помощью :

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Теперь перейдите в раздел 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»:

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

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

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

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

Далее отредактируйте файл, чтобы в строке , где находится во втором поле, первое поле указывало на правильный раздел. Если вы следовали примеру разбиения разделов из данного Руководста, то, скорее всего, это будет устройство с файловой системой ext4. Тогда строка будет выглядеть следующим образом:

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

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

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

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

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

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