Développer ou déboguer le noyau
Cette page est en cours de réalisation.
KDE Linux fournit un environnement de développement du noyau, complet et préconfiguré dès le départ. Aucun paquet supplémentaire, conteneur, machine virtuelle ou chroot n'est requis. Le développement du noyau suit les flux de travail standard de Linux en amont, avec un petit nombre d'étapes d'intégration spécifiques à KDE Linux expliquées ci-dessous.
Documentation amont
Le développement du noyau sur KDE Linux suit les pratiques du noyau Linux en amont. Avant de continuer, il est fortement recommandé de se familiariser avec la documentation officielle du noyau Linux :
- https://docs.kernel.org/
- https://docs.kernel.org/process/
- https://docs.kernel.org/kbuild/
- https://docs.kernel.org/rust/
Ces documents décrivent le processus de développement, le style de codage, le système de compilation et (facultativement) la prise en charge de Rust utilisé par le noyau.
Pré-requis
KDE Linux utilise un système de fichiers /usr en lecture seule. Tout noyau personnalisé, module de noyau ou artefacts associés doivent être installés grâce à une surcouche inscriptible.
Avant de continuer, vous devez configurer une extension système systemd (sysext) pour permettre de remplacer le contenu dans /usr.
Cette étape est obligatoire. Toutes les images et modules du noyau compilés dans ce guide sont installés dans le sysext puis fusionnés dans le système en direct.
Clonage du noyau Linux
Clonez le dépôt du noyau Linux amont en utilisant Git :
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cd linux
Vous pouvez également cloner une branche stable ou de développement spécifique si nécessaire.
Configuration du noyau
Vous pouvez commencer à partir de la configuration par défaut pour votre architecture :
make defconfig
Pour personnaliser la configuration, veuillez utiliser l'une des interfaces de configuration du noyau standard :
make menuconfig make nconfig make xconfig
Toutes les étapes de configuration sont identiques à celles du développement du noyau Linux amont.
Compilation du noyau
Compilez le noyau en utilisant le système de compilation standard :
make -j$(nproc)
Ceci génère l'image du noyau et les modules dans l'arborescence de compilation.
Installation dans sysext
Installez les modules du noyau dans une superposition à sysext :
make INSTALL_MOD_PATH="$HOME/kde/usr" modules_install
Déterminez la version du noyau et installez l'image du noyau :
version=$(make -s kernelrelease) install -Dm644 "$(make -s image_name)" \ "$HOME/kde/usr/lib/modules/$version/vmlinuz"
Mettre à jour l'extension système avec « systemd » afin que le système détecte le nouveau noyau et ses modules :
run0 systemd-sysext refresh --always-refresh=yes
Re-compilation des images « EFI »
Après l'installation du noyau dans le « sysext », reconstruisez les artefacts « EFI » selon le contenu mis à jour du dossier /usr :
run0 /usr/lib/rebuild-efi
Cette étape génère une nouvelle image de noyau unifié (UKI).
Installation de l'image du noyau unifié
Installez le noyau « UKI » généré dans la partition système « EFI » :
run0 cp kde-linux.efi /boot/EFI/Linux/
Le nouveau noyau apparaîtra comme une entrée non versionnée dans « systemd-boot » et pourra être sélectionné au prochain démarrage.
Article rédigé par Andrew Gigena sous licence CC-BY-4.0.