Gentoo Logo

[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


7. Configurer le noyau

Table des matières :

7.a. Installer les sources du noyau

Choisir un noyau

Le cœur autour duquel sont bâties toutes les distributions est le noyau (en anglais « kernel ») Linux. Ce noyau est l'interface entre les programmes utilisateur et le matériel. Gentoo offre un choix de plusieurs noyaux à ses utilisateurs. Une liste complète, accompagnée de descriptions, est disponible dans le Guide du noyau Gentoo Linux.

Nous vous recommandons d'utiliser gentoo-sources sur PPC, c'est un noyau 2.6 récent.

Exemple de code 1.1 : installer les sources du noyau

# emerge gentoo-sources

Si vous examinez le contenu de /usr/src, vous remarquerez la présence d'un lien symbolique nommé linux qui pointe vers les sources de votre noyau actuel. Dans notre cas, la redirection pointe vers gentoo-sources-3.4.9. Gardez bien à l'esprit que votre version du noyau peut être différente.

Exemple de code 1.2 : examiner le lien symbolique vers le noyau

# ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-3.4.9

Il est maintenant temps de configurer et de compiler votre noyau. La commande genkernel est disponible sur tous les systèmes. Cette commande construira un noyau générique tel que celui utilisé par le LiveCD. Toutefois, nous expliquerons d'abord la configuration « manuelle », car c'est le moyen le plus efficace pour optimiser votre environnement.

Pour compiler votre noyau manuellement, poursuivez votre lecture avec la Par défaut : Configuration manuelle. Si vous souhaitez utiliser genkernel, vous devriez plutôt lire Alternative : utiliser genkernel.

7.b. Par défaut : configuration manuelle

Introduction

Configurer un noyau est parfois considéré comme la tâche la plus ardue que les utilisateurs de Linux doivent accomplir. Rien n'est moins vrai... Après avoir configuré quelques noyaux, vous ne vous rappellerez même plus d'avoir trouvé cela difficile.

Toutefois, une chose est vraie : vous devez connaitre votre système pour configurer manuellement un noyau. La majeure partie de cette information peut être obtenue en utilisant la commande lspci qui est dans le paquet pciutils (emerge pciutils). Vous pourrez désormais utiliser lspci depuis votre environnement en chroot. Vous pouvez ignorer les avertissements pcilib (comme par exemple : pcilib: cannot open /sys/bus/pci/devices) que vous obtiendrez avec lspci. Vous pouvez également exécuter lspci depuis un environnement non chrooté. Le résultat est le même. Vous pouvez également exécuter lsmod pour voir les modules du noyau utilisés par le CD-ROM d'installation (ce qui peut vous donner des indices sur les fonctionnalités nécessaires).

Maintenant, allez dans le répertoire des sources du noyau, il est temps de configurer votre noyau. Commencez par le préconfigurer afin qu'il puisse démarrer sur la plupart des machines PowerPC 32 bits en exécutant la commande make pmac32_defconfig. Ensuite, vous pourrez faire un make menuconfig qui va lancer le menu de configuration basé sur ncurses.

Exemple de code 2.1 : lancer menuconfig

# cd /usr/src/linux
# make pmac32_defconfig
# make menuconfig

Plusieurs sections d'options de configuration s'afficheront. Nous allons d'abord dresser la liste de certaines options que vous devez activer (sinon, Gentoo ne fonctionnera pas ou, du moins, pas sans quelques réglages additionnels).

Activer les options requises

Allez à la section File Systems et activez le support nécessaire pour les systèmes de fichiers que vous utilisez. Ne compilez pas le système de fichiers que vous utilisez en tant que système de fichier racine sous forme de module,, sinon votre système Gentoo ne pourra pas monter vos partitions. Activez aussi /proc file system et Virtual memory. Le support des partitions Amiga sera nécessaire si vous utilisez un Pegasos ou les partitions Macintosh si vous utilisez un Apple.

Exemple de code 2.2 : activer le support pour les systèmes de fichiers

File systems --->
  Pseudo Filesystems --->
    (/proc sera peut-être forcé, auquel cas vous verrez ---.)
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)
  Partition Types --->
    [*] Advanced partition support
    [*] Amiga partition table support
    [*] Macintosh partition map support

 (Sélectionnez le(s) système(s) de fichiers dont vous avez besoin.)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> Second extended fs support
  <*> XFS filesystem support

