OldGentooWiki:Configuration et installation du noyau

De Gentoo-Quebec.

Go-previous.png Index des trucs et astuces avancés


Gentoo-quebec+Funtoo-quebec.png

configuration et installation du noyau


Sommaire

Résumé

Ce tutoriel explique comment obtenir le noyau dans ses différentes moutures : git-sources, vanilla-sources et gentoo-sources. Il couvre l'aspect configuration personnalisée en fonction de la machine sur lequel le noyau est installé. Il entre plus en détails dans la configuration en révisant chacune des sections de l'utilitaire make menuconfig tout en fournissant quelques recettes pour appliquer les configurations selon le matériel installé et détecté sur la machine visée par l'installation du noyau. Finalement, le tutoriel explique comment compiler le noyau et le rendre disponible au démarrage de l'ordinateur.

Info 64.png
Information !
Ce tutoriel, section Révision, se prête fort bien à la configuration du noyau lors d'une mise à jour de celui-ci.

Obtention du noyau

Vous avez le choix entre trois types de noyau :

  1. vanilla-sources : noyau GNU/Linux vanille tel que proposé sur kernel.org.
  2. gentoo-sources : noyau GNU/Linux vanille disponible sur kernel.org auxquel les développeurs Gentoo ont ajouté quelques patches. Dans le doute installez ceci.
  3. git-sources (expérimental) : noyau actuellement en realease candidate sur kernel.org (révision du noyau actuellement en cours de développement). N'installez ceci que si vous savez ce que vous faites....

Installation de la version Gentoo (gentoo-sources) - Recommandé

Gnome-dev-computer.png
# emerge --ask gentoo-sources

Installation de la version vanille (vanilla-sources)

Gnome-dev-computer.png
# emerge --ask vanilla-sources

Installation de la version en cours de développement (git-sources) - EXPÉRIMENTAL!

Les paquets git-sources ne sont pas disponibles dans un environnement stable. Vous devez donc ajouter une entrée au fichier /etc/portage/package.keywords pour les installer.

Gnome-dev-computer.png
# echo "sys-kernel/git-sources" >> /etc/portage/package.keywords
Gnome-dev-computer.png
# emerge --ask git-sources

Création du lien symbolique (obligatoire)

Warning 64.png
Attention !
Ce lien symbolique est obligatoire car exigé par plusieurs composantes de votre système lors de leurs compilation (librairies, pilotes, etc). Il y a deux manière de gérer ce lien symbolique : manuelle ou au travers de l'outil eselect.

Création manuelle

Gnome-dev-computer.png
# ln -s /usr/src/linux-version /usr/src/linux

Remplacez version par le numéro de la version installée avec la commande emerge précédente. Par exemple, si le paquet installé se nomme gentoo-sources-2.6.31-gentoo-r10, alors version prend la valeur 2.6.31-gentoo-r10.

Creation au travers de eselect

L'outil eselect dispose d'un module lui permettant de détecter automatiquement tous les codes sources du noyau GNU/Linux présents dans le répertoire /usr/src pour peu qu'ils aient été extraits de leur archive TAR. Pour afficher tous les noyaux présents, vous devez utiliser la commande suivante :

Gnome-dev-computer.png
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.34-gentoo
[2] linux-2.6.34-gentoo-r1
[3] linux-2.6.35-rc3 *

L'astérique située à droite du nom indique vers quels sources du noyau votre lien symbolique /usr/src/linux pointe actuellement. Pour changer ce lien, il vous faut utiliser la commande eselect kernel set suivie soit du numéro (entre crochets) de noyau désiré, soit du nom du noyau. Dans l'exemple ci-dessus, pour faire pointer /usr/src/linux sur le noyau linux-2.6.34-gentoo vous devez utiliser une des deux manières suivantes :

Gnome-dev-computer.png
# eselect kernel set 1

OU

Gnome-dev-computer.png
# eselect kernel set linux-2.6.34-gentoo

Configuration minimale

La configuration minimale vise à créer un fichier de configuration contenant des éléments de compilation pré-initialisés. Ces éléments sont des options considérées comme les meilleures par les mainteneurs du noyau. Les options sont pré-initialisées en fonction de l'architecture : 32 bits ou 64 bits.

Il y a deux façons de procéder à une configuration minimale :

  1. Les seeds de Robert Raitz (aka Pappy_Mcfae)
  2. L'outil defconfig

Les seeds de Robert Raitz, un fichier .config prêt à l'emploi, ont moins d'options pré-initalisées que le fichier .config généré par defconfig. Positionnez-vous dans le dossier /usr/src/linux avant d'effectuer la configuration minimale.

