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 | ||
tutoriel:comment_compiler_un_kernel_de_kernel.org [Le 03/06/2017, 18:29] 78.243.186.219 [Paquets basiques] |
tutoriel:comment_compiler_un_kernel_de_kernel.org [Le 11/09/2022, 12:24] (Version actuelle) moths-art 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) |
||
---|---|---|---|
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 64: | Ligne 123: | ||
=== Avec la technique des liens symboliques === | === Avec la technique des liens symboliques === | ||
- | Voir [[http://ubuntuforums.org/showthread.php?t=441013|ce How-To]] (en). | + | Voir [[https://ubuntuforums.org/showthread.php?t=441013|ce How-To]] (en). |
=== Avec le module === | === Avec le module === | ||
Ligne 100: | Ligne 159: | ||
=== Avec la technique des liens symboliques === | === Avec la technique des liens symboliques === | ||
- | Voir [[http://ubuntuforums.org/showthread.php?t=441013|ce How-To]] (en). | + | Voir [[https://ubuntuforums.org/showthread.php?t=441013|ce How-To]] (en). |
=== Avec le module === | === Avec le module === | ||
Ligne 170: | Ligne 229: | ||
**Si vous n'avez rien à configurer, cliquez simplement sur //Enregistrer// dans l'interface graphique qui apparaît**.\\ | **Si vous n'avez rien à configurer, cliquez simplement sur //Enregistrer// dans l'interface graphique qui apparaît**.\\ | ||
- | Si vous avez envie de configurer au mieux votre noyau, aidez-vous de la page << [[:tutoriel:kernel_options|Choisir les options lors de la compilation du noyau]] >> mais le mieux reste de lire les options et de bien vous amuser :-) | + | |
<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 [[:amorcage#chargeurs_d_amorcage|d'amorçage]] au démarrage de votre ordinateur.</note> | <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 [[:amorcage#chargeurs_d_amorcage|d'amorçage]] au démarrage de votre ordinateur.</note> | ||
Ligne 221: | Ligne 280: | ||
</code> | </code> | ||
- | === --append-to-version & --revision === | ||
- | |||
- | **FACULTATIF** | ||
- | |||
- | Pour ajouter une version à votre noyau. Plus d'informations à ce sujet sur [[/tutoriel/comment_compiler_un_kernel_sur_mesure_old?rev=1253631464#make-kpkg|cette ancienne version]] de << [[:tutoriel:comment_compiler_un_kernel_sur_mesure|Comment compiler un noyau sur mesure]] >>. | ||
==== Les cibles de compilation === | ==== Les cibles de compilation === | ||
Ligne 231: | Ligne 285: | ||
=== buildpackage === | === buildpackage === | ||
- | Cela a pour conséquence d'utiliser la cible "clean"et "binary" décrite ci-dessous. | + | Cela a pour conséquence d'utiliser la cible "clean"et "binary" décrite ci-dessous. |
=== clean === | === clean === | ||
Ligne 287: | 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 ===== | ||
- | * [[http://ubuntuforums.org/showthread.php?t=441013|HOW-TO : Utiliser le linux-restricted-module pour un noyau compilé]] (en) | + | * [[https://ubuntuforums.org/showthread.php?t=441013|HOW-TO : Utiliser le linux-restricted-module pour un noyau compilé]] (en) |
* [[http://www.andesi.org/index.php?node=77|Un bon guide pour Debian plein d'infos sympa]] | * [[http://www.andesi.org/index.php?node=77|Un bon guide pour Debian plein d'infos sympa]] | ||
- | * [[http://forum.ubuntu-fr.org/viewtopic.php?pid=1108685#p1108685|Un guide pour installer la carte wifi **Intel PRO/Wireless 2200BG**]] | + | * [[http://forum.ubuntu-fr.org/viewtopic.php?pid=1108685#p1108685|Un guide pour installer la carte wifi **Intel PRO/Wireless 2200BG**]] |
----- | ----- | ||
- | //Contributeurs: [[:utilisateurs:Fabien26]], [[:utilisateurs:adam0509]], [[:utilisateurs:BeAvEr]], [[:utilisateurs:fleroi91]].// | + | //Contributeurs: [[:utilisateurs:Fabien26]], [[:utilisateurs:adam0509]], [[:utilisateurs:BeAvEr]], [[:utilisateurs:fleroi91]], [[:utilisateurs:olivier_v]].// |