Gentoo Logo

1.  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 Kernel/Vue d'ensemble.

Pour les systèmes ${arch}, nous offrons les gentoo-sources (des correctifs des sources du noyau pour des fonctionnalités additionnelles ).

Choisissez les sources du noyau et installez les avec emerge.

Exemple de code 1.1 : installer les sources du noyau

# emerge gentoo-sources

Si vous examinez le contenu de /usr/src, vous devriez voir un lien symbolique nommé linux pointant vers les sources de votre noyau. L'exemple suivant pointe vers linux-${kernel-version}, mais vous aurez peut-être installé une autre version.

Exemple de code 1.1 : 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-${kernel-version}

Il est maintenant temps de configurer et de compiler votre noyau.

1.  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 que c'était 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 dossier des sources du noyau et exécutez make menuconfig. Cela ouvrira un menu de configuration basé sur ncurses.

Exemple de code 1.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).

Activer les options requises

Tout d'abord, vous devez définir les pararmètres de cross-compilation pour garantir que le noyau Linux est compilé pour le bon système. Pour le faire, définissez le préfixe de l'outil Cross-compiler à sparc64-unknown-linux-gnu- (y conpris le tiret de fin):

Exemple de code 1.1 : identifier la plateforme de cross-compilation adaptée

General setup --->
  (sparc64-unknown-linux-gnu-) Cross-compiler tool prefix

Ensuit sélectionnez Maintain a devtmpfs file system to mount at /dev de telle manière que les fichiers de périphériques critiques soient disponibles précocément pendant la phase de démarrage.

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

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 racine sous forme de module, sinon votre système Gentoo ne pourra pas monter votre partition. Activez aussi Virtual memory et /proc file system.

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

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)
 (Sélectionnez le(s) système(s) de fichiers dont vous avez besoin.)
  <*> Ext3 journalling file system support
  <*> Second extended fs support

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

Exemple de code 1.1 : sélectionner les pilotes PPPoE

Device Drivers --->
  Networking 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.

Ensuite, activez le support du bus approprié :

Exemple de code 1.1 : activer SBUS/UPA

Console drivers --->
  Frame-buffer support --->
    [*] SBUS and UPA framebuffers
      [*] Creator/Creator3D support     (Seulement pour le « UPA slot adapter » souvent présent dans les machines Ultra.)
    [*] CGsix (GX,TurboGX) support      (Seulement pour le « SBUS slot adapter » souvent présent dans les machines SPARCStations.)

Bien sûr, vous désirerez activer le support pour OBP :

Exemple de code 1.1 : activer le support OBP

Misc Linux/SPARC drivers --->
  [*]  /dev/openprom device support

Vous aurez aussi besoin de pilotes SCSI spécifiques :

Exemple de code 1.1 : activer les pilotes SCSI spécifiques

