Gentoo Logo

Guide genkernel pour Gentoo Linux

Table des matières :

1.  Introduction

Motivation

Destiné aux utilisateurs qui ne sont pas familiers avec la compilation de noyau, genkernel est un outil qui automatise cette procédure. Il peut vous aider à créer une image de noyau telle que celles présentes sur les CD-ROM d'installation de Gentoo, conçues pour détecter automatiquement la configuration matérielle de votre système. Genkernel peut aussi être utilisé avec du matériel qui requiert une initialisation ou un noyau fonctionnel avant que le système ne démarre.

Public visé

Si vous n'êtes pas sûr de la façon de faire pour compiler un noyau ou si vous ne connaissez pas vraiment votre configuration matérielle, alors genkernel sera un outil très pratique. Il a été conçu pour supprimer toutes les parties compliquées du processus de compilation du noyau et pour supporter la majorité du matériel disponible.

Si vous savez déjà de quels pilotes a besoin votre système pour fonctionner, cela peut vous faire économiser un bon temps de compilation. En effet, vous pouvez indiquer à genkernel de ne compiler que les pilotes requis pour votre matériel. En principe, le nombre de ces pilotes sera inférieur au nombre de pilotes de la configuration par défaut, ce qui explique la réduction de temps de compilation.

Installer genkernel

Pour pouvoir utiliser genkernel, lancez la commande emerge genkernel. Il vous est recommandé de consulter genkernel --help pour savoir comment fonctionne la version de genkernel que vous venez d'installer.

2.  Travailler avec genkernel

Comment utiliser genkernel

Bien qu'il y ait plusieurs façons de lancer genkernel, la plus simple reste genkernel all. Une configuration générique qui marche correctement pour tous les systèmes sera alors utilisée. Comme mentionné précédemment, cette méthode n'est pas sans inconvénients. La plupart des modules compilés ne seront pas utilisés et la compilation prendra beaucoup de temps. L'illustration suivante montre une approche plus efficace, en passant certains paramètres à genkernel :

Exemple de code 2.1 : exécuter genkernel (avec des options)

# genkernel --splash --no-install --no-clean --menuconfig all

Cette opération indique à genkernel de créer un noyau avec un écran de démarrage en tampon de trames (framebuffer) (--splash) qui devra être installé à la main (--no-install). Dans la phase préparatoire de compilation, genkernel n'effacera pas les objets déjà compilés (--no-clean). Enfin, un menu de configuration sera affiché, permettant à l'utilisateur de choisir quels modules seront compilés (--menuconfig).

D'autres paramètres peuvent modifier le comportement de genkernel. Par exemple, remplacez --no-install par --install pour qu'il installe automatiquement le nouveau noyau dans /boot et --symlink pour qu'il crée les liens symboliques pour vous. En utilisant le paramètre --mountboot, la partition /boot sera monté par genkernel automatiquement, si nécessaire.

Souvenez-vous que genkernel a été conçu pour simplifier la compilation du noyau et pour soulager l'utilisateur. Pour cette raison, genkernel dispose de paramètres pour faciliter l'ensemble du processus de compilation de noyau. Par exemple, certaines options vont vous aider à configurer votre noyau, tandis que d'autres concerneront la compilation en elle-même ou bien encore le débogage de la compilation. Pour les personnes qui voudraient optimiser encore plus le processus, il existe des paramètres qui concernent l'assemblage du noyau et même son initialisation.

Le reste du chapitre détaille le fonctionnement de diverses options, variables de configuration et actions disponibles pour genkernel. Pour une liste plus complète, reportez-vous aux pages de manuel de genkernel en entrant la commande man genkernel et aux commentaires dans le fichier /etc/genkernel.conf. Quelques unes des options possèdent des variantes qui accomplissent l'opération inverse. Les variantes inverses sont préfixées par no-, et leur effet est placé entre crochets anguleux, [ ].

Paramètres de configuration

