Page suivantePage pr�c�denteTable des mati�res

5. Mettre � jour le noyau

5.1 Appliquer un patch

Les nouvelles versions du noyau sont distribu�es sous la forme de patches. Par exemple, si vous poss�dez la version 1.1.45, et que vous remarquez qu'il existe un "patch46.gz", cela signifie que vous pouvez passer � la version 1.1.46 en appliquant ce patch. Vous devriez faire avant une sauvegarde de votre arborescence des sources du noyau ("make clean" puis "cd /usr/src; tar zcf old-tree.tar.gz linux" va produire une archive compress�e).

Poursuivons avec cet exemple et supposons que vous ayez mis le fichier "patch46.gz" dans /usr/src. Allez dans /usr/src et faites un "zcat patch46.gz | patch -p0" (ou "patch -p0 < patch46" si le patch n'est pas compress�). Vous verrez alors une liste de messages vous indiquant les essais de modifications. Cela marche ou pas (en principe oui !). G�n�ralement, cela va trop vite pour lire, et on ne sait pas trop si �a a march�. Vous pouvez utiliser l'option -s de patch qui lui indique qu'il ne doit afficher que les erreurs (vous n'avez pas grand chose � faire des "h�h�, mon ordinateur est en train de faire quelque chose...!"). Pour v�rifier que tout s'est pass� sans encombre, allez dans /usr/src/linux et cherchez les fichiers ayant pour extension .rej. Quelques versions de patch (vieilles versions) utilisent # pour les fichiers rejet�s. Vous pouvez utiliser "find" pour les trouver :

 find .  -name '*.rej' -print
vous en donnera la liste avec le chemin pour y acc�der.

Si tout a march�, faites un "make clean", "config," et "dep" comme d�crit dans les sections 3 et 4.

La commande patch poss�de quelques options. Comme indiqu� ci-dessus, patch -s supprime tous les messages sauf les erreurs. Si vous stockez les sources de votre noyau dans un autre r�pertoire que /usr/src/linux, un patch -p1 dans ce r�pertoire fera les choses proprement. Les autres options sont bien document�es dans les pages de manuel.

5.2 Si quelque chose ne fonctionne pas

(Note : cette section traite plut�t des noyaux assez anciens)

Le probl�me le plus fr�quent qui se pr�sentait �tait lorsqu'un patch modifiait le fichier "config.in" et que vous aviez chang� les options pour mieux coller � votre machine. En principe, �a ne devrait plus trop se produire, mais avec les anciennes versions... Pour r�soudre ce probl�me, jetez un coup d'oeil au fichier config.in.rej et regardez son contenu. Le changement sera indiqu� par "+" et "-" au d�but d'une ligne. Regardez ces lignes et retenez si elles sont marqu�es "y" ou "n". Maintenant, �ditez config.in, et changez les "y" en "n" et les "n" en "y" lorsque cela est n�cessaire. Faites un

 patch -p0 < config.in.rej
et si cela fonctionne ("no fails"), alors vous pouvez continuer avec la configuration et la compilation. Le fichier config.in.rej restera, mais vous pouvez le d�truire.

Si vous avez d'autres probl�mes, vous avez peut-�tre install� un patch d�fectueux. Si la commande patch indique "previously applied patch detected: Assume -R?", vous �tes probablement en train d'appliquer un patch d�j� appliqu�. Si vous r�pondez "y", cela risque de d�truire votre source et il vous faudra r�cup�rer un source complet (vous auriez peut-�tre d� commencer par l�).

Pour revenir en arri�re (d�patcher), faites un "patch -R" sur le patch original.

La meilleure chose � faire lorsqu'un patch d�truit tout est de repartir d'un noyau initial tout neuf ! (par exemple, � partir du fichier linux-x.y.z.tar.gz).

5.3 Comment se d�barasser des fichiers .orig ?

Apr�s avoir appliqu� quelques patches, les fichiers .orig vont commencer � s'empiler. Par exemple, j'en �tais � la version 1.1.51 et la derni�re fois que j'avais fait le m�nage, c'�tait avec la version 1.1.48 (je crois...). D�truire les fichiers .orig a permis de r�cup�rer plus d'un demi M�ga octets.

 find .  -name '*.orig' -exec rm -f {} ';'
fera cela pour vous. Quelques versions de patch qui utilisent # pour les rejets utilisent un tilde � la place de .orig.

Il y a d'autres mani�res (meilleures ?) pour se d�barrasser des fichiers .orig en utilisant le programme GNU xargs :

 find .  -name '*.orig' | xargs rm
ou la m�thode s�re mais un peu plus verbeuse :
 find . -name '*.orig' -print0 | xargs --null rm --

5.4 Autres patches

Il y a d'autres patches (je les appellerai "non-standards") que ceux distribu�s par Linus. Si vous les appliquez, les patches Linus risquent de ne plus marcher correctement et vous serez oblig� soit de les enlever, soit d'adapter les patches. C'est g�n�ralement un travail assez p�nible pour les novices, aussi revenir aux anciennes sources avant d'appliquer les patches de Linux semble �tre une bonne solution. Apr�s, vous pouvez regarder si les patches non standards fonctionnent. S'ils ne fonctionnent pas, vous pouvez revenir � l'ancienne version, ou essayer de modifier le patch pour le faire fonctionner, ou encore attendre qu'un nouveau patch arrive.

Vous entendrez probablement parler de ces patches non standards. J'utilisais le patch "noblink" car j'ai horreur des curseurs qui clignotent (ce patch est (ou bien �tait) mis � jour fr�quemment pour les nouveaux noyaux). Les pilotes de p�riph�riques �tant de plus d�velopp�s sous la forme de modules chargeables, le nombre de patches "non standards" d�cro�t.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:25