Пошаговая инструкция по установке Linux Kernel 6.0 в Debian, если вы любите передовые технологии и хотите установить последнюю версию ядра Linux (Kernel 6.x) в Debian, то это руководство для вас. Linux 6.0 начинает серию 6.x, принося с собой ряд улучшений производительности, новую поддержку аппаратного обеспечения, исправления безопасности и обычный набор настроек файловой системы.
Перед установкой Linux Kernel 6.0 рекомендуется сделать резервную копию системы!!!
Особенности ядра Linux 6.0
- Верификация во время выполнения для систем, критичных к безопасности.
- Поддержка ядром внутриполосной аутентификации NVMe
- Подсистема верификации во время выполнения
- Драйвер ядра Raspberry Pi 4 V3D
- Драйвер блоков пользовательского пространства IO_uring
- Буферизованная запись в файловых системах XFS
- Поддержка протокола отправки V2 для Btrfs
Так как на момент написания статьи в дистрибутивах Debian отсутствуют новые версия ядра, Linux kernel 6 будем собирать из исходных кодов.
Шаг 1. Получите текущий исходный код ядра Linux
Посетите официальную страницу проекта и загрузите последнюю версию исходного кода.
1 | wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.0.tar.gz |
Шаг 2. Распакуйте файл tar.gz
Вам не обязательно распаковывать исходный код в /usr/src. Вы можете распаковать исходный код в каталог $HOME или другой каталог с помощью следующей команды tar:
1 | tar xvfz linux-6.0.tar.gz |
Шаг 3: Настройка функций и модулей ядра Linux
Прежде чем приступить к сборке ядра, необходимо настроить функции ядра Linux. Вам также нужно указать, какие модули ядра (драйверы) нужны для вашей системы. Эта задача может оказаться непосильной для нового пользователя. Я рекомендую скопировать существующий файл конфигурации с помощью команды cp:
1 2 | cd linux-6.0/ cp -v /boot/config-$(uname -r) .config |
Шаг 4: Установите необходимые компиляторы и другие инструменты
Для компиляции ядра Linux необходимо установить средства разработки, такие как компилятор GCC и связанные с ним инструменты.
Введите следующую команду apt или apt-get для его установки:
1 | sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev bc |
Шаг 5: Настройка ядра
Теперь вы можете начать конфигурацию ядра, введя одну из следующих команд в каталоге исходного кода:
- make menuconfig Эта опция также полезна на удаленном сервере, если вы хотите скомпилировать ядро удаленно.
- make xconfig - инструмент конфигурирования на основе X windows (Qt), лучше всего работает под рабочим столом KDE.
- make gconfig - инструмент конфигурирования на основе X windows (Gtk), лучше всего работает под Gnome Dekstop.
Например, если вы выполните команду make menuconfig, появится следующий экран:
Вам необходимо выбрать различные варианты в зависимости от ваших потребностей. Каждый параметр конфигурации связан с кнопкой HELP, поэтому выберите кнопку помощи, чтобы получить справку. Обратите внимание, что "make menuconfig" является необязательным. Я использовал его здесь только в демонстрационных целях.
С помощью этой опции вы можете включить или выключить определенные функции или драйверы ядра. Легко удалить поддержку драйвера устройства или опции и в итоге получить неработающее ядро. Например, если драйвер ext4 удален из файла конфигурации ядра, система может перестать загружаться. Если вы сомневаетесь, просто оставьте поддержку в ядре.
Удаление доверенных ключей
Поскольку мы получаем ядро от разработчиков kernel.org, а не из репозитория Ubuntu/Debian, нам нужно удалить доверенные ключи из файла .config.
Теперь отредактируем файл, который мы скопировали в наш каталог
1 | nano .config |
Найдите в файле следующее:
1 2 | CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem" |
Удалите доверенные ключи так, чтобы это выглядело следующим образом:
1 2 | CONFIG_SYSTEM_TRUSTED_KEYS="" CONFIG_SYSTEM_REVOCATION_KEYS="" |
Кроме того, вы можете удалить доверенный ключ через запись menuconfig.
Главное меню -> Cryptographic API -> Certificates for signature checking -> Provide system-wide ring of trusted keys
Шаг 6: Как скомпилировать ядро Linux
Я рекомендую использовать screen или tmux перед компиляцией, если вы вошли в систему через SSH. Таким образом, если соединение будет потеряно, процесс компиляции продолжится. Начните компиляцию и введите для создания сжатого образа ядра:
Если у вас 1 ядро процессора
1 | make |
Если у вас несколько ядер процессора, укажите количество ядер/потоков для ускорения компиляции.
1 | make -j 4 |
nproc получить количество потоков или ядер процессора и использовать весь потенциал процессора.
1 | make -j $(nproc) |
Компиляция и сборка ядра Linux занимает много времени (часы). Время сборки зависит от ресурсов вашей системы, например, доступных ядер процессора, оперативной памяти и текущей загрузки системы. Так что будьте терпеливы.
Установка Linux kernel 6.x в Debian
Установите модули ядра Linux
1 | make modules_install |
Установите ядро Linux
До сих пор мы компилировали ядро Linux и устанавливали модули ядра. Теперь пришло время установить само ядро:
1 | make install |
Он устанавливает три файла в каталог /boot, а также изменяет конфигурационный файл ядра grub:
- initramfs-6.0.img
- system.map-6.0
- vmlinuz-6.0
Проверка версии ядра Linux Debian
Давайте перезагрузим систему и загрузимся с вашим новым ядром.
Просто введите команду reboot или shutdown:
1 | reboot |
Проверьте новую версию ядра Linux после перезагрузки:
1 2 | uname -r uname -a |
в зависимостях не хватает
sudo apt-get install bc
Спасибо, добавил.
А как создать пакет с вновь скомпилированным ядром. Что бы удалять одной командой? Последний раз компилил ядра лет 15 назад, во время версий 2.4 2.6. Старые ядра помнится надо было удалять и kernel headers, и модули, и менять в бут симлинки... перечитывать grub...
Можно использовать готовый репозиторий Linux Zabbly
https://g-soft.info/linux/11501/kak-ustanovit-yadro-linux-6-5-v-debian/
Приветствую! Рад ответить на ваш вопрос. Создание пакета с ядрами Linux с возможностью удаления одним командным скриптом может быть легко выполнено с помощью утилиты make. Для начала, вам нужно убедиться, что у вас уже есть скомпилированное ядро, которое вы хотите включить в пакет. Затем выполните следующие шаги:
1. Создайте каталог для вашего пакета. Например, вы можете использовать следующую команду: `mkdir linux-kernel-package`.
2. Переместите скомпилированное ядро в этот каталог.
3. Создайте файл `Makefile` в этом каталоге с содержимым:
clean:
rm -f *.o *.ko *.mod.c *.symvers
rm -rf *.deb ./*.deb *.install
rm -f /boot/config-$(notdir $(shell uname -r))
mkdir /boot/oldconfig
cp /boot/config /boot/config.bak
echo -e "CONFIG_LOCALVERSION=\"$(shell cat /boot/config)\"" > /boot/config
mv /boot/config /boot/config.bak
mkdir /oldkernel
ln -sf /vmlinuz-$(shell uname -r) /vmlinuz
ln -sf /initrd.img-$(shell uname -r) /initrd.img
ln -sf /boot.bak /boot
deb:
fakeroot debian/rules clean
fakeroot dh_make -j4 debian/control
dpkg-buildpackage -rfakeroot -us -uc -nc -b
find . -name '*.deb' -delete
tar -czvf linux-kernel.tar.gz debian/*
-rm -rf debian
-mkdir debian
Этот скрипт использует утилиту make для сборки пакета Debian и удаляет скомпилированные файлы, чтобы освободить место на диске.
4. Теперь выполните команду `make deb`, чтобы создать пакет Debian. Вы можете установить этот пакет на свою систему, чтобы протестировать его.
5. После тестирования и исправления любых ошибок, выполните команду `make clean`, чтобы удалить созданные файлы. Затем снова выполните `make deb` для создания нового пакета Debian.
6. Наконец, если все работает корректно, вы можете создать установочный скрипт для своего пакета. Например:
!/bin/bash
echo "Installing the new kernel..."
sudo dpkg -i linux-kernel*.deb
echo "Removing the old kernel..."
rm -rf /boot/vmlinuz* /boot/initrd.img* /boot/*.bak
echo "Setting up GRUB..."
grub-install /dev/sda
Вы можете сохранить этот скрипт в файле `install_kernel.sh` и сделать его исполняемым. Затем вы можете запускать этот скрипт для установки и удаления ядра на вашей системе.
Надеюсь, это поможет вам создать пакет с ядрами Linux и возможностью удаления одним скриптом. Если у вас возникнут какие-либо проблемы или вопросы, пожалуйста, не стесняйтесь обращаться.