Les options de configuration listées ci-dessous sont là pour vous aider à décider quelle fonctionnalité doit être activée ou pas dans le noyau, avant de le compiler. Vous pouvez même choisir si le fichier de configuration ainsi généré sera sauvegardé ou pas. Voici les principales options de configuration :

  • --no-menuconfig : ceci lance [ou ne lance pas] la commande make menuconfig (ce qui démarre un outil de configuration en mode texte) avant de compiler votre noyau.
  • --gconfig : fournit un outil de configuration du noyau qui dépend des bibliothèques GTK+. L'avantage de cette option est que la majorité des utilisateurs trouvent cette interface plus claire et facile à utiliser pour configurer le noyau, puisqu'elle utilise le système X-Window. Son inconvénient est que vous devez avoir X-Window pour l'utiliser, cela ne marchera pas dans une console en ligne de commande.
  • --xconfig : fournit un outil de configuration du noyau qui dépend des bibliothèques Qt. L'avantage de cette option est que la majorité des utilisateurs trouvent cette interface plus claire et facile à utiliser pour configurer le noyau, puisqu'elle utilise le système X-Window. Son inconvénient est que vous devez avoir X-Window pour l'utiliser, cela ne marchera pas dans une console en ligne de commande.
  • --no-save-config : sauve [ou ne sauve pas] la configuration du noyau dans un fichier situé dans le répertoire /etc/kernels pour une future utilisation.

Options de compilation

Les paramètres suivants seront généralement pris en compte pendant la compilation :

  • --kerneldir=/chemin/des/sources : pour spécifier l'endroit où se trouvent les sources du noyau et ne pas utiliser l'emplacement par défaut /usr/src/linux..
  • --kernel-config=/chemin/vers/le/fichier/config : pour spécifier l'endroit où se trouve le fichier de configuration et ne pas utiliser l'emplacement par défaut /chemin/des/sources/.config..
  • --module-prefix=/chemin/des/modules : pour spécifier où installer les modules du noyau et ne pas utiliser l'emplacement par défaut /lib/modules.
  • --no-clean : ceci lance [ou ne lance pas] make clean avant de compiler le noyau, ce qui efface toutes les dépendances et fichiers objets déjà présents.
  • --no-mrproper : ceci lance [ou ne lance pas] make mrproper avant de compiler le noyau. Comme la commande make clean, make mrproper efface toutes les dépendances et fichiers objets de l'arborescence des sources du noyau, mais elle efface également les fichiers de configuration (tels que /path/to/sources/.config ou /path/to/sources/.config.old).
  • --oldconfig : Lance la commande make oldconfig, qui essaira de collecter des informations de configuration pour votre architecture depuis un script générique situé dans /usr/share/genkernel. Ce processus n'est pas interactif ; aucune entrée de l'utilisateur n'est demandée. De plus, si --oldconfig est utilisé en même temps que --clean, cette dernière sera annulée, comme si on avait rajouté l'option --no-clean.
  • --callback="echo Hello" : cette routine effectue un appel à l'argument spécifié (ici, echo Hello) après que le noyau et les modules correspondants aient été construits, mais avant de créer l'image initrd. C'est utile lorsque vous souhaitez installer des modules externes dans l'initrd en passant la commande emerge en argument et redéfinir de ce fait un nouveau groupe de modules genkernel.
  • --no-install : lance [ou ne lance pas] la commande make install, ce qui installe votre nouveau noyau, le fichier de configuration, l'image initrd et le System.map sur votre partition montée de boot. Les modules compilés seront aussi installés.
  • --no-ramdisk-modules: empêche la copie des modules dans l'image de disque intitial (initrd) créée par genkernel. Cette option fait exception à la règel du préfixe no- ; l'ommission de ce préfixe revient à donner une option invalide à genkernel. flag.
  • --all-ramdisk-modules: copie tous les modules disponibles dans l'image de disque initial (initrd) créée par genkernel.
  • --genzimage : crée l'image initrd avant l'image du noyau (cette bidouille ne s'applique actuellement qu'aux systèmes PPC Pegasos.)

Options du compilateur

