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 [12/05/2017 21:48]
naguam [Introduction | JE REFAIS pour simplifier, donc en cours de modification | Désolé pour la modération mais cette fois c'est la bonne de toute manière c'est à considérer comme une mise à jour]
doc:systeme:kernel:compiler [13/05/2017 09:15]
naguam [1 Notes avant de commencer]
Ligne 1: Ligne 1:
-====== Compiler un kernel ​de kernel.org ​======+====== Compiler un kernel ​pour debian ​======
  
   * Objet : Compiler d'une source externe.   * Objet : Compiler d'une source externe.
-  * Niveau requis : {{tag>avisés}} +  * Niveau requis : {{tag>Tout niveau}} 
-  * Commentaires : //Compiler un kernel d'une source externe aux dépôts Debian (ici celui de [[https://​www.kernel.org/​|kernel.org]]) //  +  * Commentaires : // Tout est dans le titre :-)//  
-  * Débutantà savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) +  * CrééRédigé et Testé par [[user>​naguam]] 
-  * Suivi : {{tag>​placé à-tester}}  +  * 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! )) 
-    * Création par [[user>​naguam]] 03/​01/​2017 +
-    * Écrit très grande partie par [[user>​naguam]]  +
-    * Testé par [[user>​naguam]] ​le 08/05/2017 +
-  * 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 !)) +
  
-Voir aussi le tuto : +===== 1 Notes avant de commencer =====
-  * [[doc:​systeme:​noyau:​compiler | compiler un noyau]]+
  
-===== Introduction | JE REFAIS pour simplifierdonc en cours de modification | Désolé pour la modération mais cette fois c'est la bonne de toute manière c'est à considérer comme une mise à jour (que je fais sur un txt et que je poste après)=====+  * Ce tutoriel est destiné à tout le mondequi si ils veulent, devraient pouvoir presque tout faire au copier-collé excepté certaines choses comme ''​le passage ​en root ou le repassage en user''​ que nous considérons comme acquis ou encore réfléchir ​un petit peu à la partie sécurité\\
  
-Compiler un kernel (plus réçent) est utile pour plusieurs choses : +  * Les plus expérimentés ou ceux qui veulent aller plus loin, vous aurez en bas de la page des liens pour une exploitation plus poussée ​de la technique (par exemple ​pour patcher)\\
-  - Pour les maniaques, juste avoir le kernel le plus réçent ! 8-o +
-  - Bénéficier ​des nouvelles fonctionnalités offertes par celui-ci. +
-  - Avoir une meilleure reconnaissance matérielle. +
-  - Pouvoir peaufiner les options ​de compilations ​pour ses besoins+
  
-//Il y a sûrement ​d'autres raisons de le faire mais ce sont celles ​que j'ai retenues.// :-)+  * Dans ce tutoriel, l'​explication sera faite d'une manière ''​Nous allons ​faire etc''​ et ''​vous'',​ comme si c'​était une personne réelle qui vous assistait pour que vous enregistrer au mieux les infos basiques qui seront expliquées au plus simple pour que vous n'ayez ensuite plus besoin du tutoriel pour le faire\\
  
 +  * Donc nous allons faire au plus simple mais la partie sécuritée un peu plus fastidieuse est une étape importante qui elle, sera expliquée au mieux mais on ne peut pas s'en affranchir\\
  
-Testé sous stretchfuture Debian Stable :+  * Doncsi vous êtes sur ce tutoriel, c'est que vous voulez compiler un kernel donc je ne vais pas répéter les raisons de le faire, mais sachez-le que ce tutoriel est à appliquer à vos risques et périls (votre responsabilité)\\
  
-**Je rappelle pour les personnes non-habituées ​et les habitués tête en l'air, qu'il faut bien tout lire.**+  * Lisez le tutoriel le tutoriel **dans ça totalitée** et respectez bien les ''​codes en **user** ou **root**''​ car il est préférable d'​utiliser le root au moins possible (normalement le root n'est nécessaire que pour l'​installation des dépendances et l'​installation du kernel à la fin)\\
  
 +===== 2 C'est parti! Prérequis! =====
  
-<note importante>​Nous n'​avons pas besoin d'​être en root, sauf pour installer les paquets apt au début et le kernel à la fin !</​note>​+==== 2.1 Les Dépendances ====
  
 +Alors déjà, soyez sûr avant de commencer que vous avez suffisamment de stockage libre pour les dépendances mais aussi car la compilation crééra des paquets (10GB ou plus conseillés)\\
  
-===== Étape 1 Prérequis et Dépendances =====+Il nous faudra donc ensuite, installer des dépendances nécessaires à la compilation (en root)\\
  
-Prévoir un peu de stockage (10GB pour prévoir large) car il y aura une création des paquets du kernel :-)+<code root>apt install build-essential fakeroot dpkg-dev libssl-dev bc gnupg dirmngr libncurses5-dev </​code>​
  
-Installer les paquets : +==== 2.2 Répertoire de compilation ====
-<code root>apt install build-essential fakeroot libncurses5-dev dpkg-dev libssl-dev bc gnupg dirmngr</​code>​+
  