SCSI support --->
  SCSI low-level drivers --->
    <*> Sparc ESP Scsi Driver             (Seulement pour l'adaptateur SCSI intégré à la carte  SPARC ESP.)
    <*> PTI Qlogic, ISP Driver            (Seulement pour les contrôleurs SCSI SBUS de PTI et QLogic.)
    <*> SYM53C8XX Version 2 SCSI support  (Seulement pour l'adaptateur SCSI intégré à la carte  Ultra 60.)

Pour le support de votre carte réseau, choisissez une des options suivantes :

Exemple de code 1.1 : activer le support réseau

Network device support --->
  Ethernet (10 or 100Mbit) --->
    <*> Sun LANCE support                  (Seulement pour les SPARCStation, les vieux systèmes Ultra et comme option Sbus.)
    <*> Sun Happy Meal 10/100baseT support (Seulement pour les Ultra ; supporte aussi le « qfe quad-ethernet » sur PCI et Sbus.)
    <*> DECchip Tulip (dc21x4x) PCI support (Pour certains Netra, p.ex. N1)
  Ethernet (1000Mbit) --->
    <*> Broadcom Tigon3 support (Pour des Netra récents, les Sun Fire)

Si votre machine est équipée de quatre ports Ethernet ((10/100 ou 10/100/1000), l'ordre des ports est différent par rapport à Solaris. Vous pouvez utiliser sys-apps/ethtool pour connaitre le statut des ports.

Si vous utilisez un contrôleur de disque qla2xxx , vous devez utiliser un noyau 2.6.27 ou postérieur, et vous devez aussi installer (via emerge) sys-block/qla-fc-firmware. Ensuite, exécutez make menuconfig et naviguez jusqu'à la section Device Drivers. Vous avez besoin d'ajouter le support pour charger un micro code-externe.

Exemple de code 1.1 : ativer le support pour un micro-code externe

Device Drivers  --->
   Generic Driver Options  --->
   ()  External firmware blobs to build into the kernel binary
   ()  Firmware blobs root directory

Définessez "External firmware blobs" à ql2200_fw.bin et "Firmware blobs root directory" à /lib/firmware.

Lorsque vous aurez terminé la configuration de votre noyau, poursuivez avec la section Compiler et installer. Après la compilation, vérifiez la taille du noyau :

Exemple de code 1.1 : vérifier la taille du noyau

# ls -lh vmlinux
-rw-r--r--    1 root     root         2.4M Oct 25 14:38 vmlinux

Si la taille (sans compression) est supérieure à 7,5 Mo, reconfigurez votre noyau jusqu'à ce que sa taille ne dépasse plus cette limite. Une des façons de faire est de compiler la plupart des pilotes du noyau comme des modules. Si vous ignorez cette étape, vous obtiendrez peut-être un noyau incapable de démarrer.

Toutefois, si votre noyau est un tout petit peu trop gros, vous pouvez essayer la commande strip pour le raccourcir :

Exemple de code 1.1 : raccourcir le noyau

# strip -R .comment -R .note vmlinux

Compiler et installer

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 1.1 : Compiler le noyau

# make && make modules_install

Lorsque la compilation est terminée, copiez l'image du noyau dans /boot.

Exemple de code 1.1 : installer le noyau

# cp arch/sparc/boot/image /boot/${kernel-name}

(Facultatif) Construire un disque virtuel de démarrage (initramfs)

Si vous utilisez un plan de partitionnement particulier dans lequel des emplacements majeurs (tels que /usr ou /var) se trouvent sur des partitions séparées, alors vous aurez besoin de créer un disque virtuel de démarrage (initramfs) pour que les partitions soient montées avant que le système en ait besoin.

Sans un disque virtuel de démarrage, votre système risque de ne pas démarrer correctement dans la mesure où les outils nécessaires au montage des partitions résident sur ces systèmes de fichiers. Un disque virtuel de démarrage va précharger ces outils 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. Les scripts sur le disque virtuel de démarrage assureront le montage correct des partitions avant de laisser le système continuer son démarrage.

Pour mettre en place un disque virtuel de démarrage, installez genkernel d'abord, puis laissez le générer un disque virtuel de démarrage pour vous.

Exemple de code 1.1 : construire un disque virtuel de démarrage (initramfs)

# emerge genkernel
# genkernel --install initramfs

Si vous avez besoin d'un support particulier dans le disque virtuel de démarrage (initramfs), tel que lvm ou raid, ajoutez les options appropriées à genkernel. Voir genkernel --help pour plus d'informations , ou l'exemple qui suit qui active le support pour LVM et le logiciel raid (mdadm):

Exemple de code 1.1 : construire un disque virtuel de démarrage (initramfs) pour avoir le support pour LVM et raid

# genkernel --lvm --mdadm --install initramfs

Le disque virtuel de démarrage va être stocké dans le dossier /boot. Vous pouvez trouver le fichier en listant les fichiers dont le nom commence par initramfs:

Exemple de code 1.1 : trouver le nom du disque virtuel de démarrage (initramfs)

# ls /boot/initramfs*

Maintenant continuez à lire Les modules du noyau.

1.  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 1.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 1.1 : 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).

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

Une version originale plus récente datée du 11 mai 2014 existe.

Donate to support our development efforts.

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