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 21:42]
naguam [5 Installation ou déinstallation des paquets]
doc:systeme:kernel:compiler [18/06/2021 02:08]
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 =====
  
   * Ce tutoriel est destiné à toute personne, qui si elle le veut, devrait 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 veut, devrait 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é\\
  
-  * 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.).\\+  * 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 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.\\+  * 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 elle mérite une attention certaine.\\+  * Nous allons aborder la partie sécurité au plus simple, mais elle mérite une attention certaine.
  
-  * 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é.\\+  * 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 **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.\\+  * 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. 
 +  
 +  * **ATTENTION LE FORMAT DES SOURCES COMPRESSÉES PEUVENT CHANGER SUR LES SITES DE TÉLÉCHARGEMENT,​** si c'est le cas changez les ''​.xz''​ par ''​.gz''​ ou autres extentions, et si ce ne sont pas des archives TAR, tapez les commandes de décompression adaptées au format.
  
 ===== 2 C'est parti! Prérequis! ===== ===== 2 C'est parti! Prérequis! =====
Ligne 25: Ligne 26:
 ==== 2.1 Les Dépendances ==== ==== 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)\\+Alors déjà, soyez sûr avant de commencer que vous avez suffisamment ​d'​espace ​libre pour les dépendances mais aussi pour la compilation ​qui créera ​des paquets (10GB ou plus conseillés)
 + 
 +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 libncurses-dev libelf-dev flex bison lsb-release rsync</​code>​ 
 + 
 +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>​
  
-Il nous faudra donc ensuite, installer des dépendances ​nécessaires à la compilation (en root)\\+Cela installera les dépendances ​exactes du kernel packagé dans debian; dépendances choisies et utilisées par les mainteneurs.
  
-<code root>apt install build-essential fakeroot dpkg-dev libssl-dev bc gnupg dirmngr libncurses5-dev </code>+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 ====
  
-Nous allons créer un repertoire ​de compilation,​ c'est très fortemment ​conseillé puis nous allons aller dedans (en user!!)+Nous allons créer un répertoire ​de compilation,​ c'est très fortement ​conseillépuis nous allons aller dedans (en user!!)
  
 <code user>​mkdir ~/​compilation && cd ~/​compilation</​code>​ <code user>​mkdir ~/​compilation && cd ~/​compilation</​code>​
Ligne 39: Ligne 48:
 ==== 2.3 Les sources ==== ==== 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. ​\\ +Bien sûril nous faut télécharger ​
-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''​\\+  * 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 exempleles 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 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 47: Ligne 60:
 Par simplicité dans les commandes suivantes, nous allons taper une petite commande dans un terminal (cette fois en user)\\ 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''​**\\ **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>​+<​note ​importante>**Si vous utilisez d'​autres sources que le kernel de kernel.orgvous 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>​ <code user>​kversion=X.X.X</​code>​
Ligne 53: Ligne 66:
 ==== 2.4 Vérification de l'​intégrité du kernel /!\ Important pour la sécurité! ==== ==== 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 +Maintenant nous allons passer à la vérification des sources, pour prouver l'intégrité ​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+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 tutoriel (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 avez utilisé les sources de kernel.org (voir la sous-étape ​précédente), vous n'avez qu'a copier-coller ​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.\\+Si vous n'avez pas utilisé les sources du kernel.orgvoir l'​encadré /!\ précédent.
  
 Donc là nous allons commencer la vérification (en user) Donc là nous allons commencer la vérification (en user)
Ligne 63: Ligne 76:
 <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\\+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)\\+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
Ligne 71: Ligne 84:
 gpg: Can't check signature: Pas de clef publique</​code>​ 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 +Là nous pouvons voir que vous n'avez pas de clef publique et qu'il ne peut pas checker la signature.\\ 
-Nous allons donc la chercher :-)\\+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)\\+**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>​
  