Les paramètres suivants sont supportés par genkernel et sont passés aux applications concernées lorsque le noyau est en cours de construction. Ces options affectent le compilateur utilisé dans le processus de compilation du noyau, quoiqu'à un niveau bien plus bas.

  • --kernel-cc=unCertainCompilateur : ceci spécifie un compilateur qui sera utilisé pour construire votre noyau.
  • --kernel-ld=unCertainÉditeurDeLiens : ceci spécifie un éditeur de liens utilisé dans la construction de votre noyau.
  • --kernel-as=unCertainAssembleur : ceci spécifie un assembleur qui sera utilisé pour construire votre noyau.
  • --kernel-make=unCertainMake : ceci spécifie un utilitaire GNU make alternatif qui sera utilisé pour la construction de votre noyau.
  • --utils-cc=unCertainCompilateur : ceci spécifie un compilateur qui sera utilisé pour construire les outils annexes.
  • --utils-ld=unCertainÉditeurDeLiens : ceci spécifie un éditeur de liens utilisé dans la construction des outils annexes.
  • --utils-as=unCertainAssembleur : ceci spécifie un assembleur qui sera utilisé pour construire les outils annexes.
  • --utils-make=unCertainMake : ceci spécifie un utilitaire GNU make alternatif qui sera utilisé pour la construction des outils annexes.
  • --makeopts=-jX : spécifie le nombre de fils d'exécution concurrents que make peut utiliser pendant la compilation du noyau et des outils. La variable « X » est un nombre obtenu en ajoutant un (1) au nombre de processeurs du système. Pour un système monoprocesseur, la valeur appropriée serait -j2. Un biprocesseur utiliserait -j3 et ainsi de suite. (Un système monoprocesseur qui supporte la technologie Hyper-Threading™ (ou « HT ») peut utiliser la valeur -j3, en supposant que le support du SMP (Symmetric Multi-Processing) soit activé dans le noyau au moment de la compilation.)

Options de débogage

L'utilisation d'options de débogage pendant la compilation du noyau contrôle le nombre d'informations reportées, ainsi que la présentation de celles-ci.

  • --debuglevel=NiveauVerbosité : contrôle le niveau de verbosité des informations fournies par genkernel. La variable NiveauVerbosité doit être un nombre entier compris entre 0 et 5. Le niveau « 0 » représentant le minimum d'information, tandis qu'une valeur de « 5 » fournira le plus d'informations possible sur le déroulement des opérations.
  • --debugfile=/chemin/vers/fichier/de/log : ignore la valeur de --debuglevel et renvoie toutes les informations produites par genkernel vers le fichier spécifié, qui est /var/log/genkernel.log par défaut.
  • --no-color : active [ou désactive] la sortie colorée des informations de débogage (celles reportées par genkernel).

Options d'initialisation

