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 [13/05/2017 20:51]
naguam
doc:systeme:kernel:compiler [13/05/2017 21:42]
naguam [5 Installation ou déinstallation des paquets]
Ligne 9: Ligne 9:
 ===== 1 Notes avant de commencer ===== ===== 1 Notes avant de commencer =====
  
-  * Ce tutoriel est destiné à tout le monde, qui si ils veulentdevraient ​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é\\+  * Ce tutoriel est destiné à toute personne, qui si elle le veutdevrait ​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 acquisou encore réfléchir un petit peu à la partie sécurité\\
  
-  * Les plus expérimentés ou ceux qui veulent aller plus loin, en bas de la page des liens pour une exploitation plus poussée de la technique ​seront mis (par exemple pour patcher)\\+  * Les plus expérimentés ou ceux qui veulent aller plus loin, trouveront ​en bas de la page des liens pour une exploitation plus poussée de la technique (par exemple pour patcher.).\\
  
-  * 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\\+  * 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 enregistriez ​au mieux les informations ​basiques qui seront expliquées au plus simple pour que vous n'ayez ensuite plus besoin du tutoriel pour le faire.\\
  
-  * Nous allons aborder la partie sécurité au plus simple, mais mérites ​une attention certaine\\+  * Nous allons aborder la partie sécurité au plus simple, mais elle mérite ​une attention certaine.\\
  
-  * Donc, si vous êtes sur ce tutoriel, c'est que vous voulez compiler un kernel ​donc nous n'​allons pas répéter les raisons de le faire, mais sachez-le que ce tutoriel est à appliquer à vos risques et périls ​(votre ​responsabilité)\\+  * Si vous êtes sur ce tutoriel, c'est que vous voulez compiler un kernel ​nous n'​allons pas répéter les raisons de le faire, mais sachez que ce tutoriel est à appliquer à vos risques et périls ​! Votre responsabilité.\\
  
-  * 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)\\+  * Lisez le tutoriel **dans ​sa totalité** et respectez bien les ''​codes en **user** ou **root**''​ car il est préférable d'​utiliser le root le 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! ===== ===== 2 C'est parti! Prérequis! =====
Ligne 102: Ligne 102:
 <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à dis avant en 2.3 pour l'​histoire du ''​**kversion**''​ !</​note>​
