Gentoo Logo

Le guide Gentoo exhaustif pour la migration vers Linux 2.6

Table des matières :

1.  Introduction

Qu'y a-t-il de nouveau dans Linux 2.6 ?

Voilà une question à laquelle il n'est pas facile de répondre. Linux 2.6 est le résultat de plus de deux ans de développement et de stabilisation de nouvelles fonctionnalités. Du point de vue de l'architecture, il diffère significativement de la version 2.4. Quelques-uns des changements importants sont résumés ci-dessous.

  • Des améliorations ont été apportées à l'ordonnanceur : cela procure une meilleure interactivité pour les ordinateurs de bureau et assure un meilleur comportement lorsque le système est surchargé.
  • Échelonnage : Linux s'adapte mieux à une variété de systèmes électroniques allant des minuscules systèmes embarqués aux ordinateurs multiprocesseurs.
  • Performances : la vitesse des applications courantes a été augmentée significativement.
  • Support matériel : Linux supporte maintenant plus d'architectures et plus de périphériques que tout autre système d'exploitation.

Vous serez peut-être intéressé par le document The Wonderful World Of Linux 2.6, écrit par Joseph Pranevich, qui est particulièrement détaillé. Si vous préférez jeter un œil sur les détails techniques, consultez le Document d'après l'Halloween (en anglais). Toutefois, ce dernier document date quelque peu.

Gentoo et Linux 2.6

Depuis la version 2005.0 de Gentoo Linux, le noyau par défaut est celui de la récente série 2.6. Le profil par défaut du système est /etc/make/profile, ce qui serait, en version 2005.0, un lien symbolique vers /usr/portage/profiles/default-linux/x86/2005.0.

Si vous utilisez un profil 2.4, veuillez en sélectionner un qui supporte les noyaux 2.6 de la manière suivante :

Exemple de code 1.1 : Changer de profil

# rm -f /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/x86/2005.1 /etc/make.profile

Qu'est-ce qu'udev ?

Par le passé, Gentoo recommandait à ses utilisateurs devfs pour la gestion du répertoire /dev qui contient un ensemble de fichiers servant d'interfaces entre les applications du système et le matériel (lui-même géré par le noyau).

Bien que devfs ait ses mérites, il souffre de problèmes internes et a été complètement retiré de l'arbre stable principal à partir de la version 2.6.13.

udev est le nouveau système de gestion des fichiers de périphériques. Il apporte des solutions aux problèmes présents dans les gestionnaires précédents et va plus loin en résolvant d'autres problèmes liés au système d'exploitation.

Ce qui précède ne vous dit peut-être pas grand chose, mais n'ayez crainte : l'équipe des développeurs Gentoo a travaillé avec acharnement afin de rendre la migration de devfs vers udev très simple. Veuillez lire le Guide Gentoo pour udev pour plus d'informations à son sujet.

Qu'est-ce qu'ALSA ?

Avec Linux 2.4, vous utilisiez probablement des pilotes OSS (« Open Sound System ») pour faire fonctionner votre carte de son. OSS a été remplacé par un pilote audio plus moderne et meilleur, nommé ALSA.

ALSA (« Advanced Linux Sound Architecture »), est un nouvel ensemble de pilotes audio fonctionnant avec un API amélioré. Ce système est intégré au noyau Linux 2.6. Il offre une compatibilité ascendante avec OSS, pourvu que vous choisissiez les options appropriées lors de la configuration de votre noyau !

Note : Si vous n'avez aucun matériel audio, vous pouvez simplement ignorer toutes les instructions relatives à ALSA dans ce document.

Qu'est-ce que LVM ?

La gestion des volumes logiques (en anglais « Logical Volume Management » (LVM)) est un ensemble d'outils qui vous permettent de gérer votre disque dur de manière très flexible. LVM procure, entre autres choses, un contrôle accru des partitions (par exemple la possibilité de redimensionner sans redémarrer), et simplifie certaines opérations tel que le remplacement d'un disque. LVM est une alternative à la gestion classique des disques au moyen de partitions.

LVM a été implémenté dans Linux 2.4. Linux 2.6 propose une nouvelle version de LVM, nommée LVM2. Le processus de migration requiert l'installation de nouveaux outils utilisateurs (cela est couvert plus loin dans ce guide), mais laissera vos données intactes !

Si vous n'utilisez pas actuellement LVM pour le stockage de vos données, la migration vers LVM2 ne vous concerne pas. Dans ce cas, vous pouvez ignorer toutes les sections de ce guide qui portent sur LVM et LVM2. La mise à jour vers Linux 2.6 ne nécessite pas l'utilisation de LVM ; vous pouvez conserver vos données dans des partitions classiques comme vous l'avez toujours fait.

