01 02 application de correctifs (patchs) à un noyau
1. Linux LPIC2 noelmace.com
Noël Macé
Formateur et Consultant indépendant expert Unix et FOSS
http://www.noelmace.com
Application de correctifs (patchs) à
un noyau
Noyau Linux
Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
2. Linux LPIC2 noelmace.com
Plan
• Introduction
• Méthode simple
• Tester
• Permettre une récupération
• Restauration à partir de fichiers .orig
3. Linux LPIC2 noelmace.com
Introduction
• Permet de mettre à jour l'image d'un noyau
à partir de sources pré-existantes
• Plus léger donc plus rapide à récupérer qu'un noyau complet.
• Permet d'ajouter ou modifier un ou plusieurs éléments
ajout de fonctionnalités
drivers tiers ou expérimentaux
correction de bugs
etc ...
4. Linux LPIC2 noelmace.com
Méthode simple
• se déplacer dans le dossier source
• décompresser et appliquer le patch
• L'option -p permet de situer le patch par rapport aux sources
-p0 si dans /usr/src
-p1 si dans /usr/src/linux
# cd /usr/src/# cd /usr/src/
# gzip -cd patch-version.gz | patch -p0# gzip -cd patch-version.gz | patch -p0
# bzip2 -dc patch-version.bz2 | patch -p0# bzip2 -dc patch-version.bz2 | patch -p0
# patch -p0 < patch-version# patch -p0 < patch-version
6. Linux LPIC2 noelmace.com
Permettre une récupération
• Plusieurs méthodes, suivant l'application du patch
Méthode de patching simple : appliquer un patch à l'envers
Effectuer une sauvegarde avant le patch
• récupération
Conserver les fichiers d'origine
# zcat patch-2.4.22.gz | patch -p0 -R# zcat patch-2.4.22.gz | patch -p0 -R
# patch -B oldfiles/ -p0 < patch-file# patch -B oldfiles/ -p0 < patch-file
# diff -ur linux-2.4.21 oldfiles/linux-2.4.21 > recover-2.4.21-patch# diff -ur linux-2.4.21 oldfiles/linux-2.4.21 > recover-2.4.21-patch
# patch -b -P0 < fichier_patch# patch -b -P0 < fichier_patch
7. Linux LPIC2 noelmace.com
Restauration à partir de fichiers .orig
for file in $(find linux-2.4.29 | grep orig)
do
FILENAME=$(echo $file | sed 's/.orig//')
mv -f $file $FILENAME
done
for file in $(find linux-2.4.29 | grep orig)
do
FILENAME=$(echo $file | sed 's/.orig//')
mv -f $file $FILENAME
done
8. Linux LPIC2 noelmace.com
Ce qu’on a couvert
• Qu'est qu'un patch.
• Comment appliquer un patch.
• Comment récupérer une image avant patching.
Weight : 1
Description : Candidates should be able to properly patch a kernel to add support for new hardware. This objective also
includes being able to properly remove kernel patches from already patched kernels.
Key Knowledge Areas:
Kernel Makefiles
The following is a partial list of the used files, terms and utilities:
patch
gzip
bzip2
201.3 Patching a kernel
9. Linux LPIC2 noelmace.com
Licence
Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à :
Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Vous êtes libre de :
partager — reproduire, distribuer et communiquer cette œuvre
remixer — adapter l’œuvre
Selon les conditions suivantes :
Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre
originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins
d'en demander expressément la permission).
Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention
première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une
autorisation explicite de l'auteur est requise.
Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de
distribuer votre création que sous une licence identique ou similaire à celle-ci.
Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une
licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs
vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration
de ce support.
10. Linux LPIC2 noelmace.com
Licence
Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à :
Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Vous êtes libre de :
partager — reproduire, distribuer et communiquer cette œuvre
remixer — adapter l’œuvre
Selon les conditions suivantes :
Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre
originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins
d'en demander expressément la permission).
Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention
première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une
autorisation explicite de l'auteur est requise.
Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de
distribuer votre création que sous une licence identique ou similaire à celle-ci.
Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une
licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs
vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration
de ce support.