logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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
Prochaine révision Les deux révisions suivantes
doc:systeme:kernel:compiler [24/06/2018 11:49]
naguam [2 C'est parti! Prérequis!]
doc:systeme:kernel:compiler [18/06/2021 10:43]
naguam [2 C'est parti! Prérequis!]
Ligne 2: Ligne 2:
  
   * Objet : Compiler d'une source externe.   * Objet : Compiler d'une source externe.
-  * Niveau requis : {{tag>​Tout-niveau}} 
   * Commentaires : // Tout est dans le titre :-) //   * Commentaires : // Tout est dans le titre :-) //
   * Créé, Rédigé et Testé par [[user>​naguam]]   * Créé, Rédigé et Testé par [[user>​naguam]]
   * Discussion liée à ce tutoriel : [[https://​debian-facile.org/​viewtopic.php?​id=16415 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs ! Tant qu'​elles sont correctement justifiées (raisons valables) | Vous pouvez aussi y poser des questions! ))    * Discussion liée à ce tutoriel : [[https://​debian-facile.org/​viewtopic.php?​id=16415 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs ! Tant qu'​elles sont correctement justifiées (raisons valables) | Vous pouvez aussi y poser des questions! )) 
 +  * Niveau requis : Tout niveau
 ===== 1 Notes avant de commencer ===== ===== 1 Notes avant de commencer =====
  
Ligne 31: Ligne 30:
 Il nous faudra donc installer des dépendances nécessaires à la compilation (en root) Il nous faudra donc installer des dépendances nécessaires à la compilation (en root)
  
-<code root>apt install build-essential fakeroot dpkg-dev perl libssl-dev bc gnupg dirmngr ​libncurses5-dev libelf-dev flex bison</​code>​+<code root>apt install build-essential fakeroot dpkg-dev perl libssl-dev bc gnupg dirmngr ​libncurses-dev libelf-dev flex bison lsb-release rsync dwarves</​code>​
  
-[[https://​www.phoronix.com/​scan.php?​page=news_item&​px=Linux-Now-Needs-Flex-Bison|Flex et Bison sont des dépendances nécessaires ​à partir du 4.16]] à cause d'une modification du [[http://​www.tuxmachines.org/​node/​108705|kconfig pour la gestion]] ​du kernel dans un paquet pour snappy... Vive canonical (ironie :-/)+''​dwarves''​ est nécessaire avec la configuration debian ​à partir ​de debian bullseye, et uniquement si vous laissez la partie debug activée dans la suite du tutoriel. 
 + 
 +Si vous avez les dépôts src dans votre sources.list et que, n'avoir que le minimum de dépendances ne vous importe pas, vous pouvez également faire (en root) 
 + 
 +<code root>apt build-dep linux</code> 
 + 
 +Cela installera les dépendances exactes ​du kernel ​packagé ​dans debian; dépendances choisies et utilisées par les mainteneurs. 
 + 
 +Normalement ça s'​accorde assez bien avec une configuration faite avec ''​make olddefconfig'',​ que nous verrons plus tard dans le tutoriel.
  
 ==== 2.2 Répertoire de compilation ==== ==== 2.2 Répertoire de compilation ====
Ligne 43: Ligne 50:
 ==== 2.3 Les sources ==== ==== 2.3 Les sources ====
  
-Bien sûr, il nous faut télécharger les sources du kernel et la signature pour vérification de l'​intégrité du kernel.\\+Bien sûr, il nous faut télécharger ​
 + 
 +  * les sources du kernel ​//(lien "​tarball"​ sur kernel.org)// ​et  
 +  * la signature pour vérification de l'​intégrité du kernel ​//(lien "​pgp"​ sur kernel.org)// ​. 
 Nous pouvons par exemple, les télécharger chez [[https://​www.kernel.org/​|kernel.org]],​ le site officiel du kernel linux. (conseillé pour les moins expérimentés)\\ Nous pouvons par exemple, les télécharger chez [[https://​www.kernel.org/​|kernel.org]],​ le site officiel du kernel linux. (conseillé pour les moins expérimentés)\\
-Vous devez avoir des fichiers qui ce terminent par ''​.tar.xz''​ (ou''​.tar.gz''​) et ''​.tar.sign''​+Vous devez avoir deux fichiers qui se terminent ​respectivement ​par ''​.tar.xz''​ (ou''​.tar.gz''​) et ''​.tar.sign''​
  
 __**Téléchargez vos sources dans votre répertoire de compilation créé juste avant!**__ __**Téléchargez vos sources dans votre répertoire de compilation créé juste avant!**__
Ligne 106: Ligne 117:
 <code user>tar -xaf linux-$kversion.tar.xz && cd linux-$kversion</​code>​ <code user>tar -xaf linux-$kversion.tar.xz && cd linux-$kversion</​code>​
  
-<note important>​N'​oubliez pas ce que nous avons déjà ​dis avant en 2.3 pour l'​histoire du ''​**kversion**''​ !</​note>​+<note important>​N'​oubliez pas ce que nous avons déjà ​dit avant en 2.3 pour l'​histoire du ''​**kversion**''​ !</​note>​
  
 ==== 3.2 Configuration et préparation des sources ==== ==== 3.2 Configuration et préparation des sources ====
Ligne 124: Ligne 135:
 Pour plus d'​infos sur les options de configuration,​ les informations seront en bas de page. Pour plus d'​infos sur les options de configuration,​ les informations seront en bas de page.
  
-**Ensuite nous devons désactiver les clef du kernel car sinon nous aurons droit à une belle erreur de compilation**+**Ensuite nous devons désactiver les clefs du kernel car sinon nous aurons droit à une belle erreur de compilation** 
 + 
 +En effet le kernel debian est signé avec les clefs debian. Reprendre leur configuration c'est tenter de réutiliser leurs clefs, sauf que comme c'est pas le même kernel avec les même sources, ça va poser problème. 
 + 
 +Nous voulons donc générer de nouvelles clefs. La commande suivante permet donc de désactiver les actuelles, et au début de la compilation,​ deux validations (entrée pour une valeur par default) vous seront demandé et les nouvelles clef générées.
  
 <code user>​./​scripts/​config -d CONFIG_MODULE_SIG_ALL -d CONFIG_MODULE_SIG_KEY -d CONFIG_SYSTEM_TRUSTED_KEYS</​code>​ <code user>​./​scripts/​config -d CONFIG_MODULE_SIG_ALL -d CONFIG_MODULE_SIG_KEY -d CONFIG_SYSTEM_TRUSTED_KEYS</​code>​
Ligne 158: Ligne 173:
 ==== 4.2 Toujours plus d'​optimisation de temps en ne créant que les paquets nécessaires ==== ==== 4.2 Toujours plus d'​optimisation de temps en ne créant que les paquets nécessaires ====
  
-Nous allons créer les paquets avec ''​bindeb-pkg'',​ cela ne créer que les binaires les plus utiles (certains indispensables) si vous voulez les nouvelles sources reconstruites,​ il vous faut faire __**étape 4.1**__+Nous allons créer les paquets avec ''​bindeb-pkg'',​ cela ne va créer que les binaires les plus utiles (certains indispensables) si vous voulez les nouvelles sources reconstruites,​ il vous faut faire __**l'étape 4.1**__
  
 Nous pouvons nous mettre à compiler Nous pouvons nous mettre à compiler
Ligne 184: Ligne 199:
 <code user>cd ..</​code>​ <code user>cd ..</​code>​
  
-Ensuite, pour installer le kernel, nous devons au minimum installer l'​image et les headers **mais je conseille d'​installer ​tout les .deb créés si vous ne manquez pas d'​espace de stockage.** (commandes suivantes faites en root)+Ensuite, pour installer le kernel, nous devons au minimum installer l'​image et les headers **mais je conseille d'​installer ​tous les .deb créés si vous ne manquez pas d'​espace de stockage.** (commandes suivantes faites en root)
  
 <code root>​dpkg -i *.deb</​code>​ <code root>​dpkg -i *.deb</​code>​
  
-Pour Désinstaller:+Pour désinstaller:
  
 <code root>​dpkg -P *.deb</​code>​ <code root>​dpkg -P *.deb</​code>​
Ligne 196: Ligne 211:
 __Vous pouvez aussi désinstaller avec apt.__ __Vous pouvez aussi désinstaller avec apt.__
  
-<note warning>​Moi,​ sur la plupart des machines sur lesquelles j'ai appliqué le tutoriel, j'​avais ensuite un message au boot de ''​pcspkr is already registered''​. Du coup, j'ai dû le blacklister : <code root>​echo "​blacklist pcspkr"​ > /​etc/​modprobe.d/​blacklist-pcspkr.conf</​code>​ (de plus pcspkr est un module kernel qui sert seulement au beeps systeme ​en tty par exemple quand on fait retour trop loin pour supprimer du texte)</​note>​+<note warning>​Moi,​ sur la plupart des machines sur lesquelles j'ai appliqué le tutoriel, j'​avais ensuite un message au boot de ''​pcspkr is already registered''​. Du coup, j'ai dû le blacklister : <code root>​echo "​blacklist pcspkr"​ > /​etc/​modprobe.d/​blacklist-pcspkr.conf</​code>​ (de plus pcspkr est un module kernel qui sert seulement au beep système ​en tty par exemple quand on fait retour trop loin pour supprimer du texte)</​note>​
  
 ==== Avertissement ==== ==== Avertissement ====
Ligne 215: Ligne 230:
  
 Il faut que je teste un peu plus, mais généralement,​ il ne reste que 2 noyaux installés. \\ Il faut que je teste un peu plus, mais généralement,​ il ne reste que 2 noyaux installés. \\
-N'​installez jamais plusieurs ​version ​de noyaux ​sans vérifier que l'​avant-dernier fonctionne, sinon...+N'​installez jamais plusieurs ​versions ​de noyau sans vérifier que l'​avant-dernier fonctionne, sinon...
   * désinstallez un noyau qui ne convient pas auparavant   * désinstallez un noyau qui ne convient pas auparavant
   * ou an//nul//ez ce script   * ou an//nul//ez ce script
doc/systeme/kernel/compiler.txt · Dernière modification: 01/10/2023 11:30 par captnfab

Pied de page des forums

Propulsé par FluxBB