Les utilisateurs de machines NewWorld ou OldWorld auront également besoin du support HFS. Les utilisateurs d'OldWorld en auront besoin pour copier le noyau compilé sur la partition MacOS. Les utilisateurs NewWorld en auront besoin pour configurer la partition spéciale Apple_Bootstrap :

Exemple de code 2.3 : activer le support HFS

File Systems --->
  Miscellaneous filesystems --->
    <M> Apple Macintosh file system support
    <M> Apple Extended HFS file system support

Si vous utilisez PPPoE ou un modem classique pour vous connecter à Internet, vous aurez besoin des options du noyau suivantes :

Exemple de code 2.4 : sélection des pilotes PPPoE

Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

Les deux options de compression ne vous feront pas de mal, mais ne sont pas toujours nécessaires. L'option PPP over Ethernet n'est pas obligatoire non plus, considérant qu'elle pourrait n'être utilisée que par ppp lorsque ce dernier est configuré pour utiliser PPPoE en mode noyau.

N'oubliez pas d'ajouter le support pour votre carte Ethernet. La plupart des ordinateurs Apple récents utilisent le pilote Ethernet SunGEM. Les iMacs plus vieux utilisent généralement le pilote BMAC.

Exemple de code 2.5 : sélectionner le pilote réseau

Device Drivers --->
  Network device support --->
    Ethernet (10 or 100Mbit) --->
      [*] Ethernet (10 or 100Mbit)
      <*>   Generic Media Independent Interface device support
      <*>   MACE (Power Mac ethernet) support
      <*>   BMAC (G3 ethernet) support
      <*>   Sun GEM support

Si vous démarrez à partir d'un périphérique Firewire, vous aurez besoin d'activer les options suivantes. Si vous ne voulez pas compiler le support en dur dans le noyau, vous aurez besoin d'inclure ces modules et leurs dépendances dans un initrd.

Exemple de code 2.6 : activer le suppot Firewire au démarrage

    Device Drivers --->
    IEEE 1394 (FireWire) support --->
    <*> IEEE 1394 (FireWire) support
    <*>   OHCI-1394 support
    <*>   SBP-2 support (Harddisks etc.)

Si vous démarrez depuis un périphérique USB, vous devrez activer les options suivantes. Si vous ne voulez pas compiler le support en dur dans le noyau, vous aurez besoin d'inclure ces modules et leurs dépendances dans un initrd.

Exemple de code 2.7 : activer le suppot USB au démarrage

    Device Drivers --->
    USB support --->
    <*> Support for Host-side USB
    <*>   OHCI HCD support
    <*>   USB Mass Storage support

Ne désactiver pas le support du framebuffer du noyau, car celui-ci est est nécessaire pour démarrer la machine. Si vous utilisez une carte graphique nVidia, vous devrez utiliser le framebuffer Open Firmware. Si vous utilisez une carte graphique ATI, vous devriez activer le pilote du framebuffer supporté par votre puce (Mach64, Rage128 ou Radeon).

Exemple de code 2.8 : sélectionner un pilote framebuffer

    Device Drivers --->
    Graphics support --->
    <*> Support for frame buffer devices
    [*] Open Firmware frame buffer device support
    <*> ATI Radeon display support
    <*> ATI Rage128 display support
    <*> ATI Mach64 display support
    Console display driver support --->
    <*> Framebuffer Console support

Note : si vous selectionnez plus d'un framebuffer, il se peut que le système choisisse par défaut un pilote qui ne sera pas le meilleur. N'utilisez qu'un seul framebuffer, sinon précisez celui qui est à utiliser en entrant l'option adéquate au noyau au moment du démarrage. Par exemple : video=radeonfb.

