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 →
Ci-dessous, les différences entre deux révisions de la page.
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 [08/05/2017 20:44] naguam [Étape 3 Téléchargement et vérification de l'intégrité du kernel] |
doc:systeme:kernel:compiler [08/05/2017 21:11] naguam [Étape 8 Contemplation] |
||
---|---|---|---|
Ligne 32: | Ligne 32: | ||
======EN COURS DE MISE À JOUR====== | ======EN COURS DE MISE À JOUR====== | ||
- | ===== Étape 1 Dépendances ===== | + | ===== Étape 1 Prérequis et Dépendances ===== |
+ | |||
+ | Prévoir un peu de stockage (10GB pour prévoir large) car il y aura une création des paquets du kernel :-) | ||
Installer les paquets : | Installer les paquets : | ||
Ligne 73: | Ligne 75: | ||
<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> | <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: | + | Pour automatiser un peu, voici un exemple avec le kernel 4.10.14 (à changer par la version du kernel que vous voulez: |
<code user>cd ~ # on va dans son répertoire perso | <code user>cd ~ # on va dans son répertoire perso | ||
kversion=4.10.14 # la version du kernel à changer | kversion=4.10.14 # la version du kernel à changer | ||
Ligne 100: | Ligne 102: | ||
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 : | + | Voilà, super la signature est ok :\\ |
- | <quote>Good signature from "Greg Kroah-Hartman...</quote> | + | ''Good signature from "Greg Kroah-Hartman...''\\ |
- | Même si la clé n'est pas signée avec une signature de confiance. | + | Même si la clé n'est pas signée avec une signature de confiance.\\ |
En cas de **"BAD signature"**, vérifier: | En cas de **"BAD signature"**, vérifier: | ||
Ligne 109: | Ligne 111: | ||
* contacter ftpadmin@kernel.org immédiatement pour investigation | * contacter ftpadmin@kernel.org immédiatement pour investigation | ||
- | <quote> WARNING: This key is not certified with a trusted signature</quote> | + | ''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é. \\ | 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: | Voir les signataires: | ||
<code user>gpg --list-sigs ABAF11C65A2970B130ABE3C479BE3E4300411886</code> | <code user>gpg --list-sigs ABAF11C65A2970B130ABE3C479BE3E4300411886</code> | ||
- | ===== Étape 5 Décompression ===== | + | ===== Étape 4 Décompression ===== |
On [[doc:systeme:tar|décompresse le kernel téléchargé]] avec cette commande : | On [[doc:systeme:tar|décompresse le kernel téléchargé]] avec cette commande : | ||
Ligne 121: | Ligne 123: | ||
<code user>cd linux-X.X-X/</code> | <code user>cd linux-X.X-X/</code> | ||
- | ===== Étape 6 Configuration des options du noyau ===== | + | ===== Étape 5 Configuration des options du noyau ===== |
Maintenant, dans cette étape, on va s'occuper de la configuration du kernel : | Maintenant, dans cette étape, on va s'occuper de la configuration du kernel : | ||
- | ==== 6.1 Options actuelles ==== | + | ==== 5.1 Options actuelles ==== |
Il est conseillé de restaurer la configuration actuelle, pour ce faire, on peut faire au choix les commandes de type **make oldconfig** suivantes : | Il est conseillé de restaurer la configuration actuelle, pour ce faire, on peut faire au choix les commandes de type **make oldconfig** suivantes : | ||
Ligne 137: | Ligne 139: | ||
Puis faire une des trois commandes suivantes **au choix** : | Puis faire une des trois commandes suivantes **au choix** : | ||
<code user>make olddefconfig</code> | <code user>make olddefconfig</code> | ||
- | * Cette commande s'exécutera en choisissant les valeurs par defaut en une fois\\ (les lignes de validations par ''Y'' ou ''N'' seront cachées). | + | * Cette commande s'exécutera en choisissant les valeurs par defaut en une fois\\ (les lignes de validations par ''Y'' ou ''N'' seront cachées). |
Ou : | Ou : | ||
<code user>make oldnoconfig</code> | <code user>make oldnoconfig</code> | ||
- | * Cette comande répond ''N'' à tout les nouveaux arguments, c'est utile surtout si vous avez un serveur parfaitement stable et que vous voulez mettre un kernel LTS ''Long Term Support'' à la place d'un kernel en fin de support. | + | * Cette comande répond ''N'' à tout les nouveaux arguments, c'est utile surtout si vous avez un serveur parfaitement stable et que vous voulez mettre un kernel LTS ''Long Term Support'' à la place d'un kernel en fin de support. |
Ou encore : | Ou encore : | ||
<code user>make oldconfig</code> | <code user>make oldconfig</code> | ||
- | * Cette commande vous demandera de valider les nouvelles options (ajoutées dans le nouveau kernel) par ''Y'' ou par ''N'' ou/et d'autres options encore. | + | * Cette commande vous demandera de valider les nouvelles options (ajoutées dans le nouveau kernel) par ''Y'' ou par ''N'' ou/et d'autres options encore. |
<note tip>Si vous avez un doute, appuyez sur la touche ''entrée''.</note> | <note tip>Si vous avez un doute, appuyez sur la touche ''entrée''.</note> | ||
Ligne 153: | Ligne 154: | ||
Pour les plus avisés et/ou les bidouilleurs-fous, vous pouvez gratter à la main dans la configuration du kernel par cette interface //semi-graphique// de configuration : | Pour les plus avisés et/ou les bidouilleurs-fous, vous pouvez gratter à la main dans la configuration du kernel par cette interface //semi-graphique// de configuration : | ||
- | * '' make menuconfig'' en console ncurse | + | * '' make menuconfig'' en console ncurse |
Vous pouvez aussi utilisez une interface graphique plus confortable pour naviguer dans toutes ces options, selon le DE : | Vous pouvez aussi utilisez une interface graphique plus confortable pour naviguer dans toutes ces options, selon le DE : | ||
- | * ''make gconfig'' en graphique sous gnome, xfce ou autre | + | * ''make gconfig'' en graphique pour interfaces ou DE basés sur gtk. |
- | * ''make xconfig'' en graphique sous kde | + | * ''make xconfig'' en graphique pour interfaces ou DE basés sur qt. |
- | Vous passerez un agéable moment à parcourir la documentation des sources pour découvrir les options possibles ou les matériels qu'il est possible de prendre en compte en raoutant des options. | + | Vous passerez un agéable moment à parcourir la documentation des sources pour découvrir les options possibles ou les matériels qu'il est possible de prendre en compte en rajoutant des options. |
- | * consulter ''~/kernel/linux-4.X.X/README'' | + | * consulter ''~/kernel/linux-4.X.X/README'' |
- | * l'index de la documentation du kernel se trouve dans ''~/kernel/linux-4.x/Documentation/00-INDEX'', à lire pour aller plus loin | + | * l'index de la documentation du kernel se trouve dans ''~/kernel/linux-4.x/Documentation/00-INDEX'', à lire pour aller plus loin |
Remarque: à partir du noyau 4.10, la doc intéressante est déplacée, mais c'est indiqué dans le ''README'' | Remarque: à partir du noyau 4.10, la doc intéressante est déplacée, mais c'est indiqué dans le ''README'' | ||
- | ==== 6.2 désactiver les clés du kernel ==== | + | ==== 5.2 désactiver les clés du kernel ==== |
Obligatoire pour éviter erreur de compilation et éventuellement utiliser ses clés propres | Obligatoire pour éviter erreur de compilation et éventuellement utiliser ses clés propres | ||
Ligne 171: | Ligne 172: | ||
<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> | ||
- | ==== 6.3 Eviter de compiler debug ==== | + | ==== 5.3 Ne pas compiler de debug ==== |
Ne pas compiler le fichier de symboles dbg : | Ne pas compiler le fichier de symboles dbg : | ||
<code user>./scripts/config -d CONFIG_DEBUG_INFO</code> | <code user>./scripts/config -d CONFIG_DEBUG_INFO</code> | ||
- | ce n'est pas obligatoire, mais par exemple, on va passer de 2h10 à 1h20 de compil, soit un gain de 38%. | + | ce n'est pas obligatoire, mais permet un gain de 38%. |
- | ===== Étape 7 Compilation ===== | + | ===== Étape 6 Compilation ===== |
Nous allons maintenant pouvoir nous mettre à compiler ! \\ | Nous allons maintenant pouvoir nous mettre à compiler ! \\ | ||
Ligne 201: | Ligne 202: | ||
//Vous avez donc le temps de boire un thé ou un café, manger des Chocos-DF et d'écouter du hard-rock// :-O | //Vous avez donc le temps de boire un thé ou un café, manger des Chocos-DF et d'écouter du hard-rock// :-O | ||
- | ===== Étape 8 Contemplation ===== | + | ===== Étape 7 Contemplation ===== |
Maintenant on remonte pour voir les fichier crées : | Maintenant on remonte pour voir les fichier crées : | ||
Ligne 234: | Ligne 235: | ||
- | <note>__Dans ''/etc/kernel/postinst.d/apt-auto-removal'' :__\\ | + | <note>__Dans ''/etc/kernel/postinst.d/apt-auto-removal'' :__''\\ |
// # Mark as not-for-autoremoval those kernel packages that are://\\ | // # Mark as not-for-autoremoval those kernel packages that are://\\ | ||
// # - the currently booted version//\\ | // # - the currently booted version//\\ | ||
Ligne 244: | Ligne 245: | ||
// # second-latest kernel, we install the latest kernel in an upgrade), but//\\ | // # second-latest kernel, we install the latest kernel in an upgrade), but//\\ | ||
// # can save up to four. Kernel refers here to a distinct release, which can//\\ | // # can save up to four. Kernel refers here to a distinct release, which can//\\ | ||
- | // # 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 (à vérifier) |