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 21:31] naguam [Étape 7 Contemplation] |
doc:systeme:kernel:compiler [08/05/2017 23:05] naguam [Étape 6 Compilation] |
||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
* Création par [[user>naguam]] 03/01/2017 | * Création par [[user>naguam]] 03/01/2017 | ||
* Écrit très grande partie par [[user>naguam]] | * Écrit très grande partie par [[user>naguam]] | ||
- | * Testé par [[user>naguam]] le 02/01/2017 | + | * Testé par [[user>naguam]] le 08/05/2017 |
* 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 !)) | * 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 !)) | ||
Ligne 31: | Ligne 31: | ||
<note importante>Nous n'avons pas besoin d'être en root, sauf pour installer les paquets apt au début et le kernel à la fin !</note> | <note importante>Nous n'avons pas besoin d'être en root, sauf pour installer les paquets apt au début et le kernel à la fin !</note> | ||
- | ======EN COURS DE MISE À JOUR====== | + | |
===== Étape 1 Prérequis et Dépendances ===== | ===== Étape 1 Prérequis et Dépendances ===== | ||
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 51: | Ligne 51: | ||
* Pour les DE basés sur **qt**: | * Pour les DE basés sur **qt**: | ||
<code root>apt install libqt4-dev</code> | <code root>apt install libqt4-dev</code> | ||
- | quand nous seront à l'étape FIXME nous pourrons faire: | + | quand nous seront à l'**étape 5** nous pourrons faire: |
<code root>make xconfig</code> | <code root>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 FIXME nous pourrons faire: | + | quand nous seront à l'**étape 5** nous pourrons faire: |
<code root>make gconfig</code> | <code root>make gconfig</code> | ||
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 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> | ||
Ligne 191: | Ligne 190: | ||
* **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 \\ | ||
Ligne 207: | Ligne 206: | ||
<code user>ls</code> | <code user>ls</code> | ||
Vous devriez avoir obtenu les fichiers : | Vous devriez avoir obtenu les fichiers : | ||
- | <code>linux-X.X-X-architecture_X.X-X-1_architecture.changes | + | <code> linux-X.X-X-architecture_X.X-X-1_architecture.changes |
- | * linux-X.X-X-architecture_X.X-X-1.debian.tar.gz | + | linux-X.X-X-architecture_X.X-X-1.debian.tar.gz |
- | * linux-X.X-X-architecture_X.X-X-1.dsc | + | linux-X.X-X-architecture_X.X-X-1.dsc |
- | * linux-X.X-X-architecture_X.X-X-architecture.orig.tar.gz | + | linux-X.X-X-architecture_X.X-X-architecture.orig.tar.gz |
- | * linux-firmware-image-X.X-X-architecture_X.X-X-1_architecture.deb | + | linux-firmware-image-X.X-X-architecture_X.X-X-1_architecture.deb |
- | * linux-headers-X.X-X-architecture_X.X-X-1_architecture.deb | + | linux-headers-X.X-X-architecture_X.X-X-1_architecture.deb |
- | * linux-image-X.X-X-architecture_X.X-X-1_architecture.deb | + | linux-image-X.X-X-architecture_X.X-X-1_architecture.deb |
- | * linux-libc-dev_X.X-X-1_architecture.deb</code> | + | linux-libc-dev_X.X-X-1_architecture.deb</code> |
- | si vous n'avez pas désactivé la compilation de de dbg : | + | |
- | * linux-image-X.X-X-architecture-dbg_X.X-X-1_architecture.deb | + | Si vous n'avez pas désactivé la compilation de de dbg : |
- | sans compter les fichiers qui étaient présents avant. | + | ''linux-image-X.X-X-architecture-dbg_X.X-X-1_architecture.deb'' |
+ | |||
+ | Tout ça sans compter les fichiers qui étaient présents avant. | ||
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. | ||
Ligne 231: | Ligne 232: | ||
__Vous pouver aussi déinstaller avec apt.__ | __Vous pouver aussi déinstaller 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> | ||
==== Avertissement ==== | ==== Avertissement ==== | ||
__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//\\ | ||
// # - the kernel version we've been called for//\\ | // # - the kernel version we've been called for//\\ |