Gnome-dev-computer.png
# cd /usr/src/linux

Configuration avec defconfig

Gnome-dev-computer.png
# make defconfig

Il y a également une syntaxe pour créer un fichier de configuration en fonction d'une architecture précise.


Architecture 32 bits

Gnome-dev-computer.png
# make ARCH=i386 defconfig

Architecture 64 bits

Gnome-dev-computer.png
# make ARCH=x86_64 defconfig

Configuration avec un seed

Info 64.png
Information !
Non disponible pour le noyau de type git-sources.

Cette approche consiste à créer le fichier .config en y copiant le contenu d'un seed extrait du site Web de Robert Raitz.


Création de .config avec un seed
Exemples Instructions

Démarrage :

Pappy Mcfae home.page.png

  1. Lancez le navigateur Web
  2. Rendez-vous à l'adresse http://www.kernel-seeds.org/
  3. Cliquez sur le lien correspondant à votre architecture : x86 (32bits) ou x86_64 (64 bits)

Sélection type de noyau :

Pappy Mcfae select kernel type.png

  1. Cliquez sur le dossier correspondant au type de noyau que vous avez installé : gentoo ou vanila.

Sélection du seed :

Pappy Mcfae select seed.png

  1. Déplacez-vous dans la liste des fichiers.
  2. Cliquez sur le fichier dont le nom commence par le numéro de version du noyau installé.

Copie du seed :

Pappy Mcfae select text of seed.png

  1. Sélectionnez tout le texte.
  2. Copiez-le dans le presse-papier.
  3. Fermez le navigateur.


Éditez le fichier .config :

Gnome-dev-computer.png
# nano -w .config

Collez le contenu du presse-papier dans le fichier édité et enregistrez-le.

Personnalisation

Warning 64.png
Attention !
Les exemples des commandes insérés dans cette section ont été produits sur un Dell Studio 17. Le résultat de la commande utilisée différera d'une machine à l'autre compte tenu de ses spécifications matérielles. Le concept d'utilisation tant qu'à lui demeure le même.

Le fichier de configuration de base étant créé, vous allez maintenant le modifier afin de configurer le noyau selon les spécificités de votre machine et de votre matériel. Vous utilisez l'outil menuconfig de la commande make.

Tout au long de la personnalisation, vous aurez à travailler avec des outils telle la commande lspci. Ouvrez un second terminal pour exécuter les outils. Dans votre terminal chroot, lancez l'outil menuconfig.

Gnome-dev-computer.png
# make menuconfig

Extraction des codes et numéros des vendeurs des composants matériels

Exécutez cette commande :

Gnome-dev-computer.png
# lspci -n

Vous obtenez une liste similaire à celle-ci :

Information obtenue avec lspci -n

00:00.0 0600: 8086:0044 (rev 02)
00:02.0 0300: 8086:0046 (rev 02)
00:16.0 0780: 8086:3b64 (rev 06)
00:1a.0 0c03: 8086:3b3c (rev 06)
00:1b.0 0403: 8086:3b56 (rev 06)
00:1c.0 0604: 8086:3b42 (rev 06)
00:1c.1 0604: 8086:3b44 (rev 06)
00:1c.2 0604: 8086:3b46 (rev 06)
00:1c.3 0604: 8086:3b48 (rev 06)
00:1c.4 0604: 8086:3b4a (rev 06)
00:1c.5 0604: 8086:3b4c (rev 06)
00:1d.0 0c03: 8086:3b34 (rev 06)
00:1e.0 0604: 8086:2448 (rev a6)
00:1f.0 0601: 8086:3b09 (rev 06)
00:1f.2 0106: 8086:3b29 (rev 06)
00:1f.3 0c05: 8086:3b30 (rev 06)
00:1f.6 1180: 8086:3b32 (rev 06)
08:00.0 0280: 14e4:4353 (rev 01)
14:00.0 0c00: 1217:10f7 (rev 01)
14:00.1 0805: 1217:8120 (rev 01)
14:00.2 0180: 1217:8130 (rev 01)
20:00.0 0200: 10ec:8168 (rev 03)
ff:00.0 0600: 8086:2c62 (rev 02)
ff:00.1 0600: 8086:2d01 (rev 02)
ff:02.0 0600: 8086:2d10 (rev 02)
ff:02.1 0600: 8086:2d11 (rev 02)
ff:02.2 0600: 8086:2d12 (rev 02)
ff:02.3 0600: 8086:2d13 (rev 02)


Lancez le navigateur Web pour connaître le nom des pilotes associés au matériel.