-C'est-à-dire : +Nous allons créer un repertoire de compilation,​ c'​est ​très fortemment conseillé puis nous allons aller dedans (en user!!)
-   - le compilateur et ses utilitaires principaux, ce qui va nous permettre de compiler ​en user +
-   - et un utilitaire de configuration du kernel +
-   - gpg pour contôler la signature des sources +
-    +
-Ce qui //​normalement//​ : +
-      - permettra la contruction des packages, +
-      - permettra de configurer votre kernel par rapport à votre machine.+
  
-Pour avoir un menu graphique de configuration des options: \\ +<code user>mkdir ~/compilation && cd ~/compilation</​code>​
-   * Pour les DE basés sur **qt**: +
-<code root>apt install libqt4-dev</​code>​ +
-quand nous seront à l'​**étape 5** nous pourrons faire: +
-<code user>make xconfig</code> +
-   * Pour les DE basés sur **gtk**: +
-<code root>apt install libgtk2.0-dev libglade2-dev<​/code> +
-quand nous seront à l'​**étape 5** nous pourrons faire: +
-<code user>​make gconfig</​code>​+
  
-===== Étape ​Création répertoire de compilation =====+==== 2.3 Les sources ​====
  
-<​note>​Les X remplacent des chiffres<​/note>+Bien sûr il nous faut télécharger la source du kernel et la signature pour vérification de l'​intégrité du kernel. \\ 
 +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''​ et ''​.tar.sign''​\\
  
-On va télécharger ​dans son dossier personnel, ​ dans un sous-dossier //kernel//.+__**Téléchargez vos sources ​dans votre répertoire de compilation créé juste avant!**__
  
-On [[doc:​systeme:​mkdir|crée le dossier]] : +Par simplicité dans les commandes suivantes, je vais vous faire taper une petite commande dans un terminal (cette fois en user)\\ 
-<code user>​mkdir ~/kernel</​code>​ +**Attention! les X sont à remplacer par la version du kernel ​que vous avez téléchargé sur ''​kernel.org''​**\\ 
-On [[doc:​systeme:​tar|se déplace dedans]] : +<note important>**Si vous utilisez d'​autres sources que le kernel ​de kernel.org vous devez passer cette étape**, mais dans des commandes futures, **vous devrez remplacer** ''​linux-$kversion.tar.xz'',​ ''​linux-$kversion.tar.sign''​ et ''​linux-$kversion''​ par les équivalent que vous avez téléchargés auparavant.</note>
-<code user>cd ~/kernel</code>+
  
