- Как установить последние версии ядра Linux в Debian и основанные на Debian дистрибутивы
- Предупреждение перед обновлением ядра
- Обновление ядра до последней версии в Debian
- Как выбрать версию ядра XanMod
- Как удалить ядро XanMod
- Как восстановить Linux после установки ядра
- Обновление Linux Debian 10: компоненты и ядро операционной системы
Как установить последние версии ядра Linux в Debian и основанные на Debian дистрибутивы
Последние версии ядра Linux имеют драйверы для новых устройств и другие нововведения. К сожалению, многие популярные дистрибутивы Linux не спешат обновить ядро. Данная инструкция покажет, как легко, без компиляции, установить любую версию ядра Linux в Debian и производные дистрибутивы, например, в Kali Linux и LMDE (Linux Mint Debian Edition). Вы можете выбрать для установки как более новое ядро, так и более старое, чем предлагает репозиторий вашего дистрибутива.
При желании, вы без проблем можете удалить установленные ядра Linux и вернуться к ядру из репозитория.
Обратите внимание, что для Ubuntu и производных дистрибутивов имеется отдельная инструкция, поскольку процесс обновления ядер различается: Как установить последние версии ядра Linux в Ubuntu и Linux Mint.
Предупреждение перед обновлением ядра
Необходимо помнить, что из-за несовместимости ядра с программами (в первую очередь, с проприетарными видео драйверами), вы можете столкнуться с проблемами, в том числе с чёрным экраном во время загрузки.
В большинстве случаев, возникшие проблемы можно решить без переустановки дистрибутива. Начните с того, что в меню загрузки перейдите в дополнительные параметры и загрузитесь с предыдущей версией ядра. Выполнив загрузку, удалите проблемное ядро.
Проблемы могут вызвать проприетарные драйверы для видеокарт, поскольку старые версии могут быть не совместимы с последними версиями ядра без патча. Если у вас установлены проприетарные видео драйверы, то серьёзной подумайте, прежде чем следовать инструкциям ниже. Также подготовьтесь, поищите инструкции, как решить проблему при загрузки дистрибутива в чёрный экран.
Следует быть особенно осторожным владельцам старых дистрибутивов — настоятельно рекомендуется обновлять ядро только на последних версиях ОС.
Ещё одна вполне вероятная проблема, с которой вы можете столкнуться если установите ядро самой последней версии — проблема с неразрешёнными зависимостями и как следствие невозможность использования менеджера пакетов apt для обновления и установки программ. Если вы столкнулись с ситуацией, когда после успешной установки нового ядра не получается обновить пакеты с помощью apt, то попробуйте устанавливать более ранние версии ядра, которые вам подходят, а версии, вызывающие проблемы с зависимостями, удаляйте. Помните, что невозможно удалить ядро с которым вы загрузились — перед удалением загрузите компьютер с любой другой версией ядра.
Обновление ядра до последней версии в Debian
Данный раздел должен подойти для всех вариаций и производных Debian, например:
- Debian stable
- Debian testing
- Kali Linux
- Linux Mint Debian Edition (LMDE)
- MX Linux
- и другие
Проверим текущую версию ядра:
Чтобы не компилировать ядро с нуля, воспользуемся ядрами проекта XanMod Kernel.
Для установки последней версии ядра достаточно выполнить следующие команды:
echo 'deb http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/xanmod-kernel.gpg add - sudo apt update && sudo apt install linux-xanmod
Дождитесь завершения работы и перезагрузитесь.
Ещё раз проверим версию ядра:
Linux HackWare-Kali 5.13.19-xanmod1 #0~git20210919.7960459 SMP PREEMPT Sun Sep 19 13:46:36 UTC 2021 x86_64 GNU/Linux
Если по каким-либо причинам не произошло обновление меню GRUB, то выполните команду:
Как выбрать версию ядра XanMod
Всего доступны следующие метапакеты — в квадратных скобках указана версия ядра на момент написания:
- linux-xanmod [5.13]
- linux-xanmod-edge [5.14]
- linux-xanmod-lts [5.10]
- linux-xanmod-cacule [5.14-cacule]
- linux-xanmod-rt [5.10-rt]
Вы можете проверить версию ядра в пакете linux-xanmod следующей командой:
Как вы можете убедиться, данный метапакет имеет в зависимостях (то есть фактически установит) пакеты linux-image-5.13.19-xanmod1 и linux-headers-5.13.19-xanmod1, следовательно, версия ядра в данный момент 5.13.19.
Проверим версию ядра linux-xanmod-edge:
В настоящее время версия ядра Linux в данном пакете 5.14.6.
Репозиторий XanMod содержит не только ядра, которые можно установить с помощью метапакетов, но и много других версий, вы можете их найти командой:
apt search linux-image-[0-9.]+-xanmod3+
При установке ядра выбранной версии, вам нужно установить соответствующие файлы заголовков, оба пакета должны иметь название вида linux-image-ВЕРСИЯ-xanmod1 и linux-headers-ВЕРСИЯ-xanmod1, причём номер ВЕРСИИ должен быть одинаковый, например:
sudo apt install linux-image-5.12.19-xanmod1 linux-headers-5.12.19-xanmod1
Как удалить ядро XanMod
Если вы установили ядро с помощью метапакета linux-xanmod, то вы можете удалить данный метапакет командой:
sudo apt remove linux-xanmod
Тем не менее, это ничего не изменит, установленные ядра останутся в системе! Для удаления самих ядер используйте команду вида:
sudo apt remove `sudo apt show linux-xanmod | grep Depends | sed 's/,//' | awk ''`
Если вы устанавливали ядро не используя метапакет, то удалите ядро и файл заголовков указав имена пакетов с их версиями, например:
sudo apt remove linux-image-5.12.19-xanmod1 linux-headers-5.12.19-xanmod1
Как восстановить Linux после установки ядра
Если ваш компьютер загружается с чёрным экраном, зависает или что-то не работает после обновления ядра, перезагрузитесь и выберите Дополнительные параметры для вашего дистрибутива в меню GRUB:
Затем выберите предыдущую версию ядра и нажмите Enter:
Независимо от причины, вам необходимо загрузиться с предыдущей версией ядра, если вы хотите удалить последнее ядро. Это потому, что вы не можете удалить ядро, которое в настоящее время используется.
Если вы не видите меню GRUB2, нажмите и удерживайте клавишу Shift или несколько раз нажмите клавишу Esc (это может варьироваться в зависимости от загрузки BIOS или UEFI и от используемой вами версии Ubuntu/Linux Mint) при загрузке GRUB. Должно появиться меню Grub, позволяющее выбрать предыдущую версию ядра.
После загрузки предыдущего ядра вы можете удалить неисправное ядро.
Для удаления ядра XanMod в Debian и производных выполните команду:
sudo apt remove linux-xanmod sudo apt remove `sudo apt show linux-xanmod | grep Depends | sed 's/,//' | awk ''`
Если это не было сделано автоматически, то обновите настроки GRUB:
Обновление Linux Debian 10: компоненты и ядро операционной системы
Интересовать должны в первую очередь стабильные релизы.
Можно посмотреть список репозиториев и при необходимости добавить свой в файле source.list. .
Сохранили (если добавляли), вышли из редактирования:
Необходимо обновить список репозиториев если делали добавление в файле.
Получаете сообщение об успешном обновлении пакетов
Список доступных ядер для установки:
Обращаем внимание на релизы, помеченные как стабильные
или список в более компактном виде:
apt-cache search linux-image
Актуальная версия ядра (подписанная) — это 5.4
linux-image-5.5.0-0.bpo.2-amd64-dbg — Debug symbols for linux-image-5.5.0-0.bpo.2-amd64
linux-image-5.5.0-0.bpo.2-amd64-unsigned — Linux 5.5 for 64-bit PCs
linux-image-5.5.0-0.bpo.2-cloud-amd64-dbg — Debug symbols for linux-image-5.5.0-0.bpo.2-cloud-amd64
linux-image-5.5.0-0.bpo.2-cloud-amd64-unsigned — Linux 5.5 for x86-64 cloud
linux-image-5.4.0-0.bpo.2-amd64 — Linux 5.4 for 64-bit PCs (signed)
linux-image-5.4.0-0.bpo.2-cloud-amd64 — Linux 5.4 for x86-64 cloud (signed)
linux-image-5.4.0-0.bpo.2-rt-amd64 — Linux 5.4 for 64-bit PCs, PREEMPT_RT (signed)
linux-image-5.4.0-0.bpo.3-amd64 — Linux 5.4 for 64-bit PCs (signed)
linux-image-5.4.0-0.bpo.3-cloud-amd64 — Linux 5.4 for x86-64 cloud (signed)
linux-image-5.4.0-0.bpo.3-rt-amd64 — Linux 5.4 for 64-bit PCs, PREEMPT_RT (signed)
linux-image-5.4.0-0.bpo.4-amd64 — Linux 5.4 for 64-bit PCs (signed)
linux-image-5.4.0-0.bpo.4-cloud-amd64 — Linux 5.4 for x86-64 cloud (signed)
linux-image-5.4.0-0.bpo.4-rt-amd64 — Linux 5.4 for 64-bit PCs, PREEMPT_RT (signed)
Как написано на официальном сайте — выбирайте сборку на свой вкус. остановим взгляд на этой (с функцией dbg):
Debug пакеты дополнительно нужны? В принципе они нам не нужны.
Debug packages contain debug symbols and usually are named
Пакеты отладки содержат символы отладки и обычно называются -dbg. Они полезны, если программа аварийно завершает работу, и вы хотите создать трассировку стека, которая содержит информацию о функциях, в которых произошел сбой.
Заголовки нам в принципе не обязательно устанавливать, хоть они и немешают. Но заголовки нужны для разработки и пересборки ядра.
Ставим без заголовков:
apt install linux-image-5.4.0-0.bpo.4-amd64
После завершения установки ядра должен автоматически обновиться загрузчик Grub.
При необходимости можно обновить конфиг Grub ввручную:
Found linux image: /boot/vmlinuz-5.4.0-0.bpo.4-amd64
Found initrd image: /boot/initrd.img-5.4.0-0.bpo.4-amd64
Found linux image: /boot/vmlinuz-4.19.0-8-amd64
Found initrd image: /boot/initrd.img-4.19.0-8-amd64
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-180d6339-cc6d-40c4-b842-cfb713608bae' < menuentry 'Debian GNU/Linux, with Linux 5.4.0-0.bpo.4-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-0.bpo.4-amd64-advanced-180d6339-cc6d-40c4-b842-cfb713608bae' < load_video insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod part_msdos insmod ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 else search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 fi echo 'Loading Linux 5.4.0-0.bpo.4-amd64 . ' linux /vmlinuz-5.4.0-0.bpo.4-amd64 root=UUID=180d6339-cc6d-40c4-b842-cfb713608bae ro net.ifnames=0 quiet fsck.repair=yes echo 'Loading initial ramdisk . ' initrd /initrd.img-5.4.0-0.bpo.4-amd64 >menuentry 'Debian GNU/Linux, with Linux 5.4.0-0.bpo.4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-0.bpo.4-amd64-recovery-180d6339-cc6d-40c4-b842-cfb713608bae' < load_video insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod part_msdos insmod ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 else search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 fi echo 'Loading Linux 5.4.0-0.bpo.4-amd64 . ' linux /vmlinuz-5.4.0-0.bpo.4-amd64 root=UUID=180d6339-cc6d-40c4-b842-cfb713608bae ro single net.ifnames=0 echo 'Loading initial ramdisk . ' initrd /initrd.img-5.4.0-0.bpo.4-amd64 >menuentry 'Debian GNU/Linux, with Linux 4.19.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-8-amd64-advanced-180d6339-cc6d-40c4-b842-cfb713608bae' < load_video insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod part_msdos insmod ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 else search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 fi echo 'Loading Linux 4.19.0-8-amd64 . ' linux /vmlinuz-4.19.0-8-amd64 root=UUID=180d6339-cc6d-40c4-b842-cfb713608bae ro net.ifnames=0 quiet fsck.repair=yes echo 'Loading initial ramdisk . ' initrd /initrd.img-4.19.0-8-amd64 >menuentry 'Debian GNU/Linux, with Linux 4.19.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-8-amd64-recovery-180d6339-cc6d-40c4-b842-cfb713608bae' < load_video insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod part_msdos insmod ext2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 else search --no-floppy --fs-uuid --set=root 27010d95-3bfa-446d-ace2-5b362bcc1835 fi echo 'Loading Linux 4.19.0-8-amd64 . ' linux /vmlinuz-4.19.0-8-amd64 root=UUID=180d6339-cc6d-40c4-b842-cfb713608bae ro single net.ifnames=0 echo 'Loading initial ramdisk . ' initrd /initrd.img-4.19.0-8-amd64 >>
После установки делаем перезагрузку:
Смотрим установленные ядра:
dpkg --list | grep linux-image
ii linux-image-4.19.0-8-amd64 4.19.98-1+deb10u1 amd64 Linux 4.19 for 64-bit PCs (signed)
ii linux-image-5.4.0-0.bpo.4-amd64 5.4.19-1~bpo10+1 amd64 Linux 5.4 for 64-bit PCs (signed)
ii linux-image-amd64 4.19+105+deb10u3 amd64 Linux for 64-bit PCs (meta-package)
apt-get --purge remove linux-image-XXXX
dmesg | egrep -i --color 'errors|critical|failed'