Les options présentées ici sont utilisées pour créer certains effets lors du démarrage du système. Certaines sont purement esthétiques, tandis que d'autres sont nécessaires pour activer une fonctionnalité particulière.

  • --no-splash : ajoute [ou n'ajoute pas] le support du splash framebuffer (l'écran de démarrage) à l'initrd que construit genkernel. Pour écraser le thème par défaut utilisé par fbsplash, utilisez --splash=MonThème (où MonThème est le nom de l'un des répertoires situés dans /etc/splash).
  • --splash-res=MaResolution : cette option vous permet de sélectionner les résolutions supportées par l'initrd au démarrage. Elle est utile pour deux raisons : d'abord, vous pouvez choisir quelles résolutions sont supportées spécifiquement par votre système, ensuite, vous réduisez la quantité d'espace occupée par l'initrd puisque ce dernier n'a plus à s'occuper des résolutions que vous n'utiliserez pas. Cependant, vous pouvez ignorer cette option si vous compilez un noyau pour un CD d'installation, ce qui permettra à bootsplash de supporter toutes les résolutions possibles.
  • --do-keymap-auto : force la sélection du modèle de clavier lors du démarrage.
  • --lvm2 : inclut le support des volumes gérés par LVM2 grâce à des binaires statiques, s'ils sont disponibles. Les binaires (statiques) LVM2 en question sont compilés lorqu'ils manquent. Assurez-vous d'avoir installé le paquet lvm2 sur votre système avec emerge lvm2 avant d'activer cette option et d'avoir lu le guide Gentoo LVM2.
  • --dmraid : inclut le support de DMRAID, l'outil qui crée des volumes RAID logiciels en utilisant le sous-système device-mapper du noyau. DMRAID découvre, active, désactive et affiche les propriétés des volumes RAID (ATARAID par exemple).
  • --luks : inclut le support de Linux Unified Key Setup (LUKS). Cela vous permettra d'utiliser un périphérique chiffré par LUKS pour placer votre système de fichiers racine (/). Spécifiez alors au chargeur de démarrage le nom de ce périphérique via la variable crypt_root (real_root doit être le nom du périphérique une fois déchiffré).
  • --disklabel: ajoute la prise en charge de disk label (étiquette de disque) and UUID (Identifiant Unique Universel) à votre disque virtuel initial (initrd).
  • --iscsi: ajoute la prise en charge de iSCSI à votre disque virtuel initial (initrd).
  • --multipath: ajoute la prise en charge de Multipath à votre disque virtuel initial (initrd).
  • --linuxrc=/chemin/vers/le/linuxrc : spécifie un script linuxrc créé par l'utilisateur qui sera appelé lors de la phase de démarrage du noyau, avant le démarrage du système. (Un script linuxrc par défaut devrait se trouver dans /usr/share/genkernel/.) Ce script vous permet d'amorcer sur un petit noyau modulaire et de charger les pilotes requis (sous forme de modules) par le système avant le démarrage.
  • --cachedir=/chemin/vers/autre/rep : remplace le chemin par défaut du cache utilisé pendant la compilation.
  • --tempdir=/chemin/vers/autre/rep : spécifie le chemin du répertoire temporaire utilisé par genkernel lors de la compilation du noyau.
  • --unionfs : inclut la prise en charge de Unification File System dans votre disque virtuel initial (initrd).

Options diverses

Les options suivantes n'ont pas pu être classées dans une autre catégorie :

  • --mountboot : détecte si le répertoire /boot a besoin d'être monté en lisant le /etc/fstab et en y prenant les instructions sur la manière de le monter.
  • --kernname=Nom : vous permet de nommer le noyau et le disque virtuel initial (initrd).qui seront copiés dans /boot, de sorte que les noms de fichier produits soient kernel-Nom-version et initramfs-Nom-version.

Actions possibles

Une action indique à genkernel ce qu'il faut construire. Voici les actions actuellement supportées :

  • all: compile/construit toutes les étapes — le disque virtuel initial (initrd), l'image du noyau et les modules.
  • bzImage: ne compile/construit que l'image du noyau
  • kernel: ne compile/construit que l'image du noyau et les modules
  • initramfs: ne compile/construit que le disque virtuel initial(initramfs)
  • ramdisk: ne compile/construit que le disque virtuel initial(initramfs)

La première action, all, est recommandée car elle construit tout ce qui est nécessaire pour obtenir un noyau fonctionnel. Rappelez-vous, une action indique juste à genkernel ce qu'il faut construire/compiler et non pas ce qu'il faut installer.

Configuration du chargeur de démarrage

Pour que genkernel puisse travailler avec votre chargeur de démarrage, vous devez procéder à trois ou quatre modifications de la configuration de celui-ci :

  1. Ajoutez par exemple real_root=/dev/sda3, aux paramètres transmis à l'image du noyau, si /dev/sda3 contient votre partition root.
  2. Si vous utilisez splash, ajoutez une option telle que vga=0x317 aux paramètres passés au noyau, ainsi que splash=verbose ou splash=silent, selon la verbosité désirée.
  3. Ajoutez l'instruction qui active l'utilisation d'une image de disque virtuel initial (initrd). Vous pouvez consulter le chapitre sur la configuration du chargeur de démarrage du Manuel Gentoo pour plus de détails.

3.  Options de configuration

Modifier /etc/genkernel.conf

La quantité d'options disponibles peut être encombrante si vous les utilisez toutes en ligne de commande :

Exemple de code 3.1 : exécution de genkernel (avec de nombreuses options)

# genkernel --loglevel=5 --no-color --no-mrproper --clean --splash \
--kerneldir=/path/to/alternate/kernel/sources --install --menuconfig \
--kernel-config=/path/to/preferred/configfile --save-config --mountboot all

