Лабораторная работа по ручной сборке ядра в ALT Linux

Данная лабораторная работа предназначена для понимания принципа самостоятельной сборки и установки ядра в ОС Альт линукс. В случае успешного выполнения этой работы вы самостоятельно соберёте и установите в систему ядро. Однако, в силу ограничения по времени, если точно следовать инструкциям, то не предполагается, что собранное вами ядро будет работоспособным, т.к. здесь изложены только общие принципы и нет ни слова(почти) о том, как сконфигурировать работоспособное ядро.

Внимание!

  • Всё что вы выполните дальше вы выполняете на свой страх и риск.
  • Этот документ актуален для Alt Linux версии 10.4 (ALT Рабочая станция / Рабочая станция К / Образование / Симпли). Автор не гарантирует, что всё получится на других версиях ALT Linux и даже не факт, что всё получится на версии 10.4
  • Проделывать эту лабораторную работу имеет смысл только с комментариями преподавателя.
  • Этот способ сборки является неправильным с точки зрения дистрибутива Альт. На официальных ресурсах ALT Linux есть рекомендации по правильной сборке ядра с точки зрения дистрибутива: https://www.altlinux.org/KernelBuild .
  • Ядро, которое вы соберёте и установите не будет работоспособным. С этим ядром ваш компьютер не загрузится.
  • Полное неспешное выполнение лабораторной работы с комментариями и пояснениями преподавателя рассчитано на 2 академических часа (1 пара). Однако, время скачивания исходных кодов ядра и пакетов будет сильно зависеть от скорости интернета. Помимо этого, время установки необходимых пакетов и время на компиляцию напрямую зависят от мощности оборудования. Постарайтесь учесть эти моменты при планировании лабораторной работы.

Если вы прочли предупреждения выше и готовы продолжить, то поехали.

Обновите список доступных пакетов…

apt-get update

… и установите последнее ядро из состава дистрибутива:

update-kernel

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

uname -a

Перейдите на сайт https://kernel.org и скачайте исходные тексты ядра. Вы вольны скачать ядро самой свежей версии, однако, для того, чтобы выполнить эту работу за разумное время, мы рекомендуем скачать ядро той же версии, что и у вас.
Например, на 29 июня 2025 в ALT Linux актуально ядро 6.1.141 , а для версии 6.1 на сайте kernel.org доступно ядро 6.1.142. Вот его и скачиваем в каталог /usr/src.

wget -P /usr/src/ https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.142.tar.xz

Переходим в каталог со скачанным ядром и распаковываем:

cd /usr/src/
tar xvJf linux-6.1.142.tar.xz

Теперь нужно проверить, что необходимые пакеты для сборки и установки ядра присутствуют в нашей системе и при необходимости установить: bison, build-essential, dwarves, flex, gcc, libelf, libelf-devel, libelfin-devel, libncurses, libncurses-devel, libssl, libssl-devel, ncurses, openssl, openssl-engines, zlib-devel

apt-get install bison build-essential dwarves flex gcc libelf libelf-devel libelfin-devel libncurses libncurses-devel libssl libssl-devel ncurses openssl openssl-engines zlib-devel

Перейдём в каталог с распакованными исходными текстами ядра:

cd /usr/src/linux-6.1.142/

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

zcat /proc/config.gz > .config

Обновим конфигурационный файл до актуального состояния:

make oldconfig

А после, сконфигурируем ядро вручную под наши потребности:

make menuconfig

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

make -j3

Компиляция ядра это долгий процесс, а на слабом компьютере очень долгий. Поэтому, полюбовавшись на процесс компиляции несколько минут, прервите его. Очистите от мусора исходные коды ядра, скачайте конфигурационный файл, заранее специально подготовленный для этой лабораторной и запустите компиляцию по-новой (впрочем, если не прерывать сборку, а оставить её, как есть, когда-нибудь у вас соберётся работоспособное ядро).

make clean
make mrproper
wget https://linux.cttit.ru/f/testkernelconfig.txt  && mv testkernelconfig.txt .config
make oldconfig
make -j3

Да, с этой конфигурацией вы не получите работоспособное ядро, зато компиляция завершится за разумное время.
По завершении соберём модули:

make modules -j3

Установим модули:

make modules_install

Установим ядро:

make install

обновим загрузчик:

update-grub

Ну вот и готово. Ядро установлено. Теперь можно перезагрузиться и попытаться загрузиться с новым ядром :))

Разумеется, загрузка не удалась, мы получили ошибку «Kernel panic…», тем не менее мы прошли все этапы необходимые для получения «собственного» ядра. Теперь осталось прибраться за собой.

Удалите всё, что:

  • было скачано и распаковано в каталоге /usr/src
  • установилось в каталог /boot/ (vmlinuz, initrd)
  • установилось в /lib/modules

…и обновите загрузчик:

update-grub

Готово! Вы только что самостоятельно собрали и установили ядро в вашу операционную систему :))) А после даже и убрались за собой :)) Поздравляем!