Handbook:Parts/Installation/Kernel/ru

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

Дальше стоит включить поддержку используемых Вами файловых систем. Рутовая ФС должна быть включена в ядро, а не подгружена в качестве модуля, иначе 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 или dial-up модем, то тогда включите следующие параметры ( CONFIG_PPP, CONFIG_PPP_ASYNC и CONFIG_PPP_SYNC_TTY ):

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

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

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

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

Опционально: Собираем initramfs
В некоторых случаях необходимо включить поддержку initramfs - an initial ram-based file system (файловая система, основанная на оперативной памяти). Наиболее распространённая причина это нахождение различных системных путей (вроде или ) на различных разделах. При наличии initramfs эти разделы могут быть подгружены средствами initramfs.

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

Для установки initramfs, сперва нужен, который его сгенерирует:

Если необходима поддержка LVM или RAID, то следует указать это как опцию. Для более подробной информации взгляните на. В следующем примере включена поддержка LVM и программного RAID :

Initramfs будет расположен в. Можно посмотреть файлы, начинающиеся с "initramfs":

Продолжим в Модули ядра.

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

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

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

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

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

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

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

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

For instance, to automatically load the module (which is the driver for a specific 3Com network card family), edit the  file and enter the module name in it. The actual file name is insignificant to the loader.

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

Опционально: Установка файлов прошивки
Some drivers require additional firmware to be installed on the system before they work. This is often the case for network interfaces, especially wireless network interfaces. Also, modern video chips, from vendors like AMD, NVidia, and Intel when using open source drivers, often need external firmware files. Most of the firmware is packaged in :