Heureusement, on peut placer la plupart des paramètres les plus utilisés dans un fichier de configuration afin de pouvoir les régler ou les modifier plus facilement : /etc/genkernel.conf. Voici une liste des options les plus significatives :

  • MENUCONFIG=[yes|no] : cette option est équivalente au paramètre --menuconfig de genkernel, ce qui active l'utilisation de la commande make menuconfig pour lancer l'utilitaire de configuration du noyau en ligne de commande. Pour que l'utilitaire soit lancé automatiquement lors de la configuration du noyau, mettez la valeur « yes », sinon mettez « no ».
  • CLEAN=[yes|no] : mettre « yes » pour cette variable équivaut à utiliser l'option --clean de genkernel et lance la commande make clean pour effacer tous les fichiers objets et les dépendances de l'arborescence du noyau. Mettre « no » pour cette variable provoque l'effet domino d'activer l'option --no-clean de genkernel, qui désactive la commande make clean, ainsi que l'option --no-mrproper, qui désactive la commande make mrproper.
  • MRPROPER=[yes|no] : mettez la valeur « yes » ici pour activer l'option --mrproper de genkernel et donc lancer la commande make mrproper, ce qui nettoie l'arborescence du noyau de tout fichier de configuration. Choisissez « no » pour provoquer l'effet inverse, c'est-à-dire l'option --no-mrproper, qui ne lance pas make mrproper.
  • MOUNTBOOT=[yes|no] : mettre « yes » ici active l'option --mountboot de genkernel, qui montera automatiquement (si nécessaire) le répertoire /boot lors de la compilation. Si votre répertoire /boot est sur une partition séparée, nous vous recommandons d'activer ce paramètre, cela fera une chose de moins à se souvenir de faire.
  • SAVE_CONFIG=[yes|no] : après avoir configuré le noyau, les options choisies sont sauvées dans le fichier .config à la racine de l'arborescence du noyau. Ce fichier peut se faire écraser lors d'une recompilation de noyau ou lors d'un nettoyage. En mettant « yes » ici, cela activera l'option --save-config de genkernel qui a pour effet de sauver ce fichier dans le répertoire /etc/kernels.
  • USECOLOR=[yes|no] : mettez « yes » ici pour activer l'option --color de genkernel qui provoque l'affichage coloré des messages de genkernel, lorsque nécessaire.
  • LOGLEVEL=[0|1|2|3|4|5] : cette option permet d'ajuster la verbosité des messages produits par genkernel. La valeur 0 supprimera complètement tous les messages de débogage tandis que 5 provoquera l'affichage de la totalité des informations disponibles.

Note : d'avantages d'options sont décrites dans /etc/genkernel.conf.

En réglant les options appropriées directement dans /etc/genkernel.conf, vous pouvez diviser par deux le nombre d'arguments à placer sur la ligne de commande de genkernel :

Exemple de code 3.2 : lancer genkernel après avoir renseigné genkernel.conf

# genkernel --splash --kerneldir=/chemin/vers/sources \
--kernel-config=/chemin/vers/config --install all

On obtient des résultats identiques avec les deux approches, pourtant la majorité des options de la dernière sont rangées dans un fichier, ce qui permet leur réutilisation et leur modification future.

4.  Démarrer sur le réseau avec genkernel

Démarrer sur un CD-ROM d'installation Gentoo depuis le réseau

L'outil genkernel peut fabriquer des images de noyaux et de disque virtuel initial (initrd) qui permettent de démarrer sur le réseau (netboot). Avec un peu de chance, vous devriez pouvoir faire démarrer n'importe quel ordinateur récent par le réseau sur l'environnement fourni par le CD-ROM d'installation de Gentoo.

La magie de la chose réside dans le script linuxrc de genkernel : il va essayer de monter le CD-ROM d'installation par NFS via le réseau. Partant de là, les scripts d'initialisation du CD-ROM d'installation seront utilisés comme si le CD était présent en local.

Construire un noyau et un disque virtuel initial (initrd) qui supportent le démarrage par le réseau

Pour activer le support du démarrage par le réseau, activez les options suivantes lors de la configuration du noyau :