-Retour toujours de **l'​exemple**,​ vous devriez avoir un retour similaire\\+Retour toujours de **l'​exemple**,​ vous devriez avoir un retour similaire.
  
 <​code>​gpg:​ Signature made mer. 03 mai 2017 17:38:11 CEST <​code>​gpg:​ Signature made mer. 03 mai 2017 17:38:11 CEST
Ligne 88: Ligne 101:
  
 Maintenant dans ce retour et normalement dans le votre, vous devriez voir ''​**Good signature from....**''​ \\ 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\\+Cela montre que votre signature est vérifiée. 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\\+Dans le 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''​\\+Par contre nous pouvons ignorer le ''​WARNING''​.
  
 ===== 3 Décompression et préparation des sources pour la compilation du kernel! ===== ===== 3 Décompression et préparation des sources pour la compilation du kernel! =====
Ligne 98: Ligne 111:
 ==== 3.1 Décompression ==== ==== 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\\+Nous avons fini les prérequis, nous allons maintenant préparer nos sources pour la compilation. Nous allons 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>​ <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 ====
  
-Maintenant, nous allons configurer notre kernel avec nos options voulues (ici comme presque toujours, les commandes seront appliquées en user)\\+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\\+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>​ <code user>​make olddefconfig</​code>​
  
-Cette commande va chercher la configuration de votre kernel actuel et met toutes les nouvelles options en "par default"​\\+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\\+Pour les plus expérimentés,​ ou les personnes bidouilleuse,​ ou même encore les personnes qui ont besoin ​d'​options activées en particulier,​ vous pouvez faire cette commande ​:
  
 <code user>​make menuconfig</​code>​ <code user>​make menuconfig</​code>​
  
-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>​
  
-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 :)\\+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**\\+**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\\+Pour ce faire nous allons faire la commande suivante ​:
  
 <code user>​./​scripts/​config -d CONFIG_DEBUG_INFO</​code>​ <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. \\ +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 :-)\\+Vous pouvez passer en 4.2. Nous avons commencé à optimiser le temps, nous allons continuer :-)
  
 ===== 4 C'est parti pour la compilation! La fameuse! (toujours en user et oui!) ===== ===== 4 C'est parti pour la compilation! La fameuse! (toujours en user et oui!) =====
  
-<note important>​Il est fort possible que nous ayez des questions a répondre ​au moment de la compilation,​ tapez ''​**entrée**''</​note>​+<note important>​Il est fort possible que vous ayez des réponses à donner ​au moment de la compilation,​ tapez ''​**entrée**''​</​note>​ 
 +<note warning>​Maintenant,​ **fakeroot doit être installé mais se fait automatiquement** (testé 4.16 et 4.17-rc1) donc si en compilant **une version ancienne**, vous avez une erreur, ajoutez fakeroot avant la commande de compilation</​note>​
  
-==== 4.1 Pour la compilation bourin (indiquée soulignée et gras dans la partie ​précédante) ====+==== 4.1 Pour la compilation bourin (indiquée soulignée et gras dans la partie ​précédente) ====
  
-Nous pouvons donc nous mettre à compiler\\+Nous pouvons donc nous mettre à compiler ​:
  
-<code user>fakeroot ​make deb-pkg -j$(nproc) LOCALVERSION=-$(dpkg --print-architecture) KDEB_PKGVERSION=$(make kernelversion)-1</​code>​+<code user>​make deb-pkg -j"$(nproc)" ​LOCALVERSION=-"$(dpkg --print-architecture)" ​KDEB_PKGVERSION="$(make kernelversion)-1"</​code>​
  
 <​note>//​Maintenant,​ suivant la puissance de votre processeur, cela va prendre un peu de temps (10 min si vous avez un processeur très puissant genre intel core i7 overclocké ou amd ryzen, et une semaine pour un pIImmx, en tout cas dans la plupart des cas des machines actuelles, c'est environ entre 1 et 4h de compilation). <​note>//​Maintenant,​ suivant la puissance de votre processeur, cela va prendre un peu de temps (10 min si vous avez un processeur très puissant genre intel core i7 overclocké ou amd ryzen, et une semaine pour un pIImmx, en tout cas dans la plupart des cas des machines actuelles, c'est environ entre 1 et 4h de compilation).
 Vous avez donc le temps de boire un thé ou un café, manger des Chocos-DF et d'​écouter du hard-rock!!//</​note>​ Vous avez donc le temps de boire un thé ou un café, manger des Chocos-DF et d'​écouter du hard-rock!!//</​note>​
  