Ensuite sélectionnez Maintain a devtmpfs file system to mount at /dev de façon que vos périphériques de fichiers critiques soient disponibles très tôt dans le processus de démarrage.

Exemple de code 2.9 : Activer la prise en charge de devtmpfs

Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Lorsque vous aurez terminé la configuration de votre noyau, poursuivez avec la section Compiler et installer.

Compiler et installer

Maintenant que votre noyau est configuré, il est temps de le compiler et de l'installer. Quittez le menu de configuration et exécutez les commandes suivantes :

Exemple de code 2.10 : compiler le noyau

# make && make modules_install

Lorsque la compilation est terminée, copiez l'image du noyau dans /boot. Sur un Pegasos, la partition qui héberge /boot doit avoir été montée. Si vous utiliser BootX pour démarrer, nous ferons la copie du noyau plus tard.

Yaboot et BootX utilisent un noyau non-compressé contrairement à beaucoup de chargeurs de démarrage. Le noyau décompressé est appelé vmlinux. Une fois que le noyau a fini de compiler, il est placé dans /usr/src/linux. Sur un Pegasos, le Pegasos firmware nécessite un noyau compressé appelé zImage qui se trouve dans /usr/src/linux/arch/powerpc/boot/images.

Exemple de code 2.11 : installer le noyau

# cd /usr/src/linux
Votre version de noyau peut être différente.
(Apple/IBM)
# cp vmlinux /boot/kernel-3.4.9-gentoo
(Pegasos)
# cp arch/powerpc/boot/images/zImage /boot/kernel-3.4.9-gentoo

Maintenant, poursuivez votre lecture avec Installer des modules du noyau individuels.

7.c. Alternative: utiliser genkernel

Maintenant que votre arbre des sources du noyau est en place, il est temps de compiler votre noyau en utilisant notr script genkernel qui va compiler automatiquement un noyau pour vous. genkernel travaille en configurant un noyau presque identique à celui de votre CD d'installation. Ceci signifie que, quand vous utilisez genkernel pour compiler votre noyau, votre système va détecter votre matériel au moment du démarrage, comme le fait le CD d'installation. Comme genkernel ne requiert aucune configuration manuelle, c'est la solution idéale pour ceux qui ne sont pas très à l'aise avec la configuration et la compilation de leur propre noyau..

Tout d'abord, installez genkernel :

Exemple de code 3.1 : installation de genkernel

# emerge genkernel

Si vous démarrer à partir d'un périphérique FireWire ou USB, vous devrez ajouter des modules à l'initrd. Éditez /usr/share/genkernel/arch/ppc/modules_load et changez MODULES_FIREWIRE="ieee1394 ohci1394 sbp2" pour la prise en charge de FireWire ou MODULES_USB="usbcore ohci-hcd ehci-hcd usb-storage" pour la prise en charge de l'USB.

Avant de compiler vos sources, le fichier fstab doit être légèrement modifié. Le reste de ce fichier sera complété à une étape ultérieure, c'est pourquoi, il ne faut pas vous préoccuper des détails maintenant. Si vous n'avez pas créé de partition boot séparée, (PAS bootstrap, ce qui est différent), retirer la ligne faisant référence à /boot du fichier /etc/fstab. Ceci doit être fait sur la plupart des ordinateurs Apple.

Exemple de code 3.2 : retirer /boot de /etc/fstab sur les machines sans partition boot

# nano -w /etc/fstab
Retirer cette ligne
/dev/BOOT  /boot    ext2    noauto,noatime    0 2

Maintenant compilez les sources du noyau avec genkernel --genzimage all. Pour les machines Pegasos, il faut utiliser une configuration différente et créer une image zImage au lieu du noyau vmlinux utilisé sur les machines Apple. Soyez conscient que genkernel compile un noyau qui prend en charge presque toutes les fonctionnalités matérielles et que cette compilation peut prendre un temps important !

