Le guide Gentoo exhaustif pour la migration vers Linux 2.6
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.
-
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.
-
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)
General setup --->
[*] Support for hot-pluggable devices
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
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
|
|