Handbook:Parts/Installation/Kernel/ru

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

Для систем, основанных на архитектуре, рекомендуется пакет.

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

Данная команда установит исходный код ядра Linux в, в котором символьная ссылка будет указывать на установленную версию:

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


 * 1) Ядро конфигурируется и собирается вручную.
 * 2) Ядро автоматически собирается и устанавливается с помощью.

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

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

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

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

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

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

Включение обязательных параметров
If you are using, we strongly recommend you enable the Gentoo-specific configuration options. These ensure that a minimum of kernel features required for proper functioning is available:

Naturally your choice in the last two lines depends on your choice of init system (OpenRC vs. Systemd).

If you are using, you will have to find the required options on your own.

Убедитесь, что все драйверы, необходимые для загрузки системы (например, контроллер 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, например LVM или RAID, то следует указать это через соответствующий параметр. Для более подробной информации см. . В следующем примере включена поддержка LVM и программного RAID :

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

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

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

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

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

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

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

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

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

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

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

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

Необязательно: Установка файлов прошивки
Для корректной работы некоторых драйверов требуется установка дополнительных файлов прошивки. Часто подобное требуется для сетевых интерфейсов, особенно беспроводных. Также, современные видеочипы от AMD, NVidia и Intel, при использовании отрытых драйверов, часто нуждаются во внешних файлах firmware. Большинство файлов прошивки поставляется в пакете :