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 Les deux révisions suivantes | |||
utilisateurs:hypathie:tutos:kernel-linux [21/08/2014 13:43] Hypathie créée |
utilisateurs:hypathie:tutos:kernel-linux [21/08/2014 19:32] Hypathie [Patch] |
||
---|---|---|---|
Ligne 225: | Ligne 225: | ||
__**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/ && 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 ===== | ||