Passa al contenuto

Sviluppare o eseguire il debug del kernel

Questa pagina è in fase di costruzione.

KDE Linux fornisce un ambiente per lo sviluppo del kernel completo, preconfigurato e funzionante. Non servono pacchetti aggiuntivi, container, macchine virtuali o chroot. Lo sviluppo del kernel segue i flussi upstream di Linux standard, con alcuni passaggi integrativi specifici per KDE Linux spiegati sotto.

Documentazione upstream

Lo sviluppo del kernel in KDE Linux segue le pratiche Linux upstream. Prima di procedere, è fortemente raccomandato di familiarizzare con la documentazione ufficiale relativa al kernel Linux:

Questi documenti descrivono il processo di sviluppo, lo stile del codice, il sistema di generazione e, opzionalmente, il supporto a Rust utilizzato dal kernel.

Prerequisiti

KDE Linux usa un filesystem /usr. di sola lettura. Qualsiasi kernel personalizzato, modulo del kernel e artefatti collegati devono essere installati tramite un overlay scrivibile.

Prima di continuare, devi configurare un'estensione di sistema systemd (sysext) per consentire di ignorare il contenuto in /usr.

Questo passaggio è obbligatorio. Tutte le immagini del kernel e i moduli generati in questa guida sono installati all'interno di sysext e quindi uniti all'interno del sistema live.

Clonare il kernel Linux

Clona il repository del kernel Linux upstream utilizzando Git:

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

Puoi anche clonare uno specifico ramo stabile o di sviluppo, se richiesto.

Configurazione del kernel

Puoi iniziare dalla configurazione predefinita per la tua architettura:

make defconfig

Per personalizzare la configurazione, usa una delle interfacce di configurazione standard del kernel:

make menuconfig
make nconfig
make xconfig

Tutti i passaggi di configurazione sono uguali allo sviluppo del kernel Linux upstream.

Generare il kernel

Genera il kernel utilizzando il sistema di generazione standard:

make -j$(nproc)

Questo comando produce l'immagine e i moduli del kernel nell'albero di generazione.

Installare all'interno di sysext

Installa i moduli kernel all'interno dell'overlay sysext:

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

Determina la versione del kernel e installa la sua immagine:

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

Aggiorna l'estensione di sistema systemd in modo che il sistema veda il kernel e i moduli nuovi:

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

Rigenerare le immagini EFI

Dopo aver installato il kernel all'interno di sysext, rigenera gli artefatti EFI basati sui contenuti /usr aggiornati:

run0 /usr/lib/rebuild-efi

Questo passaggio genera una nuova Unified Kernel Image (UKI).

Installare l'Unified Kernel Image

Installa l'UKI generata all'interno della partizione di sistema EFI:

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

Il nuovo kernel comparirà come voce senza versione in systemd-boot e potrà essere selezionata al prossimo avvio.


Articolo scritto da sotto licenza CC-BY-4.0.