- +
-==== 3.2 Configuration et préparation des sources ==== +
- +
-Maintenant, nous allons configurer notre kernel avec nos options voulues (ici comme presque toujours, les commandes seront appliquées en user)\\ +
- +
-Pour les moins expérimentés ou ceux qui n'ont pas envie de se casser la tête vous pouvez faire la commande suivante\\ +
- +
-<code user>​make olddefconfig</​code>​ +
- +
-Cette commande va chercher la configuration de votre kernel actuel et met toutes les nouvelles options en "par default"​\\ +
- +
-Pour les plus expérimentés,​ ou les personnes bidouilleuse,​ ou même encore les personnes qui ont besoins d'options activées en particulier,​ vous pouvez faire cette commande\\ +
- +
-<code user>​make menuconfig</​code>​ +
- +
-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**\\ +
- +
-<code user>​./​scripts/​config -d CONFIG_MODULE_SIG_ALL -d CONFIG_MODULE_SIG_KEY -d CONFIG_SYSTEM_TRUSTED_KEYS</​code>​ +
- +
-Maintenant __**si vous êtes bourrin et que vous voulez tout créer passez en étape 4.1**__, sinon pour optimiser le temps de compilation continuez de lire :)\\ +
- +
-**Nous allons enlever le paquet debug ''​**dbg**''​ car il ne sert en général qu'aux développeurs,​ cela nous permettra de compiler en moins de temps**\\ +
- +
-Pour ce faire nous allons faire la commande suivante\\ +
- +
-<code user>​./​scripts/​config -d CONFIG_DEBUG_INFO</​code>​ +
- +
-Voilà, nous pouvons maintenant passer à la fameuse compilation,​ d'​autres options pour optimiser le temps de compilation seront indiquées. \\ +
-Vous pouvez passer en 4.2 nous avons commencé à optimiser le temps, nous allons continuer :-)\\ +
- +
-====== Compiler un kernel pour debian ====== +
- +
-  * Objet : Compiler d'une source externe. +
-  * Niveau requis : {{tag>​Tout-niveau}} +
-  * Commentaires : // Tout est dans le titre :-)//  +
-  * 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! ))  +
- +
-===== 1 Notes avant de commencer ===== +
- +
-  * Ce tutoriel est destiné à tout le monde, qui 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 a la partie sécurité\\ +
- +
-  * Les plus expérimentés ou ceux qui veulent aller plus loin, en bas de la page des liens pour une exploitation plus poussée de la technique seront mis (par exemple pour patcher)\\ +
- +
-  * 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\\ +
- +
-  * Nous allons aborder la partie sécurité au plus simple, mais mérites une attention certaine\\ +
- +
-  * Donc, si vous êtes sur ce tutoriel, c'est que vous voulez compiler un kernel donc nous n'​allons pas répéter les raisons de le faire, mais sachez-le que ce tutoriel est à appliquer à vos risques et périls (votre responsabilité)\\ +
- +
-  * 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! ===== +
- +
-==== 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)\\ +
- +
-Il nous faudra donc ensuite, installer des dépendances nécessaires à la compilation (en root)\\ +
- +
-<code root>apt install build-essential fakeroot dpkg-dev libssl-dev bc gnupg dirmngr libncurses5-dev </​code>​ +
- +
-==== 2.2 Répertoire de compilation ==== +
- +
-Nous allons créer un repertoire de compilation,​ c'est très fortemment conseillé puis nous allons aller dedans (en user!!) +
- +
-<code user>​mkdir ~/​compilation && cd ~/​compilation</​code>​ +
- +
-==== 2.3 Les sources ==== +
- +
-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''​\\ +
- +
-__**Téléchargez vos sources dans votre répertoire de compilation créé juste avant!**__ +
- +
-Par simplicité dans les commandes suivantes, nous allons taper une petite commande dans un terminal (cette fois en user)\\ +
-**Attention! les X sont à remplacer par la version du kernel que vous avez téléchargé sur ''​kernel.org''​**\\ +
-<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>​kversion=X.X.X</​code>​ +
- +
-==== 2.4 Vérification de l'​intégrité du kernel /!\ Important pour la sécurité! ==== +
- +
-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,​ 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 :-)\\ +
-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>​ +
- +
-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 +
-gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E +
-gpg: Can't check signature: Pas de clef publique</​code>​ +
- +
-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>​ +
- +
-Retour toujours de **l'​exemple**,​ vous devriez avoir un retour similaire\\ +
- +
-<​code>​gpg:​ Signature made mer. 03 mai 2017 17:38:11 CEST +
-gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E +
-gpg: Good signature from "Greg Kroah-Hartman (Linux kernel stable release signing key) greg@kroah.com"​ [unknown] +
-gpg: WARNING: This key is not certified with a trusted signature! +
-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>​ +
- +
-Maintenant dans ce retour et normalement dans le votre, vous devriez voir ''​**Good signature from....**''​ \\ +
-Cela montre que votre signature est vérifiée c'est parfais vous pouvez passer à l'​étape suivante\\ +
- +
-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 ==== ==== 3.2 Configuration et préparation des sources ====
Ligne 315: Ligne 179:
 <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.** ​(Nous fai+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.** ​
  
 <code root>​dpkg -i *.deb</​code>​ <code root>​dpkg -i *.deb</​code>​
doc/systeme/kernel/compiler.txt · Dernière modification: 01/10/2023 11:30 par captnfab

Pied de page des forums

Propulsé par FluxBB