Перейти до вмісту

Розробка та діагностика ядра

Написання цієї сторінки ще не завершено.

KDE Linux надає повне, попередньо налаштоване середовище розробки ядра. Не потрібно встановлювати додаткові пакунки, контейнери, віртуальні машини чи chroot-середовища. Розробка ядра відповідає стандартним робочим процесам Linux, з невеликою кількістю кроків інтеграції, характерних для KDE Linux, які пояснено нижче.

Основна документація

Розробка ядра в KDE Linux відбувається відповідно до практик розробки основної гілки коду Linux. Перш ніж продовжувати, наполегливо рекомендуємо ознайомитися з офіційною документацією щодо ядра Linux:

Ці документи описують процес розробки, стиль написання програмного коду, систему збирання та (якщо потрібно) підтримку Rust, що використовується ядром.

Передумови

KDE Linux використовує файлову систему /usr, яку призначено лише для читання. Будь-яке нетипове ядро, модулі ядра або пов'язані компоненти має бути встановлено як придатну до запису накладку.

Перш ніж продовжувати, вам слід налаштувати системне розширення systemd (sysext), щоб уможливити перезапис даних у /usr.

Цей крок обов'язковий. Усі образи ядра та модулі, зібрані в цьому посібнику, встановлюються у sysext, а потім об'єднуються з активною системою.

Клонування ядра Linux

Клонуйте основне сховище коду ядра Linux за допомогою Git:

git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux

Ви також можете клонувати певну стабільну гілку або гілку у розробці, якщо це потрібно.

Налаштування ядра

Ви можете запустити типове налаштовування для вашої архітектури:

make defconfig

Щоб змінити налаштування, скористайтеся одним зі стандартних інтерфейсів налаштовування ядра:

make menuconfig
make nconfig
make xconfig

Усі кроки налаштовування ідентичні крокам в основній гілці розробки ядра Linux.

Збирання ядра

Зберіть ядро за допомогою стандартної системи збирання:

make -j$(nproc)

У результаті буде створено образ ядра і модулі в ієрархії збирання.

Встановлення до sysext

Встановіть модулі ядра до накладки sysext:

make INSTALL_MOD_PATH="$HOME/kde/usr" modules_install

Визначте версію ядра та встановіть образ ядра:

version=$(make -s kernelrelease)
install -Dm644 "$(make -s image_name)" \
  "$HOME/kde/usr/lib/modules/$version/vmlinuz"

Освіжіть системне розширення systemd, щоб система побачила нове ядро ​​та модулі:

run0 systemd-sysext refresh --always-refresh=yes

Перезбирання образів EFI

Після встановлення ядра в sysext, перебудуйте дані EFI на основі оновленого вмісту /usr:

run0 /usr/lib/rebuild-efi

На цьому кроці буде створено новий уніфікований образ ядра (UKI).

Встановлення уніфікованого образу ядра

Встановіть створений UKI до розділу системи EFI:

run0 cp kde-linux.efi /boot/EFI/Linux/

Нове ядро буде показано як запис без версії у systemd-boot і його можна буде вибрати під час наступного завантаження.


Статтю надіслано , умови ліцензування — CC-BY-4.0.