Какую функцию ядра лучше скомпилировать в виде модуля или встроенной?
дра для Ubuntuтрах в сердца новых пользователей Linux. Звучит устрашающе — создавать самую важную часть вашей системы с нуля. Однако на самом деле собрать ядро Linux в Ubuntu очень просто.Сборка ядер Linux нетребует программирования. Некоторые из лучших программистов мира уже написали весь код. Вам просто нужно выбрать нужные вам функции и соединить их воедино. Здесь мы покажем вам, как собрать и установить собственное ядро в Ubuntu.
Читайте также: Как понизить версию ядра в Linux
Получение зависимостей
Прежде чем приступить к созданию ядра, вам понадобятся подходящие инструменты для его сборки. Используйте команду ниже, чтобы загрузить их из репозиториев Ubuntu.
sudo apt install wget build-essential bison flex libncurses-dev libssl-dev libelf-dev
Получение исходного кода ядра для UbContents
Получение зависимостей
олучить исходный код, который хотите собрать. Все ядра доступны в версии официальные репозитории Linux . Вы можете ознакомиться с последними выпусками в разделе cdn-репозиторий . На момент написания этой статьи последней версией является 5.16. Скачать можно с помощью команд:
cd /home/$USER/
mkdir kernelbuild
cd kernelbuild
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.16.19.tar.xz
Contents
cd /home/$USER/ mkdir kernelbuild cd kernelbuild wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.16.19.tar.xz
Загрузка ядра займет некоторое время, поэтому наберитесь терпения.
Настройка вашей сборки
Начните настройку с распаковка tar-файла ядра. Затем скопируйте в него конфигурацию существующего ядра.
tar xavf linux-5.16.19.tar.xz && cd ./linux-5.16.19 cp /boot/config-`uname -r` .config
Теперь вам нужно адаптировать старую конфигурацию к новому ядру.
make oldconfig
Этот скрипт спросит вас, что делать с каждой новой функцией. Если вы хотите использовать значения по умолчанию, используйте вместо этого make olddefconfig
.
Читайте также: Как собрать новый компьютер для Linux
Настройка ядра Ubuntu
Вы можете оставить свою конфигурацию как есть, и, вероятно, все будет в порядке. Однако нет смысла создавать собственное ядро, если вы не собираетесь его настраивать.
Чтобы настроить конфигурацию, запустите
make menuconfig
Откроется синее меню со списком категорий. Эти категории содержат функции, которые вы можете выбрать для включения в свое ядро.
Например, если вы действительно хотите встроить поддержку файловой системы БТРФС непосредственно в ядро и включить другие функции, вам следует перейти в «Файловые системы ->». Затем прокрутите вниз до пункта «Поддержка файловой системы Btrfs». Выберите нужный вариант и нажмите пробел. Пробел переключается между буквами «M», «*» и пустым.
- “M” означает, что эта функция будет создана в виде модуля, который будет загружен при необходимости при запуске Ubuntu.
- “*” означает, что эта функция будет встроена в ядро и всегда загружена.
Скрипт не содержит пустых опций в конечном продукте. Когда вы закончите настройку, очистите каталог.
make clean
Теперь ваше ядро готово к сборке.
Настройка ядра Ubuntu
UbuntuВ Ubuntu есть метод сборки ядер, но он заставляет вас использовать сценарии, написанные для более старых версий. Иногда это нормально; другие ужасно ломаются. Поэтому обычно лучше использовать более общий метод Linux с GNU make.
make -j `getconf _NPROCESSORS_ONLN` make deb-pkg LOCALVERSION=-custom
Все, что делает эта строка, — это скомпилировать ядро в пакеты.deb, используя количество ядер ЦП в вашей системе плюс одно. Он также добавляет слово «custom» в конец версии пакета, чтобы отличать ваше собственное ядро от других.
Примечание. Компиляция ядра может занять несколько часов. Будьте терпеливы.
Установка ядра
Вы найдете новые пакеты ядра на один каталог выше. Их будет легко идентифицировать по номеру версии. Вы можете использовать dpkg
для их установки.
cd ./../ sudo dpkg -i linux-firmware-image-5.16.19-custom_5.16.19-custom-1_amd64.deb sudo dpkg -i linux-libc-dev_5.16.19-custom-1_amd64.deb sudo dpkg -i linux-headers-5.16.19-custom_5.16.19-custom-1_amd64.deb sudo dpkg -i linux-image-5.16.19-custom-dbg_5.16.19-custom-1_amd64.deb sudo dpkg -i linux-image-5.16.19-custom_5.16.19-custom-1_amd64.deb
После завершения установки перезагрузите компьютер. Ubuntu автоматически загрузится с вашим новым ядром. Вы можете проверить это, запустив uname -r
в терминале при его запуске.
Установка пользовательских двоичных ядер
Другой способ использования собственного ядра Linux в Ubuntu — установка его предварительно скомпилированной двоичной версии. В отличие от версии на основе исходного кода, это копии ядра, которые уже скомпилированы для используемой вами системы и архитектуры.
Кроме того, пользовательские двоичные ядра также могут предоставить вам гибкость, позволяющую переключаться между версиями ядра для вашей установки Ubuntu. Это может быть особенно полезно, если вы используете машину с проблемами совместимости оборудования и не хотите заниматься компиляцией собственного ядра.
Зная это, самый популярный способ установки собственных двоичных ядер — через Основная линия . Это программа с графическим интерфейсом, разработанная bkw777 и призванная упростить процесс установки ядра Linux.
При этом эта программа объединяет все шаги, которые необходимо предпринять для правильной загрузки и настройки ядра. Например, Mainline позволяет вам легко выбрать двоичный файл ядра и заголовок, который вы хотите установить. Затем эта версия будет храниться в кеше, откуда вы сможете легко загрузить ее, когда вам это понадобится.
Читайте также: 5 инструментов для легкого создания собственного дистрибутива Linux
Установка основной ветки в Ubuntu
При этом установка
Установка ядра
роста. Во-первых, вам нужно указать apt включить репозиторий пакетов Mainline. Для этого вы можете запустить следующую команду из своего терминала:sudo add-apt-repository ppa:cappelikan/ppa
Здесь вам необходимо обновить каталог пакетов Ubuntu. Это позволит apt прочитать репозиторий, который вы только что добавили, и, в свою очередь, позволит вам загрузить через него Mainline:
sudo apt update
При этом остаётся только установить саму Mainline:
sudo apt install mainline
Использование основной линии
После этого вы можете загрузить Mainline, зайдя в меню приложения и выполнив поиск. Затем программа Mainline загрузит и отобразит все пакеты ядра, которые вы можете установить для своей системы.
Установка пользовательских двоичных ядер
tist.ru/wp-content/uploads/2024/05/ubuntu-custom-kernel-08-search-mainline.png" alt="Основная линия пользовательского поиска ядра Ubuntu">Оттуда вы сможете выбрать и установить версию ядра, которую хотите использовать в своей системе. Например, я могу выбрать «Linux 5.16.19» и нажать «Установить» на правой боковой панели, чтобы полностью загрузить эту версию ядра на свой компьютер.
С другой стороны, я также могу использовать Mainline для удаления ядер, которые я больше не хочу использовать. Например, я могу выбрать «Linux 5.15» и нажать «Удалить» на той же правой боковой панели, чтобы удалить это ядро из моей системы.
Таким образом вы сможете легко добавлять или удалять любые файлы и двоичные файлы, связанные с этой версией ядра. Это связано с тем, что двоичный файл ядра также включает в себя библиотеки, заголовки и встроенное ПО, что, в свою очередь, обеспечивает его правильную работу.
Читайте также: Как исправить ошибку проверки безопасности ядра в Windows 10
Часто задаваемые вопросы
Каковы проблемы при использовании собственного ядра?
Одна из самых больших проблем при использовании собственного ядра заключается в том, что вы удаляете жизненно важную часть вашей системы из регулярных обновлений. Это означает, что с этого момента вам необходимо вручную устанавливать все обновления ядра. Сюда входят дополнительные аппаратные функции, а также критические обновления безопасности.
Это может стать проблемой, если вам нужна система, которая работает и обслуживается с минимальным вмешательством пользователя. Таким образом, для запуска собственного ядра вам необходимо не только знать, какие функции ядра вам нужны, но также быть в курсе критических обновлений.
Есть ли какие-либо недостатки в использовании двоичного файла ядра?
Да. Одним из основных недостатков использования двоичного файла ядра является отсутствие контроля над его встроенными функциями. Это означает, что, в отличие от ядра на основе исходного кода, двоичный файл ядра не будет содержать никаких аппаратных оптимизаций и поддержки.
Это означает, что если вы собираетесь использовать экзотическое оборудование с Ubuntu. Вам нужно будет скомпилировать ядро с нуля.
Какую функцию ядра лучше скомпилировать в видУстановка основной ветки в Ubuntu
во многом зависит от того, для чего вы хотите использовать свое ядро. Например, компиляция функции как встроенной гарантирует ее немедленную загрузку после загрузки ядра в память. Однако, если сделать это таким образом, общий размер конечного ядра увеличится.
Между тем, компиляция функции в виде модуля приведет к ее удалению из базового ядра. Вместо этого этот модуль загружается, как только ядро уже находится в памяти. Это уменьшает размер файла окончательного ядра, что, в свою очередь, делает его быстрым и безопасным.
Зная это, рекомендуется компилировать функции ядра как встроенные, поскольку это снижает вероятность возникновения каких-либо проблем с совместимостью в вашей системе. Однако вам также следует опасаться включения слишком большого количества функций, поскольку это значительно увеличит общий размер вашего ядра.