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:36] naguam [Étape 4 Décompression] |
doc:systeme:kernel:compiler [12/05/2017 21:06] naguam [Étape 6 Compilation] |
||
---|---|---|---|
Ligne 52: | Ligne 52: | ||
<code root>apt install libqt4-dev</code> | <code root>apt install libqt4-dev</code> | ||
quand nous seront à l'**étape 5** nous pourrons faire: | quand nous seront à l'**étape 5** nous pourrons faire: | ||
- | <code root>make xconfig</code> | + | <code user>make xconfig</code> |
* Pour les DE basés sur **gtk**: | * Pour les DE basés sur **gtk**: | ||
<code root>apt install libgtk2.0-dev libglade2-dev</code> | <code root>apt install libgtk2.0-dev libglade2-dev</code> | ||
quand nous seront à l'**étape 5** nous pourrons faire: | quand nous seront à l'**étape 5** nous pourrons faire: | ||
- | <code root>make gconfig</code> | + | <code user>make gconfig</code> |
===== Étape 2 Création répertoire de compilation ===== | ===== Étape 2 Création répertoire de compilation ===== | ||
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 84: | Ligne 83: | ||
Ensuite vérification (à partir de l'exemple précédant), à reproduire en fonction de votre kernel: | Ensuite vérification (à partir de l'exemple précédant), à reproduire en fonction de votre kernel: | ||
- | <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 -</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 | ||
Ligne 95: | Ligne 94: | ||
gpg: imported: 1</code> | gpg: imported: 1</code> | ||
on recommence | on recommence | ||
- | <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 -</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 | ||
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 ~/kernel/</code> | + | <code user>tar -xaf linux-$kversion.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 | ||
- | <code user>cd ~/kernel/linux-X.X-X/</code> | + | <code user>cd linux-$kversion</code> |
===== Étape 5 Configuration des options du noyau ===== | ===== Étape 5 Configuration des options du noyau ===== | ||
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. | ||
+ | <note important> | ||
+ | Vous pouvez aussi aussi remplacer ''deb-pkg'' par ''bindeb-pkg'' cela permettra de ne pas compiler | ||
+ | * Liste à pucelinux...debian.tar.gz | ||
+ | * linux...dsc | ||
+ | * linux...orig.tar.gz | ||
+ | Cela permet d'avoir encore de compiler en moins de temps en plus du temps gagné si vous désactivez le **dgb étape 5.3**</note> | ||
==== Explications ==== | ==== Explications ==== | ||
* **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 \\ | ||
- | 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)''. | + | vous pouvez aussi comme dans l'exemple avec ''nomanecdotique'' remplacer ''nomanecdotique'' par un nom custom, 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 version aux paquets construits à la fin. | * **KDEB_PKGVERSION=$(make kernelversion)-1**, optionnel, donne une version aux paquets construits à la fin. | ||
Ligne 227: | Ligne 233: | ||
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. | ||
<code root>dpkg -i linux-image-X.X-X-architecture_X.X-X-1_architecture.deb linux-headers-X.X-X-architecture_X.X-X-1_architecture.deb</code> | <code root>dpkg -i linux-image-X.X-X-architecture_X.X-X-1_architecture.deb linux-headers-X.X-X-architecture_X.X-X-1_architecture.deb</code> | ||
- | (vous pouvez rajouter les autres paquets après ou directement *.deb si vous voulez tout installer) | + | (vous pouvez rajouter les autres paquets après ou directement *.deb si vous voulez tout installer)\\ |
Pour Déinstaller: | Pour Déinstaller: | ||
- | <code root>dpkg -P linux-image-X.X-X-architecture_X.X-X-1_architecture.deb linux-headers-X.X-X-architecture_X.X-X-1_architecture.deb</code> | + | <code root>dpkg -P linux-image-X.X-X-architecture_X.X-X-1_architecture.deb |
+ | dpkg -P linux-headers-X.X-X-architecture_X.X-X-1_architecture.deb</code> | ||
(vous pouvez rajouter les autres paquets après ou directement *.deb si vous voulez tout déinstaller en faisant attention à bien être dans le bon répertoire)\\ | (vous pouvez rajouter les autres paquets après ou directement *.deb si vous voulez tout déinstaller en faisant attention à bien être dans le bon répertoire)\\ | ||