— page corrigée — TheShift 2009/02/27 19:33
Guides et Tutoriels Gentoo-Québec
PDF original
Ce document a pour but de décrire les différentes techniques de mise à jour du noyau. Les techniques diffèrent quelque peu selon le type de mise à jour à appliquer au noyau. En effet, il y a deux types de mise à jour à considérer.
Vous devez faire une mise à jour du noyau à la suite d’une synchronisation de votre arbre Portage lorsque la commande de mise à jour vous indique qu’un nouveau source va s’installer.
# emerge -auDNv world
Vous verrez apparaître dans la liste des paquets à mettre à jour une ligne vous informant qu’un nouveau source du noyau en fait partie.
sys-kernel/gentoo-sources-2.6.27-r8 [2.6.27-r3] USE=”-build -symlink” 49,509 kB
Répondez oui et laissez emerge procéder à la mise à jour du système. Quand toutes les mises à jour auront été appliquées, procédez à la mise à jour du noyau suivant la technique appropriée comme décrit dans l’introduction.
# mount /dev/sda1 /boot
/dev/sda1 /boot ext2 noauto,noatime 1 2
Pour mettre à jour le noyau vers une nouvelle version ou une révision, appliquez la procédure décrite dans la section Mise à jour changement de version ou révision. Pour une mise à jour lors d’un changement de branche, passez à la section Mise à jour changement de branche
Cette section décrit les étapes à effectuer pour mettre à jour le noyau lors d’un changement de version ou d’une révision.
La copie du fichier de configuration vous permet de copier votre configuration du noyau actuelle dans le fichier de configuration du nouveau noyau. Cela vous assure que votre configuration actuelle du noyau est reconduite telle quelle dans le fichier de configuration du nouveau noyau vous évitant ainsi à refaire toute votre configuration tel que vous l’avez faite lors de l’installation initiale de votre Gentoo Linux. Vous minimisez ainsi les oublis involontaires ou de possibles erreurs aboutissant sur un système boiteux.
Placez-vous tout d’abord dans le répertoire des sources :
# cd /usr/src/
Obtenez la liste des dossiers de ce répertoire incluant le lien symbolique vers le dossier de la version du noyau actuelle :
# ls -l
Le résultat affiché ressemble à ceci :
3 lrwxrwxrwx 1 root root 22 nov 18 20 :02 linux − > linux-2.6.27-gentoo-r3 1 drwxr-xr-x 23 root root 4096 nov 18 21 :52 linux-2.6.27-gentoo-r3 2 drwxr-xr-x 22 root root 4096 jan 26 13 :31 linux-2.6.27-gentoo-r8 drwxr-xr-x 7 root root 4096 déc 15 20 :06 rpm
Vous remarquerez qu’il y a deux dossiers pour les sources du noyau (1 et 2) et un lien symbolique (3) vers le dossier des sources du noyau actuel. Utilisez le lien symbolique pour copier le fichier de configuration. Le lien symbolique se nomme linux et il correspond au dossier linux-2.6.27-gentoo-r3. Le fichier de configuration est un fichier caché. Ceci explique la présence du point devant son nom.
# cp /usr/src/linux/.config /usr/src/linux-2.6.27-gentoo-r8
Le lien symbolique correspond au dossier des sources du noyau actuel. Pour être en mesure de finaliser la configuration du nouveau noyau, le compiler et le rendre disponible au démarrage, il faut actualiser le lien symbolique. Puisque vous êtes déjà dans le répertoire /usr/src, il suffit simplement de lancer la commande de création d’un lien symbolique.
# ln -sfn linux-2.6.27-gentoo-r8 /usr/src/linux
Désormais lorsque vous vous positionnez dans le dossier /usr/src/linux, ce sont les fichiers du nouveau noyau que vous voyez et non plus ceux du noyau actuel. Positionnez-vous dans ce dossier avant de passer à l’étape suivante.
# cd /usr/src/linux
La commande make oldconfig va modifier la configuration du noyau que vous avez copié précédemment en appliquant les changements apportés par la nouvelle version. Vous serez peut-être invité à répondre aux questions nécessaires pour appliquer ces changements. Lancez make oldconfig :
# make oldconfig
Lorsque make oldconfig vous pose une question, vous répondez en appuyant sur la touche MAJ pour accepter la valeur par défaut. Appuyez sur la touche ? pour en savoir plus sur la question.
L’opération précédente peut avoir entraîné des modifications au fichier de configuration, modifications que vous ne désirez pas. Ces modifications sont habituellement des éléments de configuration ajoutés automatiquement ou d’autres qui ont été déactivés ou activés. Pour vous en assurer et remédier à la situation le cas échéant, comparez le nouveau fichier de configuration avec celui du noyau actuel.
Comparez la valeur de chaque élément et modifiez celle de la nouvelle configuration si tel est le cas.
Pour mettre à jour le noyau lors d’un changement de branche, vous adopterez une approche sécuritaire. Cette méthode est longue car vous reconfigurez votre noyau à la main comme vous le faites lors d’une installation. En fait, vous n’utilisez pas mas make oldconfig.
Voici les étapes que vous devez exécuter :
Vous devez monter votre partition /boot si vous avez une partition qui est dédiée à celle-ci.
# mount /dev/sdaX /boot
# cd /usr/src/linux # ln -sfn linux-2.6.27-gentoo-r8 /usr/src/linux
Vous devez reconfigurer votre noyau manuellement comme vous l’avez fait lors de l’installation de votre Gentoo Linux.
Les trois dernières étapes sont respectivement décrites dans les trois section suivantes.
Le nouveau noyau étant configuré, vous devez maintenant le compiler et par la suite le copier dans /boot.
La compilation du noyau s’accomplit avec ces deux commandes :
# make && make modules install
Le nouveau noyau doit être placé dans /boot pour démarrer l’ordinateur sur celui-ci. Vous devez également ajouter une entrée au fichier de configuration du gestionnaire d’amorçage grub.
Il y a trois fichiers à copier dans /boot :
# cp arch/i386/boot/bzImage /boot/kernel-2.6.27-gentoo-r8 # cp System.map /boot # cp .config /boot/config-2.6.27-gentoo-r8.config
# nano -w /boot/grub/grub.conf
# (2) title Gentoo Linux 2.6.27-r8 - Xfce4 root (hd0,0) kernel /kernel-2.6.27-gentoo-r8 root=/dev/sda5
Ceci est un exemple. Adaptez selon la structure de vos partitions.
Lorsque vous changez de noyau, il faut vous assurer que les programmes qui dépendent du noyau ne vont pas se briser. Pour ce faire, on doit utiliser l’outil module-rebuild.
Est-ce que le paquet est installé ? Vérifiez à l’aide de cette commande :
# which module-rebuild
which: no module-rebuild in (/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin:/opt/bin: /usr/i686-pc-linux-gnu/gcc-bin/4.1.2)
vous devez installer module-rebuild.
# emerge -av module-rebuild
Vous devez ensuite mettre à jour la base de données de module-rebuild en l’alimentant avec les noms des paquets qui installent des pilotes dans le noyau en cours d’usage.
# module-rebuild populate
Ceci fait, prévenez toute cassure en reconstruisant les paquets avec le noyau. Est-il nécessaire de le faire ? Cette forme de la commande module-rebuild vous renseignera.
# module-rebuild list
Si la réponse est :
There are no known modules. Quitting.
il n’est pas nécessaire de reconstruire quoi que ce soit. Autrement, procédez ainsi :
# module-rebuild rebuild
Voici une liste de logiciels réputés pour se briser. Ils peuvent ne pas être présents dans votre environnement. Tout dépend de votre configuration.
Démontez votre partition /boot si vous avez une partition dédiée. Souvenez-vous que vous l’aviez montée pour les opérations de mise à jour.
# cd / # umount /boot
Redémarrez votre ordinateur et tester le nouveau noyau en choisissant l’option du menu de démarrage qui amorce votre Gentoo Linux sur le nouveau noyau.
Si tout se passe bien, que vos applications tournent sans problème et que tous vos composants matériels réagissent bien, vous pouvez par la suite tout supprimer de l’ancien noyau.
Pour supprimer les fichiers de l’ancien noyau :
# emerge -aP gentoo-sources
Vous aurez une demande de confirmation comme celle-ci :
Calculating dependencies... done!
>>> These are the packages that would be unmerged:
sys-kernel/gentoo-sources
selected: 2.6.27-r3
protected: none
omitted: 2.6.27-r8
>>> ’Selected’ packages are slated for removal.
>>> ’Protected’ and ’omitted’ packages will not be removed.
Répondez y à la question.
# rm -r /usr/src/linux-2.6.27-gentoo-r3