-===== Étape 3 Téléchargement et vérification de l'​intégrité du kernel ===== +<code user>kversion=X.X.X</code>
-  +
-Il faut télécharger le kernel (source et signature) depuis ce lien : +
-  * [[https://​www.kernel.org/​|kernel.org]]  +
-<note important>**Les commandes du cadre suivant sont à copier coller ligne par ligne en modifiant juste la version (pour une version voulue) du kernel à télécharger. Cette automatisation a été conçue pour les kernels de kernel.org.** Si vous compilez à partir d'​autres sources, il vous faudra comprendre le fonctionnement **gpg** et l'​automatisation (au copier collé par lignes) ne seras pas fonctionnelle.</note>+
  
-Pour automatiser un peu, voici un exemple avec le kernel 4.10.14 (à changer par la version du kernel que vous voulez): +==== 2.4 Vérification de l'​intégrité ​du kernel /!\ Important pour la sécurité! ====
-<code user>​kversion=4.10.14 # la version ​du kernel ​à changer +
-wget https://​www.kernel.org/​pub/​linux/​kernel/​v${kversion:​0:​1}.x/​linux-$kversion.tar.xz ​   # les sources du kernel +
-wget https://​www.kernel.org/​pub/​linux/​kernel/​v${kversion:​0:​1}.x/​linux-$kversion.tar.sign ​   # la signature des sources</​code>​ +
-Voilà, les prochaines fois, vous n'​aurez plus qu'à changer la variable ''​ kversion '',​ les autres commandes ne changeront pas.+
  
-Ensuite vérification (à partir de l'exemple précédant), à reproduire ​en fonction ​de votre kernel:+Maintenant nous allons passer ​à la vérification des sources, pour prouver ​l'intégritée des fichiers 
 +C'est une étape assez fastidieuse mais importante car si il y a un problème de mauvaise signature **c'​est mauvais signe**pour les moins expérimentés,​ je rappelle qu'en cas de problème vous pouvez faire un post sur la page du forum reliée ​à ce tutotiel lien en haut de page 
 + 
 +Si vous avez utilisé les sources ​de kernel.org (voir la sous étape précédante),​ vous n'avez qu'a copier collé et lire une ou deux choses de retours, que je vous indiquerais ​:-)\\ 
 +Si vous n'avez pas utilisé les sources du kernel.org voir l'​encadré /!\ précédant.\\ 
 + 
 +Donc là nous allons commencer la vérification (en user)
  
 <code user>xz -cd linux-$kversion.tar.xz | gpg --verify linux-$kversion.tar.sign -</​code>​ <code user>xz -cd linux-$kversion.tar.xz | gpg --verify linux-$kversion.tar.sign -</​code>​
 +
 +Attention à ne pas oublier le ''​**-**''​ à la fin\\
 +
 +Cela devrait vous retourner quelque chose ressemblant à cet **exemple** (même si la ''​RSA key''​ sera différente selon vos sources)\\
 +
 <​code>​gpg:​ Signature made mer. 03 mai 2017 17:38:11 CEST <​code>​gpg:​ Signature made mer. 03 mai 2017 17:38:11 CEST
 gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
 gpg: Can't check signature: Pas de clef publique</​code>​ gpg: Can't check signature: Pas de clef publique</​code>​
-on extrait ​la clé, **signature inconnue**, on va la chercher:+ 
 +Là nous pouvons voir que pour l'​instant que vous n'avez pas de clef publique et qu'il ne peut pas checker ​la signature 
 +Nous allons donc la chercher :-)\\ 
 + 
 +**La commande qui va suivre est un exemple**, nous devons retaper ​la ''​**RSA key**''​ trouvée par la première commande à la place ce celle de l'​exemple (encore et toujours en user)\\ 
 <code user>gpg --keyserver hkp://​keys.gnupg.net --recv-keys 647F28654894E3BD457199BE38DBBDC86092693E</​code>​ <code user>gpg --keyserver hkp://​keys.gnupg.net --recv-keys 647F28654894E3BD457199BE38DBBDC86092693E</​code>​
-<​code>​gpg:​ key 38DBBDC86092693E:​ public key "Greg Kroah-Hartman (Linux kernel stable release signing key) greg@kroah.com"​ imported + 
-gpg: no ultimately trusted keys found +Retour toujours de **l'​exemple**,​ vous devriez avoir un retour similaire\\ 
-gpg: Total number processed: 1 +
-gpg: imported: 1</​code>​ +
-on recommence +
-<code user>xz -cd linux-$kversion.tar.xz | gpg --verify linux-$kversion.tar.sign -</​code>​+
 <​code>​gpg:​ Signature made mer. 03 mai 2017 17:38:11 CEST <​code>​gpg:​ Signature made mer. 03 mai 2017 17:38:11 CEST
 gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
Ligne 102: Ligne 86:
 gpg: There is no indication that the signature belongs to the owner. gpg: There is no indication that the signature belongs to the owner.
 Primary key fingerprint:​ 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E</​code>​ Primary key fingerprint:​ 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E</​code>​
-Voilà, super la signature est ok :\\ 
-''​Good signature from "Greg Kroah-Hartman...''​\\ 
-Même si la clé n'est pas signée avec une signature de confiance.\\ 
  
-En cas de **"​BAD ​signature"**, vérifier: +Maintenant dans ce retour et normalement dans le votre, vous devriez voir ''​**Good signature ​from....**''​ \\ 
- * la procédure +Cela montre que votre signature est vérifiée c'est parfais vous pouvez passer à l'​étape suivante\\ 
- le chargement + 
- * contacter ftpadmin@kernel.org immédiatement ​pour investigation+Dans un cas où vous n'avez pas ''​Good signature from...''​il faut tout arrêter et contacter le créateur de vos sources et télécharger d'​autres sources\\ 
 + 
 +Par contre nous pouvons ignorer ​le ''​WARNING''​\\ 
 + 
 +===== 3 Décompression et préparation des sources pour la compilation du kernel! ===== 
 + 
 +==== 3.1 Décompression ==== 
 + 
 +Nous avons fini les prérequis, nous allons maintenant préparer nos sources ​pour la compilation donc nous allons déjà commencer par [[doc:​systeme:​tar|décompresser]] nos sources (en user) puis nous allons aller dans nos sources décompressées pour l'​étape suivante\\ 
 + 
 +<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>​ 
 + 
 +==== 3.2 Configuration et préparation des sources ==== 
 + 
 + 
 + 
 +====== Partie du haut modifiée le bas en cours de modification! Mise à jour en cours ====== 
  
-''​WARNING:​ This key is not certified with a trusted signature''​\\ 
-On va s'​arrêter là dans la vérification,​ à moins de vouloir vérifier en contactant des signataires de cette clé. \\ 
-Voir les signataires:​ 
-<code user>gpg --list-sigs ABAF11C65A2970B130ABE3C479BE3E4300411886</​code>​ 
-===== Étape 4 Décompression ===== 
-  
-On [[doc:​systeme:​tar|décompresse le kernel téléchargé]] avec cette commande : 
-<code user>tar -xaf linux-$kversion.tar.xz</​code>​ 
  
-On se **déplace dans le nouveau dossier** créé par la décompression 
-<code user>cd linux-$kversion</​code>​ 
  
 ===== Étape 5 Configuration des options du noyau ===== ===== Étape 5 Configuration des options du noyau =====
doc/systeme/kernel/compiler.txt · Dernière modification: 01/10/2023 11:30 par captnfab

Pied de page des forums

Propulsé par FluxBB