Slackware
December 9, 2022
Как обновить/пересобрать ядро в Slackware 15
Свой конфиг ядра и дальнейшая сборка используется с целью оптимизации ядра под какой-то конкретный набор железок, которые используются на машине. Никто не запрещает (даже наоборот) использование «изкоробочного» ядра слаки. В нём есть абсолютно всё, что требуется рядовому пользователю. Но иногда возникает необходимость обновиться, и здесь поможет данная инструкция.
Подготовка к сборке кастомного ядра:
- Для начала качаем сорцы нужной версии ядра с https://www.kernel.org/, распакуем в
/usr/src/
- Переходим
/usr/src
, убиваем симлинк на linux, и делаем новый с нашего каталога с ядром на linux:ln -s linux-5.18.16 linux
(в зависимости от версии нового ядра) - Копируем временно /boot и /lib/modules (у меня через mount на бэкап-диск: /dev/sdb)
- Переходим в
cd /usr/src/linux
- Копируем текущий рабочий конфиг
zcat /proc/config.gz > .config
- В каталоге
/usr/src/linux
выполняемmake oldconfig
чтоб выровнять новый конфиг относительно старого - Выполняем
make localmodconfig
, чтобы убрать лишние модули - Добавляем/убираем необходимые настройки ядра вручную:
make menuconfig
- Правим EXTRAVERSION (по желанию) на любое своё значение.
- Запускаем сборку сжатого ядра и модулей:
make bzImage modules
- После сборки устанавливаем ядро и модули:
make modules_install
,make install
- Генерируем новый initrd:
cd /boot && mkinitrd -c -k 5.15.38 -r /dev/sda2 -f ext4 -m ext4
- Обновляем загрузчик (в моем случае это elilo):
eliloconfig
- Переносим вручную новый initrd и vmlinuz в каталог загрузки:
cp -v /boot/initrd.gz /boot/efi/EFI/Slackware/
cp -v /boot/vmlinuz-generic-5.15.38 /boot/efi/EFI/Slackware/
- Проверяем конфиг (на всякий случай)
vim /boot/efi/EFI/Slackware/elilo.conf
- Перед ребутом можно выполнить
uname -r
чтобы проверить версию ядра до/после ребута - Ребутимся и проверяем версию ядра
Если ядро обновляется пакетом, то следует обновить только initrd и загрузчик (без пересборки ядра и модулей)