-Ensuite, passez à __**l'​étape 4.3**__ si vous voulez explications simples pour juste certaines parties de la commande\\ +Ensuite, passez à __**l'​étape 4.3**__ si vous voulez ​des explications simples pour juste certaines parties de la commande\\ 
-Sinon passez directement à __**l'​étape 5**__\\+Sinon passez directement à __**l'​étape 5**__
  
 ==== 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
  
-<code user>fakeroot ​make bindeb-pkg -j$(nproc) LOCALVERSION=-$(dpkg --print-architecture) KDEB_PKGVERSION=$(make kernelversion)-1</​code>​+<code user>​make bindeb-pkg -j"$(nproc)" ​LOCALVERSION=-"$(dpkg --print-architecture)" ​KDEB_PKGVERSION="$(make kernelversion)-1"</​code>​
  
 <​note>//​Maintenant,​ suivant la puissance de votre processeur, cela va prendre un peu de temps (10 min si vous avez un processeur très puissant genre intel core i7 overclocké ou amd ryzen, et une semaine pour un pIImmx, en tout cas dans la plupart des cas des machines actuelles, c'est environ entre 1 et 4h de compilation). <​note>//​Maintenant,​ suivant la puissance de votre processeur, cela va prendre un peu de temps (10 min si vous avez un processeur très puissant genre intel core i7 overclocké ou amd ryzen, et une semaine pour un pIImmx, en tout cas dans la plupart des cas des machines actuelles, c'est environ entre 1 et 4h de compilation).
 Vous avez donc le temps de boire un thé ou un café, manger des Chocos-DF et d'​écouter du hard-rock!!//</​note>​ Vous avez donc le temps de boire un thé ou un café, manger des Chocos-DF et d'​écouter du hard-rock!!//</​note>​
  
-Ensuite, passez à __**l'​étape suivante (4.3)**__ si vous voulez explications simples pour juste certaines parties de la commande\\ +Ensuite, passez à __**l'​étape suivante (4.3)**__ si vous voulez ​des explications simples pour juste certaines parties de la commande\\ 
-Sinon passez directement à __**l'​étape 5**__\\+Sinon passez directement à __**l'​étape 5**__
  
 ==== 4.3 Explications basiques ==== ==== 4.3 Explications basiques ====
  
-  * ''​**-j$(nproc)**''​ prend le nombre de threads total de votre processeur (la compilation sera la plus rapide possible), pour les connaisseurs,​ vous pouvez mettre ''​**-jX**''​ en remplaçant X par le nombre de cores que vous voulez allouer dans la limite du nombre de threads maximums, **c'​est optionnel sans cet argument, cela n'​utilisera qu'un seul thread** ​\\+  * ''​**-j"$(nproc)"**''​ prend le nombre de threads total de votre processeur (la compilation sera la plus rapide possible), pour les connaisseurs,​ vous pouvez mettre ''​**-jX**''​ en remplaçant X par le nombre de cores que vous voulez allouer dans la limite du nombre de threads maximums, **c'​est optionnel sans cet argument, cela n'​utilisera qu'un seul thread** ​ 
 +  
 +  * ''​**LOCALVERSION=-"​$(dpkg --print-architecture)"​**''​ cela donne le nom custom de votre architecture,​ vous pouvez aussi mettre un nom custom sans majuscules derrière ''​**LOCALVERSION=-**'',​ c'est **un argument optionnel**
  
