Gentoo Logo

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


7. Configurer le noyau

Table des matières :

7.a. Installer les sources

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 de Gentoo.

Pour les systèmes IA64, nous offrons, entre autres, les gentoo-sources (un noyau modifié par l'ajout de fonctionnalités supplémentaires.

Choisissez les sources à utiliser pour votre noyau et installez-les avec emerge.

Exemple de code 1.1 : installer les sources d'un noyau

# emerge gentoo-sources

Si vous examinez le contenu de /usr/src, vous devriez voir un lien symbolique nommé linux qui pointe vers les sources de votre noyau. L'exemple suivant pointe vers gentoo-sources-3.3.8, mais vous aurez sans doute installé une autre version.

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.3.8

Il est maintenant temps de configurer et de compiler votre noyau. Vous pouvez utiliser genkernel. Cette commande construira un noyau générique tel que celui utilisé par le CD d'installation. Toutefois, nous expliquerons d'abord la configuration « manuelle », puisque c'est la meilleure façon d'optimiser votre environnement.

Si vous souhaitez configurer manuellement votre noyau, poursuivez votre lecture avec 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 manuellement 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 que c'était difficile ;)

Toutefois, une chose est vraie : vous devez connaitre votre système pour configurer manuellement un noyau. La majeure partie des informations 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 dossier des sources du noyau et exécutez make menuconfig. Cela ouvrira un menu de configuration basé sur ncurses.

Exemple de code 2.1 : lancer menuconfig

# cd /usr/src/linux
# 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).Pour vous apporter une aide complémentaire, nous vous proposons également Le guide de configuration du noyau de Gentoo sur le wiki de Gentoo.

Activer les options requises

Veuillez vérifier que tous les pilotes nécessaires au démarrage de votre système tels que le pilote de votre carte SCSI sont compilés en dur et non comme modules, sinon le système ne démarrera pas.

Vous devez maintenant choisir exactement le bon type de processeur. Si vous ignorez de quel type est votre système IA64 , DIG-compliant est un bon choix par défaut. Si vous installez sur un système SGI, assurez-vous d'avoir sélectionné le type de système SGI, sinon votre noyau peut se verrouiller et refuser de démarrer.

Exemple de code 2.2 : sélectionner le type correct de système

System type --->
  (Changez en fonction de votre système)
  DIG-compliant
Processor type --->
  (Changez en fonction de votre système)
  Itanium 2

Ensuite choisissez Maintain a devtmpfs file system to mount at /dev de telle manière que vos fichiers de périphérique critiques soient montés précocément pendant la phase de démarrage.

Exemple de code 2.3 : 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

Ensuite allez à la section File Systems et activez la prise en charge nécessaire pour les systèmes de fichiers que vous utilisez. Ne compilez pas le système de fichiers que vous utilisez pour la partititon racine sous forme de module, sinon votre système Gentoo ne pourra pas monter vos partitions. Activez aussi Virtual memory et /proc file system.

Exemple de code 2.4 : sélectionner les systèmes de fichiers requis

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

(Sélectionner une option ou plus selon les besoins de votre système)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

(Assurez vous de valider la prise en charge de  VFAT pour la partition EFI)
  DOS/FAT/NT Filesystems  --->
    <*> VFAT (Windows-95) fs support

(Activez le support des étiquettes de partition GPT si vous les avez utilisées précédemment)
-*- Enable the block layer --->
    ...
    Partition Types --->
    [*] Advanced partition selection
      ...
      [*] EFI GUID Partition support

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

Exemple de code 2.5 : sélectionner les pilotes PPPoE nécessaires

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 absolument 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.

Si vous en avez besoin, n'oubliez pas d'ajouter le support pour votre carte Ethernet.

Si vous avez un système Opteron multiprocesseurs ou multicœur (AMD64 X2 par ex.), vous devriez activer « Symmetric multi-processing support ».

Exemple de code 2.6 : activer la prise en charge de SMP

Processor type and features  --->
  [*] Symmetric multi-processing support

Note : notez que chaque cœur compte pour un processeur.

Si vous utilisez des périphériques d'entrée USB (un clavier ou une souris par exemple), n'oubliez pas les options suivantes :

Exemple de code 2.7 : activer le support USB pour des périphériques d'entrée

Device Drivers --->
  [*] HID Devices  --->
    <*>   USB Human Interface Device (full HID) support

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

Compilation et installation

Maintenant que votre noyau est configuré, il est temps de le compiler et de l'installer. Quittez la configuration et lancez la compilation :

Exemple de code 2.8 : compiler le noyau

# make && make modules_install

When the kernel has finished compiling, copy the kernel image to /. Use whatever name you feel is appropriate for your kernel choice and remember it as you will need it later on when you configure your bootloader. Remember to replace vmlinuz with the name and version of your kernel.

Exemple de code 2.9 : installer the kernel

# cp vmlinux.gz /boot/vmlinuz

(Facultatif) Construction d'un disque virtuel de démarrage (Initramfs)

Si vous utilisez un plan de partitionnement où des dossiers importants (tels que /usr ou /var) sont sur des partitions séparées, vous devez définir un disque virtuel initial (initramfs) pour que ces partitions puissent être montée avant d'en avoir besoin.

Sans cet initramfs le système risque de ne pas démarrer correctement car les outils nécessaires au montage des systèmes de fichiers ont besoin d'informations qui se trouvent sur ces systèmes de fichiers. Un initramfs va mettre à disposition ces fichiers dans une archive qui sera utilisée juste après le démarrage du noyau, mais avant que le contrôle ne soit transmis aux outils init. Des scripts sur l'initramfs s'assurerons que les partitions sont montées correctement avant de laisser le système continuer le démarrage.

Pour installer un disque virtuel de démarrage (initramfs), installez d'abord genkernel , et demandez-lui de créer ce disque virtuel pour vous.

Exemple de code 2.10 : construire/compiler un disque virtuel de démarrage (initramfs)

# emerge genkernel
# genkernel --bootdir=/. --no-mountboot --install initramfs

Si vous avez besoin d'une prise en charge particulière dans l'initramfs telle que lvm ou raid, ajoutez les options appropriées au noyau. Voyez genkernel --help pour plus d'informations, ou l'exemple qui suit qui active la prise en charge de LVM et du logiciel raid. (mdadm):

Exemple de code 2.11 : constuire/compiler un initramfs avec prise en charge de LVM et du logiciel raid

# genkernel --bootdir=/. --no-mountboot --lvm --mdadm --install initramfs

L'initramfs sera stocké sur /. Vous pouvez trouver le fichier en listant les fichiers qui commencent par initramfs :

Exemple de code 2.12 : vérifier le nom de l'initramfs

# ls /initramfs*

Maintenant continuez avec Les modules du noyau.

7.c. Alternative : utiliser genkernel

Si vous lisez cette section, vous avez choisi d'utiliser le script genkernel pour configurer votre noyau pour vous.

Maintenant que l'arbre des sources de votre noyau est installé, il est temps de compiler ce noyau à l'aide du script genkernel qui construira automatiquement un noyau dont la configuration sera presque identique à celle du noyau du CD d'installation. Cela signifie que si vous utilisez genkernel pour construire votre noyau, votre système détectera généralement tout votre matériel au moment de l'amorçage, à la manière du CD d'installation. Puisque genkernel ne requiert aucune configuration manuelle, il s'agit d'une solution idéale pour l'utilisateur rebuté par l'idée de compiler son propre noyau.

Maintenant, voyons comment utiliser genkernel. D'abord, installez genkernel comme suit :

Exemple de code 3.1 : installer genkernel

# emerge genkernel

Ensuite, compilez les sources du noyau en exécutant genkernel all. Puisque genkernel compile un noyau qui supporte presque n'importe quel matériel, ne soyez pas surpris que la compilation demande un temps considérable.

Note : si vous utilisez LVM2, vous voudrez sans doute ajouter l'option --lvm à la ligne de commande de genkernel.

Exemple de code 3.2 : exécuter genkernel

# genkernel --bootdir=/. --no-mountboot all

Lorsque genkernel aura fini son travail, un noyau, un ensemble complet de modules et un disque virtuel initial (initramfs) auront été créés. Le noyau et initrd seront utilisés plus tard lors de la configuration du chargeur de démarrage. Notez bien les noms du noyau et du initrd puisque vous devrez les spécifier lors de l'écriture du fichier de configuration du chargeur de démarrage. L'initrd sera démarré immédiatement après l'amorçage afin de réaliser l'autodétection du matériel (tout comme pour le CD d'installation) avant que votre « véritable » système ne démarre.

Exemple de code 3.3 : Vérifier les noms de l'image du noyau et du fichier initrd

# ls /kernel* /initramfs*

7.d. Les modules du noyau

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 11 mai 2014

Résumé : Le noyau Linux est au cœur de toutes les distributions. Ce chapitre explique comment le configurer.

Sven Vermeulen
Author

Grant Goodyear
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Tim Yamin
Gentoo IA64 developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

Mike Frysinger
Gentoo * developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Stuart Longland
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Joshua Saddler
Editor

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

José Fournier
Traducteur

Donate to support our development efforts.

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