Si vous n'utilisez pas LVM mais que LVM2 vous semble attrayant, vous pourrez, dans le futur, convertir vos disques pour qu'ils utilisent ce format. Suivez alors les instructions du guide Installation de LMV2 sur Gentoo Linux. Pour l'instant, concentrons-nous sur notre objectif actuel : une migration vers Linux 2.6 sans problème.

2.  Préparation

Mettre votre système à jour

Certains des changements apportés à Linux 2.6 requièrent des modifications à des applications du système de base. Avant de poursuivre, vous devriez vous assurer que votre système est relativement à jour. Pour en être parfaitement sûr, vous devriez appliquer toutes les mises à jour « world » et « system » disponibles.

Vous devriez vous assurer tout particulièrement de disposer des dernières versions stables des paquets logiciels suivants :

  • sys-apps/baselayout
  • sys-apps/util-linux
  • sys-kernel/genkernel (Seulement si vous voulez utiliser Genkernel plutôt que configurer le noyau manuellement.)

Exemple de code 2.1 : Mettre à jour tous les paquets « world »

# emerge --sync
# emerge -ua world

modutils vs module-init-tools

sys-apps/modutils est le paquet logiciel contenant (entre autres) les outils modprobe, rmmod et insmod pour Linux 2.4.

Linux 2.6 utilise un format différent pour les modules et nécessite donc de nouveaux outils pour gérer ces modules. Ces outils sont rassemblés dans le paquet sys-apps/module-init-tools.

Vous devriez maintenant désinstaller modutils puis installer module-init-tools :

Exemple de code 2.2 : Passer de modutils à module-init-tools

# emerge --unmerge sys-apps/modutils
# emerge module-init-tools

Note : Les outils de module-init-tools sont compatibles avec Linux 2.4. Vous n'avez donc pas à vous inquiétez lorsque vous désinstallez modutils ; vous serez toujours capable d'amorcer Linux 2.4 et de gérer des modules fonctionnant avec ce noyau.

Note : Pour la raison invoquée ci-dessus, module-init-tools est peut-être déjà installé et fonctionnel sur votre système Linux 2.4. Si c'est le cas, vous n'avez pas à faire quoi que ce soit de particulier ; votre système est déjà prêt à gérer les modules de Linux 2.6.

Installer udev

Aucune configuration n'est requise. Utilisez simplement emerge pour installer udev :

Exemple de code 2.3 : Installer udev

# emerge -a udev

Vous devriez lire le Guide udev si vous voulez mieux comprendre les différences entre devfs et udev.

Vérification des fichiers de périphériques essentiels

Lorsque le système démarre, il a besoin de quelques fichiers de périphériques. Puisque udev n'est pas inclus dans le noyau, il n'est pas activé immédiatement. Pour éviter ce problème, vous devez vous assurer que ces fichiers de périphériques sont présents sur votre disque.

L'archive stage utilisée lors de l'installation devrait avoir créé les fichiers requis. Malheureusement, quelques utilisateurs ont rapporté que cela ne fonctionne pas à tous les coups. Nous allons maintenant vérifier si ces fichiers existent sur votre système et, sinon, les créer.

Puisque votre gestionnaire de périphériques actuel est monté sur /dev, nous ne pouvons accéder à ce répertoire directement. Nous allons donc lier-monter votre partition racine à un autre emplacement et accéder à /dev à partir de cet endroit.

Exemple de code 2.4 : Lier-monter la partition racine et obtenir une liste des fichiers de périphériques statiques

# mkdir -p /mnt/temp
# mount -o bind / /mnt/temp
# cd /mnt/temp/dev
# ls -l console null

Si la commande précédente rapporte que le fichier console ou le fichier null n'existent pas, vous devrez créer manuellement les fichiers nécessaires tel qu'indiqué ci-dessous :

Exemple de code 2.5 : Créer les fichiers console et null

# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3

Vous devriez maintenant démonter la partition racine liée-montée, et ce même si vous n'avez pas créé les fichiers de périphériques :

Exemple de code 2.6 : Démonter la partition racine liée-montée

# cd
# umount /mnt/temp
# rmdir /mnt/temp

Installer les utilitaires ALSA

ALSA nécessite certains paquets logiciels afin que les applications puissent accéder à l'API ALSA. Ces paquets vous permettront aussi de contrôler le mixeur et le niveau du volume. Installez ces utilitaires comme suit :

Exemple de code 2.7 : Installer les bibliothèques et les utilitaires ALSA

# emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss

3.  Installer les sources d'un noyau Linux 2.6

Choisir et installer les sources

Vous devez tout d'abord installer les sources d'un noyau 2.6 de votre choix. Les deux noyaux 2.6 officiellement supportés par Gentoo sont gentoo-sources (pour les stations de travail) et hardened-sources (pour les serveurs). D'autres noyaux sont disponibles ; consultez le Guide du noyau Gentoo Linux pour en savoir plus.

