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:54] naguam [Étape 6 Configuration des options du noyau] |
doc:systeme:kernel:compiler [08/05/2017 21:16] naguam [Étape 5 Configuration des options du noyau] |
||
---|---|---|---|
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 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 131: | Ligne 133: | ||
* **Avec les kernel récents**, sûrement au-dessus de la v4.x, il va chercher automatiquement le .config dans /boot/config-''votreKernelActuellementActifOuPrecedant'' et crée le .config. | * **Avec les kernel récents**, sûrement au-dessus de la v4.x, il va chercher automatiquement le .config dans /boot/config-''votreKernelActuellementActifOuPrecedant'' et crée le .config. | ||
| | ||
- | <note>Pour les kernels plus anciens, il faudra peut-être copier la configuration de votre kernel actuel sous forme de .config</note> | + | <note>Pour les kernels plus anciens, il faudra peut-être copier la configuration de votre kernel actuel sous forme de .config |
- | <code user>cp /boot/config-votreKernelActuellementActifOuPrecedant .config</code> | + | <code user>cp /boot/config-votreKernelActuellementActifOuPrecedant .config</code></note> |
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 159: | Ligne 160: | ||
* ''make xconfig'' en graphique pour interfaces ou DE basés sur qt. | * ''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 195: | Ligne 196: | ||
ce n'est pas obligatoire, mais cela permet d'augmenter la vitesse de compilation, le processeur travaillant en entier sur tout ses cores avec tout ses threads avec cette option. | ce n'est pas obligatoire, mais cela permet d'augmenter la vitesse de compilation, le processeur travaillant en entier sur tout ses cores avec tout ses threads avec cette option. | ||
* **LOCALVERSION=-$(dpkg --print-architecture)**, optionnel, sert à nommer son kernel, au plus près du nommage Debian \\ | * **LOCALVERSION=-$(dpkg --print-architecture)**, optionnel, sert à nommer son kernel, au plus près du nommage Debian \\ | ||
- | vous pouvez utiliser aussi ''nomanecdotique'', mais sans lettres majuscules car sinon à la fin, lors de la construction du paquet, cela fera une belle erreur ''caractère non autorisé = la(les) lettres en majuscule''. | + | vous pouvez utiliser aussi ''nomanecdotique'', mais sans lettre(s) majuscule(s) car sinon à la fin, lors de la construction du paquet, cela fera une belle erreur ''caractère non autorisé = la(les) lettre(s) en majuscule(s)''. |
* **KDEB_PKGVERSION=$(make kernelversion)-1**, optionnel, donne une versions aux paquets construits à la fin. | * **KDEB_PKGVERSION=$(make kernelversion)-1**, optionnel, donne une versions aux paquets construits à la fin. | ||
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 222: | Ligne 223: | ||
Les fichiers se terminant par ''.deb'' sont les paquets installables directement, les autres sont les nouvelles sources, les modifications apportées enregistrées dans le ''.change'' et la signature des clefs. | Les fichiers se terminant par ''.deb'' sont les paquets installables directement, les autres sont les nouvelles sources, les modifications apportées enregistrées dans le ''.change'' et la signature des clefs. | ||
- | ===== Étape 9 Installation et/ou déinstallation du kernel ===== | + | ===== Étape 8 Installation et/ou déinstallation du kernel ===== |
Pour installer le kernel, nous devons au minimum installer l'image et les headers mais je conseille d'installer tout les .deb si vous ne manquez pas d'espace de stockage. | Pour installer le kernel, nous devons au minimum installer l'image et les headers mais je conseille d'installer tout les .deb si vous ne manquez pas d'espace de stockage. | ||
Ligne 233: | Ligne 234: | ||
__Vous pouver aussi déinstaller avec apt.__ | __Vous pouver aussi déinstaller avec apt.__ | ||
- | + | ==== Avertissement ==== | |
- | <note>__Dans ''/etc/kernel/postinst.d/apt-auto-removal'' :__\\ | + | __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) | ||
Ligne 256: | Ligne 257: | ||
<code root>mv /etc/kernel/postinst.d/apt-auto-removal /etc/kernel/postinst.d/apt-auto-removal.bak | <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> | ln -s /dev/null /etc/kernel/postinst.d/apt-auto-removal</code> | ||
- | </note> | + | |
===== Conclusion et Sources ===== | ===== Conclusion et Sources ===== | ||