Розробка та діагностика ядра
Написання цієї сторінки ще не завершено.
KDE Linux надає повне, попередньо налаштоване середовище розробки ядра. Не потрібно встановлювати додаткові пакунки, контейнери, віртуальні машини чи chroot-середовища. Розробка ядра відповідає стандартним робочим процесам Linux, з невеликою кількістю кроків інтеграції, характерних для KDE Linux, які пояснено нижче.
Основна документація
Розробка ядра в KDE Linux відбувається відповідно до практик розробки основної гілки коду Linux. Перш ніж продовжувати, наполегливо рекомендуємо ознайомитися з офіційною документацією щодо ядра Linux:
- https://docs.kernel.org/
- https://docs.kernel.org/process/
- https://docs.kernel.org/kbuild/
- https://docs.kernel.org/rust/
Ці документи описують процес розробки, стиль написання програмного коду, систему збирання та (якщо потрібно) підтримку 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 і його можна буде вибрати під час наступного завантаження.
Статтю надіслано Andrew Gigena, умови ліцензування — CC-BY-4.0.