Dans ce guide, nous utiliserons gentoo-sources à titre d'exemple. Installez les sources du noyau que vous avez choisies avec le programme emerge :

Exemple de code 3.1 : Installer gentoo-sources

# emerge -a gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild  N    ] sys-kernel/gentoo-sources-2.6.10-r4

Do you want me to merge these packages? [Yes/No] y

Quand vous lancez la commande emerge décrite ci-dessus, si Portage veux installer une version 2.4 dd gentoo-sources (p.ex. gentoo-sources-2.4.26), cela signifie que votre profil n'est pas prévu pour utiliser un noyau 2.6. Veuillez d'abord consulter le Guide des mises à jour de Gentoo pour savoir comment basculer votre profile.

Mettre à jour le lien symbolique /usr/src/linux

Plusieurs composants de Gentoo nécessitent que le fichier /usr/src/linux soit un lien symbolique pointant vers les sources du noyau que vous utilisez (ou avec lesquelles vous souhaitez compiler des paquets logiciels).

Nous allons donc mettre à jour /usr/src/linux afin qu'il pointe vers les sources que vous venez d'installer. Poursuivons l'exemple précédent :

Exemple de code 3.2 : Mettre à jour le lien symbolique /usr/src/linux

# cd /usr/src
# ln -sfn linux-2.6.10-gentoo-r4 linux

4.  Problèmes connus avec la migration vers Linux 2.6

Avant de plonger dans la configuration du noyau, révisons quelques-unes des erreurs les plus fréquemment commises lors de la migration vers Linux 2.6. Certaines des remarques qui suivent influenceront la façon dont vous configurerez votre noyau.

Note : La pertinence des présentes remarques ne vous semblera peut-être pas évidente à ce moment-ci, mais vous souhaiterez peut-être vous référer à ces remarques lorsque vous lirez les sections suivantes. Nous avons préféré rassembler toutes ces notes en un seul endroit.

N'utilisez pas « make oldconfig » avec un fichier .config de la version 2.4

Note : Si vous ne comprenez pas tout à fait cet avertissement, ne vous inquiétez pas ; si vous suivez correctement les instructions de ce guide, vous ne commettrez pas cette erreur.

Vous seriez confronté à une multitude de questions puisqu'il y a eu de nombreux changements entre les deux versions. Plusieurs utilisateurs ont essayé d'utiliser make oldconfig avec un fichier de configuration provenant d'un noyau 2.4 seulement pour obtenir un noyau inutilisable (pas de sortie à l'écran, pas d'entrée avec le clavier, etc.) Évitez ces problèmes et utilisez la configuration menuconfig traditionnelle pour votre premier noyau 2.6.

N'utilisez pas ide-scsi pour la gravure de CD/DVD

Dans Linux 2.4, la seule façon d'obtenir de bons résultats avec l'écriture de CD et de DVD était d'activer l'émulation ide-scsi (ce qui était pour le moins inélégant). Heureusement, la couche de gestion des périphériques IDE dans Linux 2.6 a été étendue et supporte beaucoup mieux les graveurs de CD/DVD.

Aucune option supplémentaire n'est nécessaire pour le support de la gravure de CD. Assurez-vous seulement de ne pas utiliser ide-scsi comme vous le faisiez avant.

Le haut-parleur PC est maintenant une option configurable

Aucun son ne sera émis par votre haut-parleur PC (« PC speaker ») (ce qui inclut les « beep » de la console) si vous n'activez pas explicitement la nouvelle option concernant le haut-parleur PC (CONFIG_INPUT_PCSPKR) :

Exemple de code 4.1 : Repérer l'option relative au haut-parleur PC

Device Drivers  --->
 Input device support  --->
  [*] Misc
   <*>   PC Speaker support

Note : Le haut-parleur PC est le petit haut-parleur analogue intégré qui émet quelques sons lorsque votre ordinateur démarre ; il n'a rien à voir avec le matériel standard pour le son qui est utilisé pour écouter de la musique ou pour d'autres applications.

Le nouveau pilote pour les périphériques de blocs USB est parfois problématique

Très récemment, un nouveau pilote pour le stockage de masse USB a été ajouté au noyau. Au moment d'écrire ces lignes, ce pilote (nommé « ub ») est encore dans ses premières étapes de développement et cause des problèmes à certains utlisateurs. Si vous avez des difficultés à accéder à vos périphériques USB (disque dur, disque flash, lecteur de cartes, caméra numérique), vous pouvez revenir à l'ancien pilote de type SCSI :

Exemple de code 4.2 : Désactiver ub

Device Drivers  --->
 Block devices  --->
  < > Low Performance USB Block driver

