Одним из самых привлекательных моментов в использовании Linux является простота настройки, а одной из самых интересных вещей для настройки является само ядро, сердце операционной системы Linux.
Скорее всего, вам никогда не придется компилировать собственное ядро. Потому что оно поставляется с вашим дистрибутивом и обновляется через систему управления пакетами, но бывают случаи, когда необходимо перекомпилировать ядро.
Среди таких причин могут быть особые аппаратные потребности, желание создать монолитное ядро вместо модульного, оптимизация ядра путем удаления бесполезных драйверов, запуск ядра разработки или просто изучение Linux.
В данном случае мы будем компилировать недавно выпущенное ядро для систем Debian, которое включает несколько новых возможностей, например, новые драйверы для видеокарт, и предлагает значительные улучшения файловой системы.
Как скомпилировать ядро в Debian
Чтобы начать, нам понадобятся некоторые пакеты, а именно build-essential
и kernel headers
.
sudo apt update
sudo apt install build-essential linux-headers-$(uname -r)
Теперь посетите официальный сайт ядра, чтобы загрузить нужную версию ядра. Также вы можете использовать следующие команды для прямой загрузки исходного кода.
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.7.tar.xz
tar -xvf linux-6.7.tar.xz
cd linux-6.7/
Далее нам требуется настроить ядро, причем рекомендуется начать с текущей конфигурации и основываться на ней. Для этого скопируем существующую конфигурацию из каталога /boot
в текущий рабочий каталог и сохраним ее в формате .config
.
cp /boot/config-`uname -r` .config
Чтобы начать процесс настройки, у вас есть один из двух вариантов.
- Если у вас установлен X11, вы можете запустить make xconfig и у вас появится красивое графическое меню, которое поможет вам в настройке ядра.
- Если вы работаете в среде CLI, вы можете запустить make menuconfig, но для его использования потребуется установить пакет libncurses5-dev.
Если вы работаете в среде cli, обязательно установите пакет libncurses5-dev, чтобы запустить процесс настройки ядра, как показано на рисунке.
apt install libncurses5-dev
make menuconfig
Как только вы перейдете к выбранной вами конфигурации, для вашего ядра будет доступно множество различных опций. На самом деле их очень много для и мы не будем расписывать все в этой статье.
При выборе опций ядра лучше всего действовать методом проб и ошибок, а также много гуглить :), это является лучшим способом обучения. Если вы просто хотите обновить ядро до последней версии, вам не нужно ничего менять, и вы можете просто выбрать «Сохранить конфигурацию» (Save Configuration). Так как мы скопировали конфигурационный файл текущего ядра в .config файл нового ядра.
Убедитесь, что в разделе «Поддержка загружаемых модулей» выбран параметр «Загрузчик модулей ядра» (Loadable module support). Если его нет, а вы используете модули ядра, это может серьезно испортить ситуацию.
Теперь запустите процесс компиляции ядра с помощью следующих команд, которые скомпилируют ядро, установят модули и скопируют необходимые файлы в каталог boot.
make
make modules_install
make install
После установки требуется перезагрузиться и выбирать новое ядро в меню GRUB.
Обязательно обратите внимание на сообщения об ошибках в процессе загрузки, чтобы вы могли устранить все неполадки.
Чтобы проверить новую версию ядра в Debian, вы можете использовать следующую команду в терминале.
uname -r
Если вы хотите увидеть список установленных ядер, вы можете проверить содержимое каталога /boot:
ls /boot
Удаление старого ядра в Debian
Чтобы удалить старые ядра в Debian, сначала вам нужно составить список установленных ядер, чтобы определить те, которые вы хотите удалить. Это можно сделать с помощью команды dpkg.
dpkg --list | grep linux-image
Чтобы удалить старое ядро, воспользуйтесь следующей командой apt
и обязательно замените linux-image-OLD_VERSION на номер версии ядра, которое вы хотите удалить.
sudo apt purge linux-image-OLD_VERSION
После удаления старых ядер обновите GRUB, чтобы отразить изменения.
update-grub
В заключение, компиляция ядра в Debian — это важный навык, который позволяет пользователям настраивать свою операционную систему под конкретные нужды, используя новейшие возможности и оптимизации.