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.
Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:kernel-linux [21/08/2014 13:43] Hypathie créée |
utilisateurs:hypathie:tutos:kernel-linux [22/08/2014 02:25] martinux_qc [Introduction] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | ====Récupération des sources du noyau ==== | + | |
- | ===Archives téléchargeables=== | + | ==== Récupération des sources du noyau ==== |
+ | |||
+ | === Archives téléchargeables=== | ||
Les sources du noyau sont archivées à cette adresse : [[https://www.kernel.org/|The Linux Kernel Archives]].\\ | Les sources du noyau sont archivées à cette adresse : [[https://www.kernel.org/|The Linux Kernel Archives]].\\ | ||
Ligne 14: | Ligne 17: | ||
-stable [EOL] : versions qui ne sont plus supportées | -stable [EOL] : versions qui ne sont plus supportées | ||
-longterm : support étalé dans le temps | -longterm : support étalé dans le temps | ||
- | -stable : pour récupérer le noyau télécharger [tar.xz] | + | -stable : pour récupérer le noyau téléchargé [tar.xz] |
-mainline (...-rc) : version testée | -mainline (...-rc) : version testée | ||
Ligne 41: | Ligne 44: | ||
</code> | </code> | ||
- | ===Remarques sur Décompression/Compression=== | + | === Remarques sur Décompression/Compression === |
- | * **Plusieurs programme de compression**\\ compression/décompression d'un seul fichier à la fois:\\ | + | |
+ | * **Plusieurs programmes de compression**\\ compression/décompression d'un seul fichier à la fois:\\ | ||
* **gunzip** ; pour le format gz | * **gunzip** ; pour le format gz | ||
* **bzip2** ; pour le format bz2. | * **bzip2** ; pour le format bz2. | ||
Ligne 169: | Ligne 173: | ||
>Il existe le patch "patch-3.8.13.xz" | >Il existe le patch "patch-3.8.13.xz" | ||
+ | |||
* Télécharger le patch : | * Télécharger le patch : | ||
<code user> | <code user> | ||
Ligne 225: | Ligne 230: | ||
__**Patcher avec un patch de version supérieure**__ :\\ | __**Patcher avec un patch de version supérieure**__ :\\ | ||
- | Par exemple pour la version 3.8 on voulait appliquer un patch 3.9.4, il faut d'abord passer à la version 3.9 (sur une 3.8.0 -> patch -p1 < 3.9).\\ | + | S'il est possible à partir d'une version .0 (par exemple 3.8.0)((qu'on trouve sous le nom de 3.9 sur le site "Index of/pub/kernel")) à un correctif éloigné (par exemple 3.8.13), pour une version déjà corrigée (par exemple 3.8.1) il faut passer par tous les intermédiaires (par exemple 3.8.2 ; 3.8.3 ; ... 3.8.13). |
- | Puis à partir de la 3.9.0, on peut appliquer un patch 3.9.4. | + | Pour passer à une version supérieure ("upgrader" de 3.8 à 3.9), il faut par exemple appliquer le patch 3.9 à la version 3.8, mais appliquer un patch 3.9 à une version 3.8.4). |
- | **__Lancer un test de patch__** : | + | Par exemple, pour passer de la version 3.8 à la 3.9 avec le patch "patch-3.9.xz" : |
+ | |||
+ | <code root>cd /usr/src/</code> | ||
+ | <code root>wget https://www.kernel.org/pub/linux/kernel/v3.x/patch-3.9.xz</code> | ||
+ | <code root>unxz patch-3.9.xz</code> | ||
+ | Décompresser "linux-3.8.tar.xz" (ce qui supprime l'ancienne "linux-3.8", qui était une 3.13, du fait qu'on avait déjà appliqué le patch) | ||
+ | <code root>tar -xvJf linux-3.8.tar.xz</code> | ||
+ | <code root>cd linux-3.8</code> | ||
+ | <code root>make kernelversion</code> | ||
+ | <code>3.8.0</code> | ||
+ | <code root>patch -p1 < ../patch-3.9</code> | ||
+ | <code root>make kernelversion</code> | ||
+ | <code>3.9.0</code> | ||
- | <code root>patch -p1 -dry-run < fichier-du-patch</code> | ||
- | S'il est demandé "Reversed (or previous applied) patch detected)! Assume -R? [n]"\\ | ||
- | Il faut taper **''y''** pour avancer jusqu'au bout. Ce message apparaît quand on applique un patch d'une version supérieure ou q'un a déjà appliqué le patch, ou autre erreur. | ||
</note> | </note> | ||
+ | ===Lancer un test de patch=== | ||
+ | |||
+ | <code>patch -p1 --dry-run < fichier-du-patch</code> | ||
+ | |||
+ | Par exemple : | ||
+ | <code root>cd linux-3.8 && patch -p1 --dry-run < ../patch-3.8.13</code> | ||
+ | Il est demandé "Reversed (or previous applied) patch detected)! Assume -R? [n]"\\ | ||
+ | Il faut taper **''y''** pour avancer jusqu'au bout. Ce message apparaît quand on applique un patch d'une version supérieure ou q'un a déjà appliqué le patch, ou autre erreur. | ||
+ | Cette version a déjà été patchée. On supprime le dossier source "linux-3.8" et on décompresse "linux-3.8.tar.xz". | ||
+ | |||
+ | On essaie à nouveau : | ||
+ | <code root>cd linux-3.8 && patch -p1 --dry-run < ../patch-3.8.13</code> | ||
+ | |||
+ | C'est ok donc on lance la commande : | ||
+ | |||
+ | <code root>cd linux-3.8 && patch -p1 --dry-run < ../patch-3.8.13</code> | ||
+ | |||
+ | ===Revenir à une version antérieure ("dé-patcher") === | ||
+ | |||
+ | <code>zcat patch-version | patch -p0 -R</code> | ||
+ | |||
+ | ===Effectuer une sauvegarde avant le patch=== | ||
+ | <code>patch -B oldfile/ -p0 < patch-file</code> | ||
+ | |||
+ | Récupération de la sauvegarde : | ||
+ | <code>diff -ur linux-version oldfiles/linux-version > recover-version-patch</code> | ||
+ | |||
+ | ===Conserver les fichiers d'origine === | ||
+ | |||
+ | <code>patch -b -p0 < fichier-patch</code> | ||
=====Personnalisation du noyau ===== | =====Personnalisation du noyau ===== | ||