LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


gentoo:gentoo-mise_a_jour_noyau

— page corrigée — TheShift 2009/02/27 19:33

Mise à jour du noyau

Guides et Tutoriels Gentoo-Québec
PDF original

Introduction

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.

  • La première se veut une mise-à-jour impliquant un changement de version ou une révision mineure. Un changement de version se produit lorsqu’une nouvelle version apparaît dans la même branche. Prenez par exemple le passage de la version 2.6.26-r2 à la version 2.6.27-r1. Une révision est une mise à jour mineure qui se produit au niveau d’une même version. A titre d’exemple, le passage de 2.6.27-r3 à 2.6.27-r8.
  • Le second type de mise à jour implique le changement de branche. Cela se traduit par le passage, par exemple de la branche 2.6.XX à la branche 2.7.XX.

<note>Les numéros de version sont utilisés pour illustrer le type de mise à jour. Ils peuvent ne pas exister dans les faits réels.</note>


Quand faire une mise à jour

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. <note important>Ne pas exécuter ce qui suit si vous n’avez pas de partition /boot</note> Veuillez monter votre partition /boot si nécessaire.

# mount /dev/sda1 /boot

<note>La partition /boot n’est pas automatiquement montée au démarrage du système quand la partition est déclarée avec le paramètre noauto dans le fichier /etc/fstab.</note> Exemple :

/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


Mise à jour changement de version ou révision

Cette section décrit les étapes à effectuer pour mettre à jour le noyau lors d’un changement de version ou d’une révision.

Copie du fichier de configuration

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

Actualisation du lien symbolique

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

Exécution de make oldconfig

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.

Exécution de make menuconfig

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.

  1. Ouvrez un second terminal
  2. Positionnez-vous dans le dossier de votre noyau actuel : # cd /usr/src/linux-2.6.27-r3
  3. Dans chacun des terminaux lancez la commande : # make menuconfig

Comparez la valeur de chaque élément et modifiez celle de la nouvelle configuration si tel est le cas. <note>L’exemple dans cette section suppose que vous passez de linux-2.6.27-gentoo-r3 à linux-2.6.27-gentoo-r8. Le terminal dans lequel vous avez exécuté make oldconfig vous affiche donc la nouvelle configuration du noyau. Le terminal dans lequel vous vous êtes positionné sur le dossier /usr/src/linux-2.6.27-r3 affiche donc la configuration du noyau actuel. Veuillez à appliquer les modifications dans le terminal où vous avez exécuté le make oldconfig.</note> Passez maintenant aux étapes de compilation du nouveau noyau et de sa copie dans /boot : section Compilation et copie du nouveau noyau


Mise à jour changement de branche

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 :

  1. Monter /boot si nécessaire
  2. Actualisation du lien symbolique linux
  3. Exécution de make menuconfig
  4. Compilation et copie du nouveau noyau dans /boot
  5. Recompilation des programmes qui dépendent du noyau
  6. Redémarrage de l’ordinateur

Montage de /boot

Vous devez monter votre partition /boot si vous avez une partition qui est dédiée à celle-ci.

# mount /dev/sdaX /boot

<note>Consultez votre fichier /etc/fstab pour connaître la valeur correspondant à sdaX de l’exemple ci-haut.</note>

Actualisation du lien symbolique linux

# cd /usr/src/linux
# ln -sfn linux-2.6.27-gentoo-r8 /usr/src/linux

<note>Modifiez linux-2.6.27-gentoo-r8 en suppléant la valeur de l’exemple par celle du paquet gentoo-sources que vous avez installé.</note>

Exécution de make menuconfig

Vous devez reconfigurer votre noyau manuellement comme vous l’avez fait lors de l’installation de votre Gentoo Linux.

Les trois dernières étapes

Les trois dernières étapes sont respectivement décrites dans les trois section suivantes.


Compilation et copie du nouveau noyau

Le nouveau noyau étant configuré, vous devez maintenant le compiler et par la suite le copier dans /boot.

Compilation du noyau

La compilation du noyau s’accomplit avec ces deux commandes :

# make && make modules install

Copie du noyau

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 :

  1. L’image du noyau, bzImage
  2. Le fichier du mappage, System.map
  3. Le fichier de configuration, .config

<note>La partition /boot doit être montée si vous en utilisez une.</note>

# 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

<note important>Remplacez i386 par x86.64 si votre architecture est 64 bits.</note> Rendez maintenant le nouveau noyau disponible à l’amorçage de l’ordinateur en l’ajoutant au fichier de configuration du gestionnaire d’amorçage.

# 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. <note>S’il n’y a pas de partition dédiée à /boot, la ligne kernel devient kernel /boot/kernel.</note>


Recompilation des programmes qui dépendent du noyau

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

<note>Il y a d’autres techniques de vérification comme l’usage des commandes equery, eix et autres.</note> Suivant l’exécution de la commande which, si vous obtenez cette réponse :

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.

  • ati-drivers
  • nvidia-drivers
  • ipw2100-firmware
  • ipw220-firmware
  • iwl3945-ucode
  • iwl4965-ucode
  • iwl5000-ucode




Redémarrage de l’ordinateur

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

<note>Changez linux-2.6.27-gentoo-r3 pour la valeur de la version du noyau à supprimer.</note> Par la suite, éditez votre fichier /boot/grub/grub.conf pour enlever l’entrée du menu devenue caduque. Montez la partition /boot s’il le faut.


Retour à la page Gentoo.

gentoo/gentoo-mise_a_jour_noyau.txt · Dernière modification : 2018/11/17 12:53 de 127.0.0.1