Attention : le support du démarrage par le réseau avec genkernel est expérimental et peut contenir quelques bogues.

Tout d'abord, l'image du noyau doit contenir les pilotes de votre carte réseau. En principe, les pilotes pour ce genre de périphériques sont compilés en tant que modules. Pourtant, il est impératif ici (pour pouvoir démarrer avec) que ces pilotes soient intégrés dans le noyau et pas en modules.

Exemple de code 4.1 : configurer un noyau 2.6.x en activant la carte réseau

Device Drivers --->
   Networking Support --->
      Ethernet (10 or 100Mbit)  ---> 
         [*] Ethernet (10 or 100Mbit)  
         <*>   le pilote de votre carte réseau ici
(Assurez-vous de choisir <*> et non <M>.)

Ensuite, nous vous suggérons d'activer IP: kernel level autoconfiguration et IP: DHCP support. Cela évitera une couche supplémentaire de complexité si l'adresse IP et le chemin NFS du CD-ROM d'installation peuvent être spécifiés par un serveur DHCP. Bien sûr, cela signifie que la ligne de commande d'appel du noyau sera la même pour toutes les machines.

Exemple de code 4.2 : configurer un noyau 2.6.x pour qu'il supporte le DHCP

Device Drivers --->
   Networking Support --->
      Networking options  
         [*] TCP/IP networking--->
         [*]   IP: kernel level autoconfiguration
         [*]     IP: DHCP support
