Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 16/02/2018, 13:02]
L'Africain [Les arguments de compilation]
tutoriel:comment_compiler_un_kernel_de_kernel.org [Le 10/01/2021, 12:10] (Version actuelle)
Olivier V [Gestion des bugs]
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]].//
  • tutoriel/comment_compiler_un_kernel_de_kernel.org.1518782565.txt.gz
  • Dernière modification: Le 16/02/2018, 13:02
  • par L'Africain