Найти в Дзене

Gentoo (сборка ядра из исходников)

Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция по сборке ядра из исходников(в основном для собственного пользования) для Gentoo (условия таковы Gentoo установлена с использованием UEFI и на файловую систему BTRFS на чистый накопитель и системой инициализации SystemD) с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности. Приступим к сборке ядра из исходников... Все действия будут выполнятся под root'ом. для начала получим обновления с репозитория ebuild'ов emerge --sync после обновим "мир", то бишь обновим систему emerge --ask --update --deep --with-bdeps=y --newuse @world как видим из скриншота нам прилетает бинарное ядро. В данном случае оно самое свежее, можно установить, но хотелось бы получить исходники и собрать самостоятельно. Собственно в этом и цель статьи. давайте попробуем напрямую получить исходники с помощью emerge, выполнив следующую команду emerge -

Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция по сборке ядра из исходников(в основном для собственного пользования) для Gentoo (условия таковы Gentoo установлена с использованием UEFI и на файловую систему BTRFS на чистый накопитель и системой инициализации SystemD) с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности. Приступим к сборке ядра из исходников...

Все действия будут выполнятся под root'ом.

для начала получим обновления с репозитория ebuild'ов

emerge --sync

после обновим "мир", то бишь обновим систему

emerge --ask --update --deep --with-bdeps=y --newuse @world

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

давайте попробуем напрямую получить исходники с помощью emerge, выполнив следующую команду

emerge --ask --update --deep --with-bdeps=y --newuse sys-kernel/gentoo-sources

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

-2

если интересны другие ядра их можно поискать с помощью команд

emerge --search sys-kernel/gentoo
emerge --search kernel

о ядрах опять же по рекомендую HandBook там достаточно информации и них

-3

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

emerge --ask sys-kernel/genkernel

позволяет автоматически сгенерировать ядро и initramfs

-4

переходим к выбору ядра. так исходники у нас от ядра версии 6.6.52-gentoo следовательно их и выберем, выполнив следующие команды. Посмотрим какие ядра имеются

eselect kernel list

соответственно выбираем

eselect kernel set 2

далее переходим в директории с исходниками с помощью команды

cd /usr/src/linux

Небольшой нюанс. при каждой смене симлинка на ядро, даже если вы находитесь в директории /usr/src/linux обязательно обновите командой cd /usr/src/linux иначе не перечитает содержимое

далее с копируем конфигурацию с текущего ядра в исходники с помощью команды:

zcat /proc/config.gz > /usr/src/linux/.config

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

далее с конвертируем конфиг под версию исходников ядра с помощью команды

make oldconfig
-6

если надо внести в конфиг изменения то используем

make menuconfig
-7

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

-8

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

genkernel all
-9

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

make depclean

и начать с момента копирования конфигурации ядра

-10

далее обновляем конфиг grub'а командой

grub-mkconfig -o /boot/grub/grub.cfg
-11

далее перезагружаемся с помощью всем известной команды

reboot
-12

так же все установленные ядра в системе можно увидеть и использовать в пункте Advanced options for Gentoo Linux

-13

загрузимся в систему с помощью собранного ядра

-14

как видите довольно таки не сложно собрать ядро из исходников, за исключением конфигурирования ядра, но это уже другая и очень обширная тема.

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

За сим откланиваюсь...