Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

Bienvenue invité
 

Langue

 

Le Forum

Vous n'êtes pas identifié.

  • Index
  •  » Tutoriaux
  •  » [Noyau] Appliquer un patch sur les sources (Wiki)

#1 17 Oct 2004 23:53:08

Swebian
Invité
 

[Noyau] Appliquer un patch sur les sources (Wiki)

Ce didacticiel se trouve sur notre wiki : http://wiki.swisslinux.org/documentation/kernel_patch (calimarno, 3.12.2006


Comment appliquer un patch ?

La réponse à cette question dépend fortement de la composition du patch, spécialement du répertoire à partir duquel le patch à été créé. De manière général, les patches sont créer contre la racine de l'arborescence  des sources (/usr/src/linux) et la suite de ce tutorial le considère comme tel. Il est donc important de créer un lien symbolique du  répertoire des sources vers le dossier /usr/src/linux. Pour réaliser cela, on peut par exemple le faire comme ça:

cd /usr/src
ln -s kernel2681 linux


Par exemple, vous vener de dépacketer un tarball du nouveau noyau 2.6.8.1 et vous voulez y appliquer dessus le patch "grille_pain" (exemple fictif) qui vous permettra de faire tourner votre tout nouveau grille-pain Electrolux grâce à Linux big_smile

On fera donc comme ceci :

cd /usr/src/linux
bzip2 -dc /usr/src/grille_pain-1.0.0.bz2 | patch -p1 --dry-run


J'ai utilisé l'option --dry-run qui permet de contrôler que l'application du patch se fasse correctement. Ce qui peut parfois sauver la vie lorsque un mauvais patch ne s'est que partiellement greffé sur vos sources. L'option -p1 enlève une partie des noms de répertoire pour chaque fichier modifié (voir la page man patch(1) pour plus de détails sur cette option). Maintenant qu'on à controllé le fait qu'il ait dû s'appliquer correctement, on lance la commande:

    bzip2 -dc /usr/src/grille_pain-1.0.0.bz2 | patch -p1

pour l'appliquer. C'est terminé !

C'est en fait très simple avec les patches standart. On peut même utiliser le script linux/scripts/patch-kernel qui se trouve dans les sources du noyau, qui nous permet de faire automatiquement les patches pour nous.

La situation avec les autres patches n'est pas toujours très simple. Par exemple les patchs linux "prepatches" (qu'on trouve dans  pub/linux/kernel/testing) ne sont pas incrémentatifs. Sans trop rentrer dans les détails, en prenant l'exemple du prepatch "pre8.bz2" il doit apprendre apposé dessus le tarball de la dernière version complète du noyau.

Effacer un patch (restaurer les sources)


Vous avez appliqué des patches qui ne vous convenaient pas et vous souhaitez maintenant les enlever. Il suffit de passer l'option -R à la commande patch, avec le même fichier de patch, afin d'enlever les modifications dans vos sources.

Dernière modification par Comité (03 Dec 2006 17:03:08)

 
  • Index
  •  » Tutoriaux
  •  » [Noyau] Appliquer un patch sur les sources (Wiki)

Pied de page des forums

Powered by FluxBB