(Ces options indiquent au noyau d'envoyer une requête DHCP au démarrage.

De plus, vous devez activer SquashFS car la majorité des CD-ROM d'installation récents de Gentoo l'utilisent. Le support de SquashFS n'est pas intégré aux sources génériques de Linux, vous devrez appliquer les correctifs nécessaires ou bien installer les gentoo-sources.

Exemple de code 4.3 : configurer le noyau pour gérer SquashFS

File systems---> 
   Miscellaneous filesystems --->
      [*] SquashFS 2.X - Squashed file system support

Une fois que le processus de compilation est terminé, créez une archive compressée (.tar.gz) qui contient les modules du noyau. Cette étape n'est nécessaire que si la version de votre noyau ne correspond pas à la version de l'image située sur le CD-ROM d'installation.

Exemple de code 4.4 : créer une archive qui contient les modules du noyau

# cd /
#  tar -cf /tmp/modules-X.Y.Z.tar.gz /lib/modules/X.Y.Z/

Selon votre méthode de démarrage par le réseau, vous devrez exécuter certaines des étapes suivantes :

Exemple de code 4.5 : créer une image de démarrage

(Créer une image etherboot.)
# emerge mknbi
# cd /boot
# mkelf-linux -params="root=/dev/ram0 init=/linuxrc ip=dhcp" kernel... initrd... > etherboot.img

(Créer une image TFTP OpenBoot / SPARC64.)
# emerge sparc-utils
# cd /boot
# elftoaout kernel... -o kernel.aout
# piggyback64 kernel.aout System.map-... initrd-...
# mv kernel.aout openboot.img (C'est l'image de démarrage.)

(PXE ne requiert pas d'étape supplémentaire, le noyau et l'initrd
peuvent être utilisés tels quels.)

Enfin, copiez ce noyau sur votre serveur TFTP. La manière de procéder dépend complètement de votre architecture et dépasse les limites de ce guide. Veuillez consulter la documentation de votre plate-forme.

Configuration du NFS

Pour mettre en place un partage NFS qui contient le CD-ROM d'installation, utilisez un périphérique de bouclage (loop device) pour y monter l'image ISO et copiez le contenu du CD dans le partage NFS. En bonus, le script initrd de genkernel désarchivera tous les fichiers .tar.gz situés dans le répertoire /nfs/livecd/add. Tout ce qu'il vous reste à faire est de copier votre archive modules-X.Y.Z.tar.gz dans le répertoire /nfs/livecd/add.

Exemple de code 4.6 : préparation du partage NFS

(En supposant que /nfs/livecd soit un partage NFS.)
# mount /tmp/gentoo-livecd.iso /mnt/gentoo -o loop
# cp -p /mnt/cdrom /nfs/livecd
# umount /mnt/cdrom

(Copiez modules.tar.gz dans /add.)
# mkdir /nfs/livecd/add
# cp /tmp/modules-X.Y.Z.tar.gz /nfs/livecd/add

Configuration du DHCP

Les images netboot demanderont une adresse IP et un chemin NFS à votre serveur DHCP. Ces informations peuvent être configurées individuellement en utilisant l'adresse MAC pour identifier les machines :

Exemple de code 4.7 : exemple de configuration dhcpd.conf

...

host netbootableMachine {
         hardware ethernet 11:22:33:44:55:66;
         fixed-address 192.168.1.10;
         option root-path "192.168.1.2:/nfs/livecd";
}
# Ici, 192.168.1.2 est le serveur NFS,
# tandis que 192.168.1.10 sera l'adresse IP du client.
...

Utilisation du démarrage par le réseau

Le démarrage par le réseau est encore une fois très spécifique à la plate-forme utilisée. Ce qui est important, c'est de spécifier les paramètres ip=dhcp et init=/linuxrc sur la ligne de commande du noyau. Cela activera la carte réseau et montera le CD-ROM d'installation via NFS. Voici quelques astuces pour certaines plates-formes :

Exemple de code 4.8 : comment démarrer par le réseau

# Etherboot : insérez le disque etherboot dans le lecteur et redémarrez.
# La ligne de commande du noyau a été spécifiée lors de la construction de
# l'image.

# Sparc64 : Tapez Stop-A lors de l'invite de démarrage, puis :
ok boot net ip=dhcp init=/linuxrc

# PXE : Configurez pxelinux (qui fait partie de syslinux),
# puis créez un fichier pxelinux.cfg/default qui contient ces lignes :

DEFAULT gentoo
TIMEOUT 40
PROMPT 1

LABEL gentoo
    KERNEL kernel-X.Y.Z
    APPEND initrd=initrd-X.Y.Z root=/dev/ram0 init=/linuxrc ip=dhcp

5.  Amorcer un disque virtuel initial de genkernel

Introduction

Si vous avez installé un disque virtuel initial (initramfs) avec genkernel, vous devriez assurément regarder les options diverses et variées de boot que vous pouvez (ou devez) définir dans la configuration de votre chargeur de démarrage. Les plus courantes sont citées ici pour référence.

Chargement de LVM ou de software-RAID

Si votre système utilise LVM ou software-RAID, vous avez sans aucun doute construit le disque virtuel initial (initramfs) en utilisant les options --lvm et --mdadm. Néanmoins, vous ne devriez pas oublier d'activer la prise en charge au moment du démarrage. Ceci peut être fait en utilisant les options dolvm et domdadm.

Exemple de code 5.1 : activer la prise en charge de LVM et/ou MDADM

# Exemple pour  GRUB 1.x
title Gentoo Linux
root (hd0,0)
kernel /vmlinuz root=/dev/md3 dolvm domdadm
initrd /initramfs-genkernel-x86_64-3.4.3

Démarrer dans le mode utilisateur unique (single-user)

If for some reason boot-up fails, you might be able to rescue your system by booting in the single-user mode. This will only load the really necessary services and then drop you to a rescue (root) shell.

Exemple de code 5.2 : démarrer dans le mode utilisateur unique

# Exemple pour GRUB 1.x
title Gentoo Linux
root (hd0,0)
kernel /vmlinuz root=/dev/md3 init_opts=S
initrd /initramfs-genkernel-x86_64-3.4.3

6.  Conclusion

Automatiser ou pas ?

Le but de genkernel est de proposer une alternative plus simple pour la compilation du noyau. Comme toujours, c'est vous qui décidez si vous voulez automatiser le processus de compilation du noyau ou pas.



Imprimer

Dernière mise à jour le 29 juin 2012

Résumé : Ce guide a pour but de constituer une documentation de référence concernant toutes les fonctions de genkernel.

Tim Yamin
Auteur

Jimi Ayodele
Contributeur

Thomas Seiler
Support NFS

Joshua Saddler
Correcteur

Camille Huot
Traducteur

José Fournier
Traducteur

Donate to support our development efforts.

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