Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tutoriel:comment_compiler_un_kernel_de_kernel.org [Le 23/03/2015, 10:16] – [ATI] supression lien xgl L'Africain | tutoriel:comment_compiler_un_kernel_de_kernel.org [Le 11/09/2022, 12:24] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art | ||
|---|---|---|---|
| Ligne 34: | Ligne 34: | ||
| [[https:// | [[https:// | ||
| + | (le paragraphe juste au dessus semble être faux puisque la commande installe kernel-package_13.014) | ||
| ==== Paquets pour créer le " | ==== Paquets pour créer le " | ||
| Ligne 40: | Ligne 41: | ||
| * une interface en **GTK+** (noyau 2.6 seulement) => [[: | * une interface en **GTK+** (noyau 2.6 seulement) => [[: | ||
| * une interface en **QT4** (Fonctionne du noyau 2.6 au noyau 4.0 - sûrement l' | * une interface en **QT4** (Fonctionne du noyau 2.6 au noyau 4.0 - sûrement l' | ||
| + | |||
| + | ===== Méthode simple de compilation (par exemple pour appliquer uniquement un patch) ===== | ||
| + | |||
| + | <note tip> | ||
| + | * si vous souhaitez vérifier simplement que tout est prêt pour la compilation sans rentrer dans la complication les fichiers de configuration. | ||
| + | * si vous avez un noyau (exemple ci-dessous avec une version 5.10) sur laquelle vous souhaitez **simplement appliquer un patch** sans autre modification | ||
| + | </ | ||
| + | |||
| + | Lancer votre machine avec le noyau que vous souhaitez modifier. Vérifier la version avec : | ||
| + | |||
| + | uname -r | ||
| + | |||
| + | Installation des dépendances | ||
| + | |||
| + | sudo apt install -y git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache | ||
| + | |||
| + | Récupération du noyau ; la liste des branches est visible ici https:// | ||
| + | |||
| + | mkdir ~/NOYAU | ||
| + | cd ~/NOYAU | ||
| + | git clone --depth=1 -b linux-5.10.y git:// | ||
| + | # ^ modifier ici selon la branche dont vous avez besoin | ||
| + | |||
| + | Donner les bons droits à vos fichiers et répertoires | ||
| + | |||
| + | sudo chmod -R 0755 linux-stable | ||
| + | cd linux-stable | ||
| + | |||
| + | Optionnel : appliquer le patch | ||
| + | |||
| + | patch -p1 --dry-run < | ||
| + | patch -p1 < [fichier_de_patch] (pour appliquer le patch) | ||
| + | patch -R < [fichier_de_patch] (pour retirer le patch) | ||
| + | |||
| + | Récupérer le fichier de configuration de votre noyau **en cours d’exécution** (la branche doit être la **même que celle téléchargée** pour la compilation) | ||
| + | cp / | ||
| + | |||
| + | Compiler le noyau (répéter ces étapes à chaque compilation) | ||
| + | |||
| + | yes '' | ||
| + | make clean | ||
| + | make -j$(nproc) deb-pkg LOCALVERSION=-custom | ||
| + | |||
| + | Entre chaque essai de compilation exécuter pour nettoyer : | ||
| + | |||
| + | rm vmlinux-gdb.py | ||
| + | | ||
| + | Installer les fichiers crées dans ~/NOYAU avec | ||
| + | |||
| + | sudo dpkg -i *.deb | ||
| + | |||
| + | < | ||
| + | Pour compiler la dernière version de développement il faudrait utiliser plus haut | ||
| + | |||
| + | git clone --depth=1 git:// | ||
| + | </ | ||
| + | |||
| ===== Téléchargement des sources ===== | ===== Téléchargement des sources ===== | ||
| Tout d' | Tout d' | ||
| - | [[http:// | + | [[http:// |
| Téléchargez l' | Téléchargez l' | ||
| Ligne 50: | Ligne 108: | ||
| tar xvf linux-* | tar xvf linux-* | ||
| </ | </ | ||
| + | |||
| + | <note tip>Il est possible de récupérer les sources par git (voir paragraphe précédent) </ | ||
| ===== Configuration particulière ===== | ===== Configuration particulière ===== | ||
| Ligne 63: | Ligne 123: | ||
| === Avec la technique des liens symboliques === | === Avec la technique des liens symboliques === | ||
| - | Voir [[http:// | + | Voir [[https:// |
| === Avec le module === | === Avec le module === | ||
| Ligne 89: | Ligne 149: | ||
| === Avec le .run du site === | === Avec le .run du site === | ||
| - | Ne faites rien pour l' | + | Ne faites rien pour l' |
| ==== ATI ==== | ==== ATI ==== | ||
| Ligne 99: | Ligne 159: | ||
| === Avec la technique des liens symboliques === | === Avec la technique des liens symboliques === | ||
| - | Voir [[http:// | + | Voir [[https:// |
| === Avec le module === | === Avec le module === | ||
| Ligne 169: | Ligne 229: | ||
| **Si vous n'avez rien à configurer, cliquez simplement sur // | **Si vous n'avez rien à configurer, cliquez simplement sur // | ||
| - | Si vous avez envie de configurer au mieux votre noyau, aidez-vous de la page << [[: | + | |
| <note tip>Vous ne risquez rien à compiler un Noyau inutilisable car les anciens restent tout de même installés sur le système, il vous suffira simplement d'en choisir un autre dans le menu [[: | <note tip>Vous ne risquez rien à compiler un Noyau inutilisable car les anciens restent tout de même installés sur le système, il vous suffira simplement d'en choisir un autre dans le menu [[: | ||
| Ligne 220: | Ligne 280: | ||
| </ | </ | ||
| - | === --append-to-version & --revision === | ||
| - | |||
| - | **FACULTATIF** | ||
| - | |||
| - | Pour ajouter une version à votre noyau. Plus d' | ||
| ==== Les cibles de compilation === | ==== Les cibles de compilation === | ||
| Ligne 230: | Ligne 285: | ||
| === buildpackage === | === buildpackage === | ||
| - | Cela a pour conséquence d' | + | Cela a pour conséquence d' |
| === clean === | === clean === | ||
| Ligne 262: | Ligne 317: | ||
| ==== Compilation basique ==== | ==== Compilation basique ==== | ||
| - | La commande | + | Avant de procéder à la compilation il faut savoir que une compilation |
| + | |||
| + | Voici un exemple | ||
| < | < | ||
| - | make-kpkg --initrd --append-to-version=-monnoyau --revision=1.0 --rootcmd=fakeroot | + | echo " |
| + | </ | ||
| + | |||
| + | Et maintenant voici la commande la plus basique pour compiler : | ||
| + | < | ||
| + | make-kpkg --initrd --append-to-version=-monnoyau --revision=1.0 --rootcmd=fakeroot kernel_image kernel_headers | ||
| </ | </ | ||
| Ligne 278: | Ligne 341: | ||
| Voilà c'est fait :-) | Voilà c'est fait :-) | ||
| + | |||
| + | ===== Gestion des bugs ===== | ||
| + | |||
| + | En cas de découverte d'un bug il faut commencer par une bissection.\\ | ||
| + | Voir : [[: | ||
| ===== Liens ===== | ===== Liens ===== | ||
| - | * [[http:// | + | * [[https:// |
| * [[http:// | * [[http:// | ||
| - | * [[http:// | + | * [[http:// |
| ----- | ----- | ||
| - | // | + | // |
