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 23/03/2015, 10:16]
L'Africain [ATI] supression lien xgl
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 34: Ligne 34:
 [[https://​launchpad.net/​ubuntu/​+source/​kernel-package/​13.003/​+build/​5980712/​+files/​kernel-package_13.003_all.deb]] [[https://​launchpad.net/​ubuntu/​+source/​kernel-package/​13.003/​+build/​5980712/​+files/​kernel-package_13.003_all.deb]]
  
 +(le paragraphe juste au dessus semble être faux puisque la commande installe kernel-package_13.014)
 ==== Paquets pour créer le "​.config"​ ==== ==== Paquets pour créer le "​.config"​ ====
  
Ligne 40: 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 =====
  
 Tout d'​abord téléchargez les sources du noyau depuis Kernel.org:​\\ Tout d'​abord téléchargez les sources du noyau depuis Kernel.org:​\\
-[[http://​www.kernel.org/​pub/​linux/​kernel/​|Lien vers le ftp de kernel.org]]+[[http://​www.kernel.org/​pub/​linux/​kernel/​|Lien vers les sources sur kernel.org]]
  
 Téléchargez l'​archive dans le dossier que vous voulez, puis [[:​archivage#​graphiquement|décompressez-la]] par exemple avec la [[:​commande_shell|commande]] suivante: Téléchargez l'​archive dans le dossier que vous voulez, puis [[:​archivage#​graphiquement|décompressez-la]] par exemple avec la [[:​commande_shell|commande]] suivante:
Ligne 50: 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 63: 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 89: Ligne 149:
 === Avec le .run du site === === Avec le .run du site ===
  
-Ne faites rien pour l'​instant,​ puis une fois votre noyau compilé, téléchargez le //.run// sur le site officiel. Tutoriel [[:nvidia.run|ici]]+Ne faites rien pour l'​instant,​ puis une fois votre noyau compilé, téléchargez le //.run// sur le site officiel. Tutoriel [[:​nvidia|ici]]
  
 ==== ATI ==== ==== ATI ====
Ligne 99: 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 169: 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 220: 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 230: 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 262: Ligne 317:
 ==== Compilation basique ==== ==== Compilation basique ====
  
-La commande ​la plus basique pour compiler :+Avant de procéder à la compilation il faut savoir que une compilation ​basique ​peut durer entre 2 heures et trois heures. Mais si vous possédez un ordinateur qui à plusieurs cœur (Core) vous pouvez augmenter la vitesse de compilation en spécifiant le nombre de cœur à utiliser pour la compilation. 
 + 
 +Voici un exemple ​pour un ordinateur à 5 cœurs (A changer en fonction de votre ordinateur) 
 <​code>​ <​code>​
-make-kpkg --initrd --append-to-version=-monnoyau --revision=1.0 --rootcmd=fakeroot ​kernel_doc ​kernel_image kernel_headers+echo "​CONCURRENCY_LEVEL= 5" >> /​etc/​kernel-pkg.conf 
 +</​code>​ 
 + 
 +Et maintenant voici la commande la plus basique pour compiler : 
 +<​code>​ 
 +make-kpkg --initrd --append-to-version=-monnoyau --revision=1.0 --rootcmd=fakeroot kernel_image kernel_headers
 </​code>​ </​code>​
  
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 : [[:​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]].//
  • tutoriel/comment_compiler_un_kernel_de_kernel.org.1427102196.txt.gz
  • Dernière modification: Le 23/03/2015, 10:16
  • par L'Africain