Pilotes associés au matériel
Exemple Instructions

Identification des pilotes

Kmuto identification drivers.png

  1. Allez à l'adresse http://kmuto.jp/debian/hcl/
  2. Collez une copie de l'information obtenue avec lspci -n
  3. Cliquez sur Entrer

Liste des pilotes

Kmuto list drivers.png

  1. Notez le nom du pilote affiché dans la colonne Pilote.
  2. Fermez le navigateur.


Autres pilotes et modules

La commande précédente ne produit pas toujours toute l'information nécessaire. Complétez la liste des modules et pilotes avec cette commande :

Gnome-dev-computer.png
# lspci -kvm | grep Module

Notez à nouveau chaque nom de module en éliminant les doublons, c'est à dire ceux dont vous avez obtenu le nom à la section précédente.


Configuration personnalisée

Le nom de cette sous-section est très évocateur. Il n'y a pas de recette magique de configuration personnalisée du noyau. Chaque élément de configuration reçoit une valeur et est activé ou désactivé en fonction des composants matériels de la machine. Cependant la procédure décrite ici s'applique à tous. Son déroulement va ainsi :

  1. Rechercher les items à configurer
  2. Noter où et comment intervenir
  3. Appliquer les configurations
Emblem-documents.png
Note !
Plutôt que de noter les sections où intervenir et le comment, ouvrez un second terminal chroot. Vous effectuez les recherches dans un terminal et vous configurez dans l'autre.

Voici comment «chrooter» dans un second terminal.

Gnome-dev-computer.png
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
# export PS1="(CHROOT2) $PS1"
# cd /usr/src/linux
# make menuconfig
Warning 64.png
Attention !
Si vous installez Funtoo Linux et que vous avez créé un point de montage /mnt/funtoo, alors remplacez /mnt/gentoo par /mnt/funtoo.

Recherche d'un item à configurer

Recherchez l'item à configurer en utilisant l'un des deux terminaux dans lesquels vous avez lancé make menuconfig.


Recherche d'un élément à configurer
Exemple Instructions

Lancement de la recherche

Make menuconfig search conf parm.png

  1. Appuyez sur la touche de la barre oblique
  2. Saisissez le nom de l'élément à rechercher
  3. Appuyez sur ENTER

Utilisation de l'information trouvée

Make menuconfig search results.png

  1. Dans l'autre terminal où s'exécute make menuconfig, rendez-vous à la section indiquée dans Location:. Ici il s'agit de -> Device Drivers -> Graphics support -> /dev/agpgart....
  2. Voir la prochaine sous-section pour l'application de la configuration.
Warning 64.png
Attention !

Il arrive parfois que vous ne puissiez pas utiliser le nom du module tel qu'il a été fourni par les commandes lspci -n et lspci -kvm. C'est le cas de l'exemple où intel_agp a été inversé. Il en va de même pour les noms de module dont la syntaxe comprend un trait-d'union. Remplacez celui-ci par un caractère de soulignement.

Une autre situation est celle où vous devez scinder le nom du module. C'est le cas par exemple pour i810_RNG. Recherchez l'item à configurer pour chaque partie du nom. Utilisez l'aide et suivez les directives à la lettre.

Il arrive aussi en certaines occasions qu'il n'y ait aucun module utilisé par le noyau. Ne soyez pas inquiété. L'étape de révision vous permettra de vous assurer que votre noyau est bien configuré.

Configuration de l'élément

Configuration d'un élément
Exemple Instructions

Configuration

Make menuconfig config item.png

  1. Positionnez-vous sur l'item identifié dans Prompt: du résultat de la recherche.
  2. Déplacez le curseur sur Help et appuyez sur ENTER si vous voulez des renseignements supplémentaires. Appuyez à nouveau sur ENTER pour quitter l'aide. Lisez attentivement les directives et appliquez-les selon vos besoins.
  3. Utilisez la barre d'espacement pour activer le module en l'intégrant au noyau, *, ou en le déclarant comme module externe, M, à charger au démarrage du système.
  4. Le champ Exit actif (surbrillance), appuyez sur ENTER pour appliquer la configuration de l'élément. Vous passez de Select à Exit et à Help en vous servant des touches fléchées.


Répétez les opérations de recherche et de configuration pour chaque module que vous avez noté lors de l'exécution des commandes lspci -n et lspci -kvm.

Warning 64.png
Attention !
Il arrivera assez fréquemment qu'un paramètre de configuration soit déjà initialisé, * ou M. Soit qu'il l'ait été par la création du fichier de configuration (.config) avec un seed, soit qu'il l'ait été par l'exécution de make defconfig. Ne touchez pas à l'élément et laissez-le configuré tel quel.

