Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
tutoriel:comment_compiler_un_kernel_de_kernel.org [Le 16/02/2018, 13:02] L'Africain [Les arguments de compilation] |
tutoriel:comment_compiler_un_kernel_de_kernel.org [Le 10/01/2021, 12:09] Olivier V [Liens] |
||
---|---|---|---|
Ligne 41: | Ligne 41: | ||
* une interface en **GTK+** (noyau 2.6 seulement) => [[:tutoriel:comment_installer_un_paquet|installez les paquets]] **[[apt>libglib2.0-dev,libgtk2.0-dev,libglade2-dev|libglib2.0-dev libgtk2.0-dev libglade2-dev]]** | * une interface en **GTK+** (noyau 2.6 seulement) => [[:tutoriel:comment_installer_un_paquet|installez les paquets]] **[[apt>libglib2.0-dev,libgtk2.0-dev,libglade2-dev|libglib2.0-dev libgtk2.0-dev libglade2-dev]]** | ||
* une interface en **QT4** (Fonctionne du noyau 2.6 au noyau 4.0 - sûrement l'interface la plus simple et complète - conseillée) => [[:tutoriel:comment_installer_un_paquet|installez les paquets]] **[[apt>libqt4-dev,pkg-config|libqt4-dev pkg-config]]** | * une interface en **QT4** (Fonctionne du noyau 2.6 au noyau 4.0 - sûrement l'interface la plus simple et complète - conseillée) => [[:tutoriel:comment_installer_un_paquet|installez les paquets]] **[[apt>libqt4-dev,pkg-config|libqt4-dev pkg-config]]** | ||
+ | |||
+ | ===== Méthode simple de compilation (par exemple pour appliquer uniquement un patch) ===== | ||
+ | |||
+ | <note tip>Cette méthode s'applique si: | ||
+ | * 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 | ||
+ | </note> | ||
+ | |||
+ | 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://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git ; ne pas chercher à modifier le .y à la fin du nom ! | ||
+ | |||
+ | mkdir ~/NOYAU | ||
+ | cd ~/NOYAU | ||
+ | git clone --depth=1 -b linux-5.10.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.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 <[fichier-patch] (pour tester qu'il n'y a pas d'erreur sans appliquer) | ||
+ | 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 /boot/config-`uname -r` .config | ||
+ | |||
+ | Compiler le noyau (répéter ces étapes à chaque compilation) | ||
+ | |||
+ | yes '' | make oldconfig | ||
+ | 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 | ||
+ | |||
+ | <note> | ||
+ | Pour compiler la dernière version de développement il faudrait utiliser plus haut | ||
+ | |||
+ | git clone --depth=1 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git | ||
+ | </note> | ||
+ | |||
===== Téléchargement des sources ===== | ===== Téléchargement des sources ===== | ||
Ligne 51: | Ligne 108: | ||
tar xvf linux-* | tar xvf linux-* | ||
</code> | </code> | ||
+ | |||
+ | <note tip>Il est possible de récupérer les sources par git (voir paragraphe précédent) </note> | ||
===== Configuration particulière ===== | ===== Configuration particulière ===== | ||
Ligne 282: | 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 : [[:kernel_bissection/Bissection d'un noyau]] | ||
===== Liens ===== | ===== Liens ===== | ||
Ligne 290: | Ligne 354: | ||
----- | ----- | ||
- | //Contributeurs: [[:utilisateurs:Fabien26]], [[:utilisateurs:adam0509]], [[:utilisateurs:BeAvEr]], [[:utilisateurs:fleroi91]].// | + | //Contributeurs: [[:utilisateurs:Fabien26]], [[:utilisateurs:adam0509]], [[:utilisateurs:BeAvEr]], [[:utilisateurs:fleroi91]], [[:utilisateurs:olivier_v]].// |