Notez que, si la partition où le noyau devrait être placé n'utilise pas un système de fichiers ext2 ou ext3, vous pourriez être forcé de configurer votre noyau à la main avec la commande genkernel --menuconfig all et ajouter la prise en charge de votre système de fichiers dans le noyau (i.e. pas par un module). Les utilisateurs de LVM2 voudrons certainement ajouter --lvm comme argument aussi.

Exemple de code 3.3 : exécuter genkernel

# genkernel all

Exemple de code 3.4 : exécuter genkernel sur Pegasos

# genkernel --genzimage all

Dès que genkernel a compilé un noyau, un jeux complet de modules et un disque virtuel initial (initramfs) sont créés. Vous utiliserez le noyau et initrd lors de la configuration du chargeur de démarrage plus loin dans ce document. Notez le nom du noyau et celui de initrd car vous en aurez alors besoin. Le initrd sera démarré tout de suite après le démarrage pour assurer la détection automatique du matériel (comme le fait le CD d'installation) avant que votre système réel ne démarre. Assurez-vous de copier les arguments de démarrage aussi, car ils sont nécessaire à un démarrage réussi avec genkernel.

Exemple de code 3.5 : vérifier le nom de l'image noyau et du initrd créés

Notez que la version de votre noyau peut être différente.
# ls /boot/kernel-genkernel-ppc-3.4.9-gentoo /boot/initramfs-genkernel-ppc-3.4.9-gentoo

Maintenant continuez avec Kernel Modules.

7.d. Kernel Modules

Configurer les modules

Vous devriez indiquer la liste des modules que vous souhaitez charger automatiquement dans /etc/conf.d/modules. Vous pouvez également ajouter des options aux modules si vous le souhaitez.

Pour dresser la liste des modules disponibles, exécutez la commande find telle qu'indiquée ci-dessous. N'oubliez pas de substituer « <kernel version> » par la version du noyau que vous venez juste de compiler :

Exemple de code 4.1 : Consulter la liste des modules disponibles

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

Par exemple, pour charger automatiquement le module 3c59x.ko (c'est un pilote pour certaines cartes réseau 3Com), il suffit de renseigner ce module dans le fichier de configuration /etc/conf.d/modules.

Exemple de code 4.2 : Modifier le fichier /etc/conf.d/modules

# nano -w /etc/conf.d/modules
modules_2_6="3c59x"

Poursuivez l'installation avec Configurer votre système.


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Voir tout

Dernière mise à jour le 17 décembre 2013

Résumé : Le noyau Linux est le cœur de toute distribution Linux. Ce chapitre vous explique comment le configurer.

Sven Vermeulen
Auteur

Grant Goodyear
Auteur

Roy Marples
Auteur

Daniel Robbins
Auteur

Chris Houser
Auteur

Jerry Alexandratos
Auteur

Seemant Kulleen
Développeur Gentoo x86

Tavis Ormandy
Développeur Gentoo Alpha

Jason Huebel
Développeur Gentoo AMD64

Guy Martin
Développeur Gentoo HPPA

Pieter Van den Abeele
Développeur Gentoo PPC

Joe Kallar
Développeur Gentoo SPARC

John P. Davis
Correcteur

Pierre-Henri Jondot
Correcteur

Eric Stockbridge
Correcteur

Rajiv Manglani
Correcteur

Jungmin Seo
Correcteur

Stoyan Zhekov
Correcteur

Jared Hudson
Correcteur

Colin Morey
Correcteur

Jorge Paulo
Correcteur

Carl Anderson
Correcteur

Jon Portnoy
Correcteur

Zack Gilburd
Correcteur

Jack Morgan
Correcteur

Benny Chuang
Correcteur

Erwin
Correcteur

Joshua Kinard
Correcteur

Tobias Scherbaum
Correcteur

Joshua Saddler
Correcteur

Lars Weiler
Correcteur

Jochen Maes
Correcteur

Joseph Jezak
Correcteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Xavier Neys
Correcteur, traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

José Fournier
Traducteur

Donate to support our development efforts.

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