Révision

Vous passez ici en revue chacune des sections de la configuration du noyau. Chaque section fait l'objet d'un tutoriel qui lui est dédiée. Ceci dans le but d'alléger le document principal tout en permettant une consultation qui soit la plus aisée possible. Le tableau qui suit, liste chaque section. Cliquez sur le lien pour en consulter le guide de configuration.

L'objectif est de revoir chacune des configurations effectuées précédemment (seed, defconfig, personnalisation) en navigant dans chaque section de configuration du noyau Linux. Cet exercice permet de vous assurer qu'aucun élément n'a été oublié. Cela vous permet également de déterminer si des éléments pré-initialisés sont vraiment nécessaires et si des éléments non initialisés s'avèrent nécessaires.

Info 64.png
Information !

Le numéro entre parenthèses correspond à la version du noyau Linux utilisé pour rédiger le tutoriel. Advenant des différences entre les versions, un tutoriel pour ladite version sera publié.

Lorsque vous configurez un noyau si vous constatez des différences et qu'un tutoriel n'est pas disponible pour la version que vous configurez, veuillez en informer Gentoo-Québec via le forum, section Wiki.
Configuration du noyau Linux / Sections de menuconfig
Sections Description sommaire
General setup (2.6.34) Éléments de configuration généraux. Habituellement aucune modification est nécessaire.
Enable loadable module support (2.6.34) Regroupement d'options pour gérer la méthode d'intégration des modules au noyau.
Enable the block layer (2.6.34) Ensemble d'options requises par le noyau pour monter les périphériques tels disques durs, médias de stockage externes (USB), unités SCSI.
Processor type and features (2.6.34) Groupe d'options pour configurer le noyau en fonction du (des) processeur(s), CPUs, de la machine. Les données du BIOS et les informations du fichier /proc/cpuinfo sont d'une très grande utilité pour initialiser les éléments de cette section.
Power management and ACPI options (2.6.34) Ensemble de paramètres pour gérer la consommation énergétique.
Bus options (PCI etc...) (2.6.34) Options de configuration des dispositifs PCI.
Executable file formats / Emulations (2.6.34) Options permettant au noyau d'exécuter des binaires au format ELF. C'est un format utilisé par différents systèmes et architectures.
Networking support (2.6.34) Options à activer pour les programmes ayant besoin du support réseau fourni par le noyau.
Device drivers (2.6.34) Ensemble d'options pour configurer les nombreux pilotes requis pour faire fonctionner le matériel.
Firmware drivers (2.6.34) Options reliées aux firmwares.
File systems (2.6.34) Options pour exploiter les différents systèmes de fichiers GNU/Linux
Kernel hacking (2.6.34) Différentes options régissant le comportement du noyau.
Security options (2.6.34) Options gérant l'usage de différentes techniques de sécurité.
Cryptographic API (2.6.34) Ensemble d'options pour activer au non différents algorithmes d'encryptage.
Virtualization (2.6.34) Options pour permettre au système GNU/Linux hôte d'exécuter d'autres systèmes d'exploitation dans des machines virtuelles. Ces options n'ont rien à voir avec VirtualBox et VMWare. Vous cachez les options à configurer en n'activant pas l'option.
Library routines (2.6.34) Ensemble d'options gouvernant l'usage de certaines librairies.

Compilation

La compilation du noyau se résume à l'exécution de deux commandes.

Gnome-dev-computer.png
# make -jx && make modules_install

Le paramètre -jx est optionnel. Toutefois, Greg Kroah-Hartman mentionne dans son bouquin Linux Kernel in a Nutshell que l'utilisation de celui-ci améliore le temps de compilation. Vous remplacez le x par une valeur équivalant à deux fois le nombre de CPUs. La commande cat /proc/cpuinfo | grep processor vous donne le nombre de CPUs. Ainsi vous spécifiez 8 si quatre CPUs équipent votre machine.

Installation

L'installation consiste à copier trois fichiers dans le répertoire /boot. Vous devez monter la partition /boot si ce répertoire a une partition qui lui est dédiée. Les fichiers à copier sont :

  1. arch/arch/boot/bzImage
  2. System.map
  3. .config

La copie se réalise de manière automatique par le biais de la commande make install.

Gnome-dev-computer.png
# make install

Ceci copie dans /boot les trois fichiers sus-mentionnés :

  1. arch/arch/boot/bzImage => /boot/vmlinuz-version du noyau
  2. System.map => System-version du noyau.map
  3. .config => config-version du noyau




Outils personnels