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 22:04] naguam [Étape 8 Installation et/ou déinstallation du kernel] |
doc:systeme:kernel:compiler [08/05/2017 23:35] naguam [Étape 3 Téléchargement et vérification de l'intégrité du kernel] |
||
---|---|---|---|
Ligne 37: | Ligne 37: | ||
Installer les paquets : | Installer les paquets : | ||
- | <code root>apt install build-essential fakeroot libncurses5-dev dpkg-dev libssl-dev bc gnupg</code> | + | <code root>apt install build-essential fakeroot libncurses5-dev dpkg-dev libssl-dev bc gnupg dirmngr</code> |
C'est-à-dire : | C'est-à-dire : | ||
Ligne 75: | 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 (à changer par la version du kernel que vous voulez: | + | 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>kversion=4.10.14 # la version du kernel à changer |
- | 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.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> | wget https://www.kernel.org/pub/linux/kernel/v${kversion:0:1}.x/linux-$kversion.tar.sign # la signature des sources</code> | ||
Ligne 86: | Ligne 85: | ||
<code user>xz -cd linux-$kversion.tar.xz | gpg --verify linux-$kversion.tar.sign - | grep ^.*key</code> | <code user>xz -cd linux-$kversion.tar.xz | gpg --verify linux-$kversion.tar.sign - | grep ^.*key</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** |
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: | on extrait la clé, **signature inconnue**, on va la chercher: | ||
- | <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 | <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 | gpg: no ultimately trusted keys found | ||
Ligne 98: | Ligne 97: | ||
<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: Good signature from "Greg Kroah-Hartman (Linux kernel stable release signing key) greg@kroah.com" [unknown] | + | 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: WARNING: This key is not certified with a trusted signature! | ||
gpg: There is no indication that the signature belongs to the owner. | gpg: There is no indication that the signature belongs to the owner. | ||
Ligne 118: | Ligne 117: | ||
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 : | ||
- | <code user>tar -xaf linux-X.X-X.tar.xz</code> | + | <code user>tar -xaf linux-X.X-X.tar.xz </code> |
On se **déplace dans le nouveau dossier** créé par la décompression | On se **déplace dans le nouveau dossier** créé par la décompression | ||
Ligne 184: | Ligne 183: | ||
- | <code user>fakeroot make deb-pkg -jX LOCALVERSION=-nomanecdotique KDEB_PKGVERSION=$(make kernelversion)-1</code> | + | <code user>fakeroot make deb-pkg -j$(nproc) LOCALVERSION=-nomanecdotique KDEB_PKGVERSION=$(make kernelversion)-1</code> |
<code user>fakeroot make deb-pkg -j$(nproc) LOCALVERSION=-$(dpkg --print-architecture) KDEB_PKGVERSION=$(make kernelversion)-1</code> | <code user>fakeroot make deb-pkg -j$(nproc) LOCALVERSION=-$(dpkg --print-architecture) KDEB_PKGVERSION=$(make kernelversion)-1</code> | ||
+ | |||
+ | A cause de l'**étape 5 2nde sous-partie** il se pourrait que vous le terminal vous demande de valider ou d'écrire quelque chose, tapez ''**entrée**'' à chaque fois. | ||
==== Explications ==== | ==== Explications ==== | ||
Ligne 191: | Ligne 192: | ||
* **fakeroot** va nous permettre de compiler sans être en ''root'' | * **fakeroot** va nous permettre de compiler sans être en ''root'' | ||
* **make** est l'outil qui va chercher les instructions dans le ''Makefile'' qui va donner les instructions au compilateur. | * **make** est l'outil qui va chercher les instructions dans le ''Makefile'' qui va donner les instructions au compilateur. | ||
- | * ''**-j$(nproc)**'' on attribue tous les ''threads'' possibles \\ | + | * ''**-j$(nproc)**'' on attribue tous les ''threads'' possibles, on peut remplacer ''**$(nproc)**'' par le nombre de threads voulu en ne dépaçant pas le nombre maximum de threads maximum de votre processeur \\ |
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 \\ |