Note : L'ancien pilote de type SCSI (appelé « USB Mass Storage support ») est activé par défaut. Vous le trouverez dans la section « Device Drivers --> USB support ». Toutefois, ce pilote n'est habituellement pas utilisé lorsque ub est activé.

usbdevfs a un nouveau nom : usbfs

Si vous avez édité le fichier /etc/fstab pour configurer la façon dont le système de fichiers des périphériques USB est monté, vous devrez peut-être modifier le type de système de fichier en remplaçant usbdevfs par usbfs.

Note : Les noyaux 2.4 récents supportent eux aussi « usbfs » et « usbdevfs ». Aussi, vous ne perdez aucune compatibilité en passant au système plus récent.

Ne modifiez pas la priorité de X

Si vous utilisez Linux 2.4 sur une station de travail, vous aviez peut-être « hacké » votre système pour exécuter X avec une priorité plus élevée, ce qui semblait améliorer les performances sur ces ordinateurs.

Beaucoup de modifications ont été apportées à l'ordonnanceur dans le noyau 2.6, ce qui change substantiellement son comportement. Si vous persistez à exécuter X avec une priorité élevée, le système fera exactement ce qu'il est supposé faire (soit exécuter le serveur d'affichage à une très haute priorié), et vous en subirez les conséquences : le son sera saccadé et le lancement des applications sera lent, puisque votre processeur passera beaucoup trop de temps à s'occuper uniquement de X.

Avec Linux 2.6, vous n'avez plus besoin de changer la priorité des applications de bureau pour obtenir une bonne interactivité. N'utilisez donc plus la commande renice et ses astuces pour ce type d'applications.

Le fichier de configuration de X11 devrait maintenant utiliser /dev/input/mice pour les souris PS/2 et USB

Un des changements introduits par la configuration par défaut de udev (par rapport à devfs) concerne l'organisation des fichiers de périphériques relatifs aux souris (et autres dispositifs de pointage). Auparavant, ces fichiers avaient pour noms, entre autres, /dev/psaux et /dev/mouse. Désormais, vous aurez des fichiers tels que /dev/input/mouse0 et /dev/input/mouse1, ainsi que le nœud matériel /dev/input/mice qui combine les mouvements de tous les dispositifs de pointage.

Les vieilles configuration de X typiques référencent /dev/mouse ou /dev/psaux, ce qui peut causer des erreurs telles que celle ci-dessous lorsque vous essayez de démarrer X11 :

Exemple de code 4.3 : Erreur fréquemment rencontrée lorsque X est exécuté pour la première fois sur un système udev

(EE) xf86OpenSerial: Cannot open device /dev/mouse
No such file or directory.
(EE) Mouse0: cannot open input device
(EE) PreInit failed for input device "Mouse0"
No core pointer

Pour corriger ceci, ouvrez votre fichier de configuration X11 avec un éditeur de texte et mettez à jour la section InputDevice relative à votre souris pour qu'elle utilise /dev/input/mice. Voici un exemple :

Exemple de code 4.4 : Ouvrez votre fichier de configuration X11

# nano -w /etc/X11/xorg.conf

Note : Si vous utilisez toujours XFree86, votre fichier de configuration sera /etc/X11/XF86Config.

Exemple de code 4.5 : Exemple d'une section InputDevice pour la souris

Section "InputDevice"
  Identifier  "Mouse0"
  Driver      "mouse"
  Option      "Protocol" "auto"
  Option      "Device" "/dev/input/mice"
EndSection

Note : Si vous utilisez une souris sur un port série, le chemin vers le périphérique sera /dev/tts/0 au lieu de /dev/ttyS0.

Les nouveaux pilotes ATA série (« serial ATA ») nomment les périphériques différemment

Si vous utilisiez les pilotes ATA série originaux de Linux 2.4, vous avez sans doute remarqué que vos périphériques SATA ont des noms tels que /dev/hde.

Linux 2.6 utilise de nouveaux pilotes SATA (libata). Ceux-ci sont basés sur l'infrastructure SCSI du noyau, ce qui implique que vos disques SATA apparaîtront désormais comme des périphériques SCSI. Votre premier disque SATA se nommera donc /dev/sda. Vous devrez mettre à jour votre fichier /etc/fstab pour refléter ces changements. Vous devrez aussi vous souvenir de ces nouveaux noms lorsque vous choisirez le paramètre root/real_root relatif au démarrage du noyau.

Note : Puisque libata a été rétrointégré dans les versions récentes de Linux 2.4, vous êtes peut-être déjà familier avec ce nouveau schéma de noms de périphériques.

Bootsplash n'est plus développé

Si vous utilisiez le noyau gentoo-sources-2.4, peut-être utilisiez-vous la fonctionnalité bootsplash pour obtenir une console de type « framebuffer » en couleurs.

À cause de problèmes dans sa conception, le développeur de bootsplash semble avoir perdu son intérêt pour ce projet. Toutefois, le développeur Gentoo Michał Januszewski développe actuellement le successeur de bootsplash, nommé gensplash, qui est inclus dans le noyau gentoo-sources-2.6. Vous pouvez lire le guide Gensplash in 5 easy steps écrit par Michał si vous souhaitez vous familiariser avec gensplash.

Les pilotes I2C sont maintenant inclus dans le noyau

Si vous utilisiez lm-sensors pour surveiller la température de votre système et son niveau de consommation d'énergie, vous aviez également installé le paquet logiciel i2c qui fournit le support nécessaire pour le matériel.

Les pilotes pour le matériel I2C sont maintenant inclus dans le noyau 2.6 ; vous n'avez donc plus besoin du paquet externe i2c. Souvenez-vous que vous devez compiler dans le noyau le support spécifique à votre matériel I2C. Une fois cela fait, vous pourrez utiliser lm-sensors comme à l'habitude.

5.  Configurer, compiler et installer le noyau

Tout comme avec Linux 2.4, vous avez le choix entre deux façons de gérer la mise en place de votre noyau.

  1. La méthode par défaut est la configuration manuelle du noyau. Cela peut sembler rebutant, mais c'est la méthode suggérée si vous connaissez bien votre matériel. Si vous souhaitez configurer votre noyau manuellement, poursuivez avec le chapitre suivant.
  2. L'alternative est d'utiliser notre utilitaire genkernel pour configurer, compiler et installer le noyau à votre place et automatiquement. Si vous souhaitez utiliser genkernel, sautez le chapitre suivant et poursuivez votre lecture avec le chapitre « Utilisation de genkernel ».

6.  Par défaut : configuration manuelle

Configurer le noyau

Nous allons maintenant poursuivre avec la configuration du noyau. Ouvrez menuconfig comme d'habitude :

Exemple de code 6.1 : Lancer menuconfig

# cd /usr/src/linux
# make menuconfig

Vous êtes probablement familier avec l'utilisation de menuconfig pour la configuration des noyaux de la série 2.4. Cet utilitaire n'a presque pas changé, mais vous remarquerez que les options du noyau sont bien mieux organisées qu'avant et qu'il existe de nombreuses nouvelles options.

Assurez-vous d'activer les options du noyau suivantes :

Exemple de code 6.2 : Options du noyau requises

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(Les options suivantes sont requises pour udev :)
General setup  --->
 [*] Support for hot-pluggable devices

(Les options suivantes sont requises pour ALSA :)
Device Drivers  --->
 Sound  --->
  <*> Sound card support
  Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
   <M> Sequencer support
   <M> OSS Mixer API
   [*] OSS Sequencer API
   (N'oubliez pas de choisir votre carte son dans le sous-menu.)

(Les options suivantes sont requises pour la gestion des disques avec LVM :)
Device Drivers  --->
 Multi-device support (RAID and LVM)  --->
  [*] Multiple devices driver support (RAID and LVM)
   <*>   Device mapper support

Attention : Peut-être aviez-vous ajouté le support pour le système de fichiers /dev (aujourd'hui considéré obsolète) dans vos précédentes configurations de noyaux. N'utilisez plus le support de devfs ; udev est maintenant installé sur votre système et sera utilisé à la place de devfs.

N'oubliez pas d'ajouter le support nécessaire pour votre matériel et pour les types de systèmes de fichiers que vous utilisez. Assurez-vous d'activer le support des contrôleurs IDE de votre carte-mère si vous souhaitez bénéficier de l'accès rapide aux disques DMA. Référez-vous au chapitre « Configurer le noyau » du Manuel Gentoo pour des instructions plus détaillées.

Compilation du noyau

Maintenant que votre noyau est configuré, nous pouvons débuter le processus de compilation :

Exemple de code 6.3 : Compiler le noyau à partir de ses sources

# make && make modules_install

Note : Peut-être vous souvenez-vous que la commande make dep était employée lors de la compilation des noyaux 2.4. Cette commande n'est maintenant plus nécessaire.

Attendez que la compilation du noyau soit terminée. Vous remarquerez que les messages de sortie sont beaucoup plus lisibles qu'avant.

Installer le noyau

L'étape suivante consiste à monter votre partition /boot et à copier l'image du noyau à cet endroit. Vous devez ensuite mettre à jour votre chargeur de démarrage manuellement.

Exemple de code 6.4 : Installer le noyau

# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.10-gentoo-r4

Notez bien que les instructions ci-dessus ont valeur d'exemple. Vous devriez suivre la procédure que vous employez habituellement lors de la mise à jour de votre noyau, telle que décrite dans les instructions du chapitre « Configurer le noyau » du Manuel Gentoo.

Lorsque vous mettrez à jour la configuration de votre chargeur de démarrage, ne supprimez pas les entrées relatives à votre ancien noyau 2.4. Ainsi, vous serez toujours capable de passer d'un noyau à l'autre si un problème devait survenir.

Poursuivez maintenant avec la section « Configuration des modules ».

7.  Alternative : utiliser genkernel

Si vous préférez utiliser genkernel plutôt que configurer manuellement votre noyau, vous serez heureux d'apprendre que le processus d'utilisation de genkernel pour la gestion des noyaux 2.6 est très similaire à celui employé pour les noyaux 2.4.

Vous devriez exécuter genkernel comme suit :

Exemple de code 7.1 : Exécuter genkernel avec quelques options communes

# genkernel --udev --menuconfig --bootloader=grub all

Dans l'exemple précédent, nous profitons de quelques-unes des fonctionnalités de genkernel, soit l'utilisation de menuconfig qui vous permet de personnaliser la configuration de votre noyau (si vous le désirez), et la mise à jour de la configuration du chargeur de démarrage grub qui a lieu après la compilation.

Bien sûr, vous devriez utiliser les options qui conviennent à votre système lorsque vous exécutez genkernel. Toutefois, n'oubliez surtout pas d'inclure l'option --udev ! Référez-vous au Guide Genkernel pour Gentoo Linux et au chapitre « Configurer le noyau » du Manuel Gentoo pour plus de détails.

Si vous mettez votre chargeur de démarrage à jour vous-même, n'oubliez pas le paramètre udev sur la commande kernel. L'exemple de configuration de grub ci-dessous peut vous aider, mais n'oubliez pas d'utiliser la bonne valeur pour le paramètre real_root.

Exemple de code 7.2 : Sample GRUB config for genkernel + udev

title Gentoo Linux (2.6 kernel)
root (hd0,0)
kernel /kernel-2.6.10-gentoo-r4 udev root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.6.10-gentoo-r4

8.  Configuration des modules

Installer des modules externes

Plusieurs utilisateurs ont besoin de modules du noyau qui sont maintenus à l'extérieur de l'arbres des sources. Les exemples les plus évidents sont les pilotes pour les accélérateurs graphiques ATI et Nvidia. Si vous souhaitez utiliser de tels modules, vous devez maintenant les installer. Ces modules seront compilés en utilisant l'arbre des sources de votre nouveau noyau 2.6 qui se trouve dans /usr/src/linux. L'installation des modules est identique à celle de tout autre paquet logiciel : utilisez la commande emerge nom_du_paquet pour chaque module externe que vous aviez l'habitude d'utiliser avec votre noyau 2.4.

Encore une fois, n'hésitez pas à consulter le chapitre « Configurer le noyau » du Manuel Gentoo pour obtenir plus d'information.

Chargement automatique des modules

Vous avez peut-être décidé de compiler certains composants du noyau en tant que modules (plutôt que de les inclure directement dans le noyau). Si c'est le cas ou si vous avez installé des modules externes à partir des paquets disponibles dans Portage (tel que décrit ci-dessus), vous voudrez sans doute charger automatiquement ces modules lors du démarrage, comme vous le faisiez avec votre noyau 2.4.

La procédure pour ce faire est similaire à celle que vous utilisiez avec les noyaux 2.4. Ouvrez simplement le fichier /etc/modules.autoload.d/kernel-2.6 dans un éditeur de texte et listez-y les noms des modules que vous souhaitez charger automatiquement.

Exemple de code 8.1 : Ouvrir la liste des modules à charger automatiquement avec nano

# nano -w /etc/modules.autoload.d/kernel-2.6

Exemple de code 8.2 : Exemple de liste de chargement automatique pour les modules nvidia et 3c59x

# /etc/modules.autoload.d/kernel-2.6:  kernel modules to load when system boots.
#
# Note that this file is for 2.6 kernels.
#
# Add the names of modules that you'd like to load when the system
# starts into this file, one per line.  Comments begin with # and
# are ignored.  Read man modules.autoload for additional details.

3c59x
nvidia

9.  Passer de LVM à LVM2

Mise à jour des outils pour LVM2

Note : Si vous n'utilisez pas LVM pour la gestion de vos disques, vous pouvez ignorer ce chapitre et passer tout de suite au suivant.

Heureusement, mettre à niveau les outils utilisateurs pour passer de la version LVM1 à la version LVM2 est très simple.

Exemple de code 9.1 : Mettre à jour les outils utilisateurs (de LVM1 vers LVM2)

# emerge --unmerge lvm-user
# emerge lvm2

Note : Vous devrez réinstaller lvm-user si vous désirez démarrer de nouveau sur un noyau 2.4, car lvm2 par lui-même n'est pas suffisant pour les noyaux 2.4.

10.  Démarrer Linux 2.6

Il est maintenant temps de démarrer Linux 2.6. Fermez toutes les applications et redémarrez :

Exemple de code 10.1 : Redémarrer

# umount /boot
# reboot

Si vous avez suivi correctement les instructions de ce guide, vous aurez le choix entre lancer Linux 2.4 ou Linux 2.6 à partir de votre chargeur de démarrage. Choisissez Linux 2.6.

Une fois le système amorcé, vérifiez que tout fonctionne. Si vous avez fait une erreur dans la configuration du noyau, ne vous inquiétez pas : vous pouvez revenir en arrière à l'étape « Configurer, compiler et installer le noyau ». Il suffit alors de changer la configuration, de recompiler et d'installer l'image du noyau puis de redémarrer pour un nouvel essai !

Configurer les canaux ALSA et les sortir du mode muet

Nous allons maintenant procéder à la configuration d'ALSA et sortir les canaux audio du mode muet. Les paquets logiciels ALSA fournissent un utilitaire qui rend cette tâche fort aisée :

Exemple de code 10.2 : Lancer l'utilitaire de configuration automatique d'ALSA

# alsaconf

La manière de procéder est simple : permettez la mise à jour automatique du fichier /etc/modules.d/alsa, puis acceptez qu'ALSA soit rechargé. Le programme alsaconf a alors fini son travail. Toutefois, vous devrez exécuter cet utilitaire plusieurs fois si votre système comporte plus d'un périphérique audio.

Vous devriez maintenant ajouter le script d'initialisation alsasound au niveau d'exécution « boot », afin que les volumes des canaux audio soient sauvegardés lors de l'extinction de votre ordinateur et restaurés lors du démarrage.

Exemple de code 10.3 : Ajouter alsasound au niveau d'exécution « boot »

# rc-update add alsasound boot

Note : L'utilitaire alsaconf choisit le volume initial de votre périphérique audio. Si ce volume est inapproprié, vous pouvez le régler avec le programme alsamixer.

Déjà des problèmes ?

Si vous rencontrez déjà des problèmes, veuillez consulter le chapitre Problèmes connus avec la migration vers Linux 2.6.

11.  Fichiers d'en-têtes et NPTL

À ce point-ci, vous disposez d'un système Linux 2.6 et vous avez réglé tous les problèmes éventuels liés à la migration. Vous devriez maintenant mettre à jour les fichiers d'en-têtes du noyau et réinstaller glibc afin que les programmes utilisateurs puissent bénéficier des nouvelles fonctionnalités de Linux 2.6.

Exemple de code 11.1 : Mettre à jour le système en passant à linux26-headers

# emerge -u linux-headers

Après la mise à jour du paquet logiciel contenant les en-têtes, vous devez habituellement réinstaller glibc. Il existe une nouvelle fonctionnalité que vous souhaiterez peut-être utiliser : NPTL. NPTL est un nouveau modèle de gestion des fils d'exécution de Linux 2.6 qui propose une création et une destruction plus rapides des fils d'exécution. Cela ne fera pas de différence appréciable sur la plupart des systèmes, mais vous souhaiterez peut-être tout de même activer NPTL pendant ce processus de migration. Pour le faire, éditez /etc/make.conf et ajoutez nptl à vos options de la variable USE.

Attention : Si vous compilez glibc avec USE="nptlonly", vous ne pourrez plus démarrer avec un noyau 2.4.

Maintenant, réinstallez glibc. (Vous devriez réaliser cette étape même si vous n'avez pas activé NPTL.)

Exemple de code 11.2 : Récompiler glibc en utilisant les nouveaux en-têtes du noyau

# emerge -a glibc

Si vous avez activé NPTL, les programmes binaires déjà présents sur votre système n'utiliseront pas cette fonctionnalité avant qu'ils ne soient recompilés. Tous les programmes compilés à partir de ce moment supporteront NPTL. Vous souhaiterez peut-être recompiler tous vos programmes maintenant :

Exemple de code 11.3 : Recompiler tous les paquets du système

# emerge -e world

Alternativement, vous pouvez simplement laisser votre système se convertir « naturellement » au fur et à mesure que vous mettrez à jour vos paquets lorsque de nouvelles versions seront disponibles.

12.  Dernières remarques

Des problèmes ?

Considérant la somme de travail incroyable qui a été nécessaire au développement de Linux 2.6, on peut s'attendre à de très nombreux changements et, inévitablement, à quelques problèmes.

Si vous éprouvez une difficulté particulière avec votre noyau 2.6 et que vous pouvez confirmer que le problème n'existe pas dans Linux 2.4, veuillez remplir un rapport de bogue sur Bugzilla. Nous étudierons la situation et, si nous découvrons qu'il s'agit d'un problème dans le noyau officiel, nous vous demanderons peut-être de remplir un rapport sur le Bugzilla centralisé pour le noyau Linux.

Conclusion

Avec un peu de chance, vous venez de terminer votre migration, n'avez rencontré aucun problème et profitez maintenant des améliorations apportées à Linux 2.6 par rapport à Linux 2.4.

L'auteur adresse ses plus vifs remerciements aux nombreux utilisateurs qui ont testé ce document et qui ont permis son amélioration. Tous vos courriels n'ont pas reçu de réponse, mais ils ont tous été lus avec attention et ont permis d'améliorer ce guide.

Désinstaller Linux 2.4

Après quelque temps passé avec Linux 2.6, vous concluerez peut-être que vous n'avez plus besoin du tout de Linux 2.4. Les étapes nécessaires à la désinstallation de Linux 2.4 de votre système sont détaillées ci-dessous. Ne suivez ces instructions que si vous êtes certain de ne plus avoir l'intention d'utiliser Linux 2.4 !

Les sources des noyaux 2.4 peuvent être supprimées en utilisant emerge comme vous le faites d'habitude. Par exemple, si des versions 2.4 des paquets vanilla-sources et gentoo-sources sont installées sur votre système, vous pouvez utiliser la commande suivante pour les désinstaller tout en gardant intactes les versions 2.6 :

Exemple de code 12.1 : Exemple : désinstaller les sources de Linux 2.4

# emerge --unmerge =vanilla-sources-2.4.* =gentoo-sources-2.4.*

Portage ne supprimera pas complètement les sources des noyaux 2.4 puisque des fichiers temporaires sont créés après l'installation des sources pendant la compilation du noyau. Il est tout à fait sûr de supprimer manuellement ces fichiers avec la commande suivante :

Exemple de code 12.2 : Supprimer les fichiers temporaires restants

# rm -rf /usr/src/linux-2.4.*

Vous pouvez aussi supprimer les modules et les fichiers qui contiennent des informations relatives à vos anciens noyaux 2.4, ces composants ne sont plus nécessaires.

Exemple de code 12.3 : Supprimer les modules 2.4 installés précédemment

# rm -rf /lib/modules/2.4.*

Les images binaires des noyaux 2.4 que vous utilisiez pour démarrer votre système peuvent également être supprimées. Pour ce faire, vous devez monter votre partition /boot, puis supprimer les images. Vous devez aussi mettre à jour la configuration de votre chargeur de démarrage afin d'y supprimer les références à ces anciennes images.

Certains utilisateurs de Linux 2.4 auront installé le paquet logiciel alsa-driver afin de bénificier des nouvelles capacités audio de Linux 2.6. Si vous êtes l'un de ces utilisateurs et que vous avez suivi notre suggestion qui consiste à installer ALSA à partir des sources d'un noyau 2.6 (plutôt que d'utiliser le paquet alsa-driver), vous pouvez maintenant supprimer ce paquet afin d'éviter d'éventuels conflits dans le futur.

De plus, les utilisateurs de lm-sensors auront tous installé le paquet i2c afin d'obtenir les pilotes de périphériques. Comme mentionné plus tôt, les pilotes I2C sont maintenant inclus dans le noyau. Le paquet peut donc être désinstallé afin de prévenir d'éventuels conflits.

Enfin, le démon du gestionnaire de matériel devfs, devfsd, peut lui aussi être désinstallé en toute quiétude maintenant que vous utilisez udev pour la gestion de votre matériel.

Exemple de code 12.4 : Désinstaller alsa-driver, i2c et devfsd

# emerge --unmerge alsa-driver i2c devfsd

Si vous êtes maintenant un utilisateur de LVM2, vous souhaiterez peut-être convertir vos données existantes (format LVM1) pour utiliser le format LVM2. Ainsi, vous bénéficierez des avantages de LVM2. Toutefois, cela vous empêchera définitivement d'accéder à vos données LVM à partir d'un noyau 2.4. Si vous voulez procéder à cette conversion (qui est tout à fait optionnelle !), vous devriez lire la page man de vgconvert. Vous y trouverez les instructions nécessaires. Un exemple est fourni ci-dessous, où main est le nom du groupe de volumes.

Exemple de code 12.5 : Convertir un groupe de volumes LVM1 au format LVM2

# vgconvert -M2 main


Imprimer

Dernière mise à jour le 5 mars 2008

La version originale de cette traduction n'est plus maintenue

Résumé : Ce document vous assistera dans le processus de migration de Linux 2.4 vers Linux 2.6, de devfs vers udev, d'OSS vers ALSA et de LVM vers LVM2.

Daniel Drake
Auteur

Sergey Galkin
Contributeur

Sergey Kuleshov
Contributeur

Xavier Neys
Correcteur

Benny Chuang
Correcteur

Olivier Fisette
Traducteur

Xavier Neys
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.