-  * ''​**LOCALVERSION=-$(dpkg --print-architecture)**'' ​cela donne le nom custom de votre architecture,​ vous pouvez aussi mettre un nom custom sans majuscules derrière ​''​**LOCALVERSION=-**''​c'​est ​** un argument ​optionnel**\\+  * ''​**KDEB_PKGVERSION="$(make kernelversion)-1"**'' ​cet argument sert à versionner ​le kernel ​''​**1**'' ​(soit version 1) **c'​est ​encore ​optionnel ​mais il est conseillé** 
  
-  * ''​**KDEB_PKGVERSION=$(make kernelversion)-1**''​ cet argument sert à versionner le kernel ''​**1**''​ (soit version 1) **c'​est encore optionnel mais il est conseillé** \\+===== 5 Installation ou désinstallation des paquets =====
  
-===== 5 Installation ou déinstallation des paquets ===== +Tout d'​abord nous devons aller dans le répertoire ​précédent
- +
-Tout d'​abord nous devons aller dans le répertoire ​précédant+
  
 <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.** ​+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éinstaller:+Pour désinstaller:
  
 <code root>​dpkg -P *.deb</​code>​ <code root>​dpkg -P *.deb</​code>​
Ligne 189: Ligne 207:
 **/!\ À bien être dans le bon répertoire /!\**  **/!\ À bien être dans le bon répertoire /!\** 
  
-__Vous ​pouver ​aussi déinstaller ​avec apt.__+__Vous ​pouvez ​aussi désinstaller ​avec apt.__
  
-<note warning>​Moi sur la plupart des macines ​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></​note>​+<note warning>​Moisur la plupart des machines ​sur lesquelles j'ai appliqué le tutorielj'​avais ensuite un message au boot de ''​pcspkr is already registered''​. Du coupj'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 207: Ligne 225:
 // # potentially be installed in multiple flavours counting as one kernel.//''​ // # potentially be installed in multiple flavours counting as one kernel.//''​
  
-Ce script n'est peut-être présent que sur Stretch, pas sur Jessie ​(à vérifier)+Ce script n'est peut-être présent que sur Stretch, pas sur Jessie ​FIXME
  
 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
  
-Pas testé, mais logiquement ça pourrait ressembler à ça : 
-<code root>mv /​etc/​kernel/​postinst.d/​apt-auto-removal /​etc/​kernel/​postinst.d/​apt-auto-removal.bak 
-ln -s /dev/null /​etc/​kernel/​postinst.d/​apt-auto-removal</​code>​ 
  
 ===== Conclusion et Sources ===== ===== Conclusion et Sources =====
Ligne 222: Ligne 237:
 **Bravo! vous avez une machine avec le kernel de votre choix!** **Bravo! vous avez une machine avec le kernel de votre choix!**
  
-**voir aussi+**À voir aussi
 [[https://​debian-handbook.info/​browse/​fr-FR/​stable/​sect.kernel-compilation.html|ce lien en section 8.10.4]], [[https://​debian-handbook.info/​browse/​fr-FR/​stable/​sect.kernel-compilation.html|ce lien en section 8.10.4]],
-Toute la page est intéressante pour tous les Fous-faciles! :-)**+Toute la page est intéressante pour tous les Fous-faciles! :-)\\ 
 +[[https://​www.kernel.org/​doc/​html/​latest/​index.html|La doc officielle de kernel.org]]\\ 
 +[[https://​www.kernel.org/​doc/​html/​latest/​process/​changes.html#​current-minimal-requirements|En particulier,​ les dépendances minimums pour ceux qui tenteraient sur n'​importe quelle distribution]]\\ 
 +[[https://​www.kernel.org/​doc/​html/​latest/​process/​applying-patches.html|Et enfin pour patcher]] 
 +** 
 + 
doc/systeme/kernel/compiler.txt · Dernière modification: 01/10/2023 11:30 par captnfab

Pied de page des forums

Propulsé par FluxBB