Guide de mise à jour du noyau Gentoo Linux
1.
Introduction
Les noyaux sont une des rares catégories de paquets logiciels disponibles dans
Portage qui nécessitent une invervention manuelle lors des mises à jour.
Portage télécharge et installe pour vous les sources du noyau de votre choix,
mais vous devez ensuite procéder vous-même à la compilation du noyau afin que
ce dernier puisse être utilisé par votre système.
Bien que ce guide soit destiné avant tout aux utilisateurs qui veulent mettre
leur noyau à jour, il peut également être utile à ceux qui veulent passer d'un
type de noyau à un autre.
gentoo-sources est utilisé à titre d'exemple dans le présent
document. Toutefois, les instructions décrites ci-dessous s'appliquent à tous
les paquets logiciels de noyaux disponibles dans l'arbre Portage.
2.
Pourquoi mettre à jour votre noyau ?
De façon générale, mettre un noyau à jour en passant d'une version mineure à
une autre plus récente n'amène pas de changement majeur. Les mises à jour du
noyau sont habituellement réalisées afin de profiter d'une nouvelle
fonctionnalité ou d'un nouveau pilote de périphérique, afin de se protéger
contre une faille de sécurité, ou simplement afin de maintenir un système sain
et à jour.
Même si vous décidez de ne pas mettre votre noyau à jour chaque fois qu'une
nouvelle version est disponible, nous vous recommandons de procéder à des mises
à jour de temps à autre. Il est fortement recommandé de mettre votre noyau à
jour dès qu'un problème de sécurité est corrigé dans une version plus récente.
3.
Obtenir les nouvelles sources avec Portage
La mise à jour des sources d'un noyau se fait de la même façon que la mise à
jour de n'importe quel paquet logiciel : avec le programme emerge.
Vous déciderez probablement de mettre votre noyau à jour lorsque ses sources
apparaîtront dans la liste des mises à jour « world ». Par
exemple, :
Exemple de code 3.1 : De nouvelles sources sont disponibles et affichées dans la liste des mises à jour |
# emerge -Dup world
Calculating dependencies ...done!
[ebuild NS ] sys-kernel/gentoo-sources-2.6.9-r2 [2.6.8-r5]
|
Note :
L'indication NS dans le message ci-dessus signifie que le nouveau noyau sera
installé dans un nouveau SLOT, c'est-à-dire que l'ancien noyau sera laissé tel
quel jusqu'à ce que vous le supprimiez explicitement.
|
Vous pouvez alors aller de l'avant et installer la mise à jour :
Exemple de code 3.2 : Mettre à jour les sources du noyau |
# emerge -u gentoo-sources
|
Les sources du noyau seront installées dans un sous-répertoire de
/usr/src. Dans l'exemple ci-dessus, les sources seraient
installées dans /usr/src/linux-2.6.9-gentoo-r2.
4.
Mettre à jour le lien symbolique /usr/src/linux
Il est nécessaire d'avoir un lien symbolique nommé /usr/src/linux
pointant vers les sources du noyau que vous utilisez.
Portage peut modifier ce lien automatiquement lorsque vous installez un nouveau
noyau. Pour cela, ajoutez le mot-clé symlink à votre variable USE dans le
fichier /etc/make.conf.
Exemple de code 4.1 : Exemple de USE dans /etc/make.conf |
USE="symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2"
|
Une autre méthode consiste à utiliser app-admin/eselect pour modifier le
lien symbolique.
Exemple de code 4.2 : Utilisation de eselect pour gérer le lien symbolique |
# emerge eselect
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.9-gentoo-r1
[2] linux-2.6.9-gentoo-r2
# eselect kernel set 1
|
Si vous tenez vraiment à le modifier vous-même, l'exemple suivant vous montre
comment faire pointer le lien vers linux-2.6.9-gentoo-r2 :
Exemple de code 4.3 : Mise à jour manuelle du lien /usr/src/linux |
# cd /usr/src
# ln -sfn linux-2.6.9-gentoo-r2 linux
|
5.
Configurer, compiler et installer le nouveau noyau
Pour toutes ces étapes, vous pouvez vous référer aux instructions du Manuel Gentoo relatives à la configuration du
noyau et à la configuration du chargeur de démarrage. Ces
instructions sont résumées ci-dessous.
Option 1 : Configuration automatique du noyau avec Genkernel
Si vous utilisez Genkernel, vous n'avez qu'à répéter les étapes que vous avez
effectuées la première fois que vous avez installé votre noyau.
Exécutez Genkernel de façon standard :
Exemple de code 5.1 : Exécuter Genkernel |
# genkernel all
|
Vous pouvez aussi utiliser des paramètres supplémentaires pour activer
certaines fonctionnalités de Genkernel. Par exemple, si vous souhaitez
préciser quelques options du noyau avec menuconfig et si vous voulez
que Genkernel mette à jour la configuration de votre chargeur de démarrage
GRUB automatiquement, exécutez Genkernel avec la commande suivante :
Exemple de code 5.2 : Exécuter Genkernel avec quelques options populaires |
# genkernel --menuconfig --bootloader=grub all
|
Pour plus d'information, consultez le Guide
Genkernel pour Gentoo Linux ou référez-vous au Manuel Gentoo. De nombreuses options peuvent
être sélectionnées dans le fichier de configuration de genkernel :
/etc/genkernel.conf.
Option 2 : Configuration manuelle
Tout d'abord, ouvrez l'utilitaire menuconfig à partir de l'arbre des
sources du noyau :
Exemple de code 5.3 : Exécuter menuconfig |
# cd /usr/src/linux
# make menuconfig
|
Choisissez les options requises pour votre matériel et votre environnement. Si
nécessaire, le chapitre configurer le noyau du Manuel Gentoo vous guidera dans cette procédure.
Ensuite, compilez votre noyau et copiez-le dans votre partition de démarrage.
Encore une fois, référez-vous aux instructions du chapitre configurer le
chargeur de démarrage du Manuel Gentoo
et n'oubliez pas que si votre partition /boot est sur une
partition à part, vous devez la monter partition avant d'y copier le noyau. Si
vous oubliez de le faire, vous ne démarrerez pas sur votre nouveau noyau.
Exemple de code 5.4 : Compiler et installer le nouveau noyau |
# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.9-gentoo-r2
|
Finalement, vous devriez mettre à jour la configuration de votre chargeur de
démarrage par l'ajout d'une entrée pour votre nouveau noyau. (Ne supprimez pas
tout de suite l'entrée référant à votre ancien noyau !) Démontez la
partition /boot. Vous pouvez, cette fois encore, vous référez aux
instructions du Manuel Gentoo.
6.
Réinstaller les modules externes
Si vous utilisez un ou plusieurs modules du noyau qui ne sont pas inclus dans
l'arbre des sources du noyau, mais qui sont plutôt fournis par d'autres paquets
disponibles dans Portage (par exemple, les pilotes ALSA ou les pilotes
graphiques de ATI ou Nvidia), vous devez réinstaller ces paquets à chaque fois
que vous mettez le noyau à jour. Rien de plus simple, puisque vous n'avez qu'à
exécuter à nouveau la commande emerge que vous aviez utilisée pour installer le
paquet en question. Le chapitre Configurer le noyau du Manuel Gentoo explique cette procédure.
L'utilitaire fourni par le paquet sys-kernel/module-rebuild permet de
reconstruire tous les modules que vous avez installés via des ebuilds séparés
pour le noyau vers lequel pointe /usr/src/linux. Son utilisation
est très simple. Une fois installé, lancez module-rebuild populate pour
remplir la base de données avec une liste des paquets qui doivent être
recompilés après une mise à jour du noyau. Après avoir mis à jour ou recompilé
le noyau et avant de rebooter, lancez module-rebuild rebuild pour
recompiler les drivers pour votre nouvelle version.
Pour plus d'informations, lancez module-rebuild sans options pour voir
la liste des commandes comprises par ce programme.
7.
Redémarrer avec le nouveau noyau
Maintenant, fermez toutes vos applications et redémarrez votre système. Si
vous avez suivi les instructions ci-dessus correctement, vous devriez obtenir
une entrée pour votre nouveau noyau dans votre chargeur de démarrage.
Choisissez ce nouveau noyau pour amorcer le système.
Votre système devrait alors démarrer sans problème ; vous pouvez ouvrir
une session et continuer votre travail comme à l'habitude. Si tout
fonctionne, la procédure de mise à jour est alors terminée.
Si vous avez commis une erreur et que votre système n'arrive pas à démarrer
avec votre nouveau noyau, redémarrez le système et amorcez votre ancien noyau.
Vous pouvez alors reprendre la procédure à l'étape de configuration, compilation et installation. Faites les
changements appropriés pour corriger vos erreurs. Dans certains cas (par
exemple le simple oubli d'un pilote réseau), il n'est même pas nécessaire de
redémarrer pour procéder aux changements.
8.
Utiliser plusieurs noyaux concurremment
Vous avez peut-être remarqué que lors de l'installation des sources de votre
nouveau noyau, les sources du noyau existant n'ont pas été supprimées. Cela
est volontaire et vous permet d'alterner facilement entre plusieurs noyaux.
Alterner entre plusieurs noyaux ne nécessite rien d'autre que de conserver les
sources dans /usr/src/ et de laisser les fichiers binaires
bzImage dans votre partition /boot (ces fichiers
doivent être référencés par des entrées appropriées dans la configuration de
votre chargeur de démarrage). Chaque fois que vous démarrerez, vous pourrez
choisir le noyau à amorcer.
9.
Supprimer les vieux noyaux
Il est fort possible que vous soyez tout à fait satisfait de votre nouveau
noyau et que vous n'ayez pas besoin de conserver les anciennes versions sur
votre système. Pour supprimer facilement toutes les sources sauf la plus
récente pour un noyau donné, utilisez l'option prune de la commande
emerge. Poursuivons l'exemple précédent utilisant gentoo-sources :
Exemple de code 9.1 : Supprimer les anciennes versions |
# emerge -P gentoo-sources
|
Dans la plupart des cas, des fichiers temporaires créés pendant la compilation
resteront dans le répertoire source dans /usr/src. Vous pouvez
sereinement supprimer ces fichiers avec rm.
Vous pouvez également supprimer les modules utilisés par les anciens noyaux sans
problème. Pour ce faire, il vous suffit de supprimer les sous-répertoires
appropriés dans /lib/modules/ (ceux qui correspondent aux
versions des noyaux dont vous avez supprimé les sources). Faites attention à
ne pas supprimer des modules appartenant à des noyaux que vous utilisez
encore !
Finalement, vous pouvez monter votre partition /boot et supprimer
les fichiers bzImage des noyaux que vous avez supprimés. Vous
devriez aussi configurer votre chargeur de démarrage pour retirer les entrées
qui font référence aux noyaux supprimés.
10.
Avancé : utiliser votre ancien .config pour configurer le nouveau
noyau
Il est parfois possible de gagner du temps en réutilisant le fichier de
configuration de votre ancien noyau pour configurer le nouveau. Remarquez que
ça ne fonctionne en général pas : il y aura probablement trop de
changements entre deux versions du noyau pour que ça puisse être une méthode
fiable.
La seule situation dans laquelle cette méthode est appropriée est lorsque vous
mettez à jour une révision Gentoo du noyau par une autre. Par exemple les
modifications faites entre gentoo-sources-2.6.9-r1 et
gentoo-sources-2.6.9-r2 seront minimes, donc il est généralement
possible d'utiliser cette méthode. Cela dit, elle n'est pas appropriée pour
l'exemple donnée tout au long de ce document : mettre à jour votre noyau
du 2.6.8 au 2.6.9. Il y a eu trop de changements entre deux sorties officielles
et la méthode décrite ci-dessous n'indiquera pas assez d'éléments à
l'utilisateur pour bien fonctionner. Il en résultera que l'utilisateur ira de
problèmes en problèmes parce qu'il aura désactivé des options qu'il n'aurait
pas dû.
Pour réutiliser votre ancienne configuration, vous n'avez qu'à copier le
fichier de configuration puis exécuter make oldconfig. Dans l'exemple
suivant nous récupérons la configuration d'un noyau
gentoo-sources-2.6.9-r1 et l'importons dans
gentoo-sources-2.6.9-r2.
Exemple de code 10.1 : Réutilisation de votre ancienne configuration |
# cd /usr/src/linux-2.6.9-gentoo-r2
# cp ../linux-2.6.9-gentoo-r1/.config .
# make oldconfig
|
Exemple de code 10.2 : Réutilisation de votre ancienne configuration avec genkernel |
# cd /etc/kernels
# cp kernel-config-x86-2.6.9-gentoo-r1 kernel-config-x86-2.6.9-gentoo-r2
# genkernel all
|
Là, vous devrez probablement répondre aux questions posées pour le choix des
options de configuration qui ont changé entre les deux versions. Une fois que
vous l'aurez fait, vous pouvez compiler et installer votre noyau comme
d'habitude sans avoir à passer par l'étape de configuration menuconfig.
Une façon bien plus sûre de mettre à jour le noyau est d'importer votre
configuration comme montré précédemment, puis simplement de lancer make
menuconfig. De cette façon, vous éviterez les problèmes rencontrés par
make oldconfig décrits ci-dessus, puisque make menuconfig
chargera votre ancienne configuration le mieux possible dans le menu. Tout ce
qu'il vous restera à faire sera de naviguer dans les options à la recherche des
nouvelles sections. En utilisant menuconfig, vous bénéficiez d'une
meilleure présentation des évolutions, pouvez facilement voir quelles sont les
nouveaux choix et lire les écrans d'aide plus facilement. Une fois que vous
avez terminé, compilez puis installez votre noyau normalement.
11.
Problèmes rencontrés suite à la mise à jour du noyau
La rapidité du développement du noyau Linux rend inévitable l'apparition de
problèmes dus aux changements apportés au noyau de version en version. Si vous
rencontrez de tels problèmes avec les versions les plus récentes des
noyaux supportés par
Gentoo, veuillez nous les rapporter.
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|