Chapitre 10. Compiler le noyau

Table des matières
1. La méthode générique
1.1. La compilation du noyau
1.2. L'installation du noyau
2. Préparer le chargement automatique des modules
2.1. La carte réseau
2.2. Modem câble USB
2.3. La carte son
2.4. update-modules
2.5. Le fichier /etc/modules
2.6. Les périphériques USB
2.7. Le support du bus PCMCIA
3. Préparer le redémarrage
3.1. Le fichier de configuration de LILO
3.2. Ecrire les changements sur le MBR
4. Redémarrer
5. Réinstaller les modules annexes

Il existe deux méthodes pour compiler un noyau Linux :

La méthode générique est expliquée ci-dessous, et je vous conseille de l'utiliser dans un premier temps. La méthode Debian est expliquée en annexe La méthode Debian pour compiler un noyau.

1. La méthode générique

2. Préparer le chargement automatique des modules

L'idéal est que les modules du noyau se chargent tout seuls quand on a besoin d'eux. Pour cela, il faut dire au système que quand il veut accéder au périphérique machin il doit charger le module truc. La procédure est d'écrire un fichier de configuration dans le répertoire /etc/modprobe.d/, puis d'exécuter le script update-modules qui va concaténer tous les fichiers de ce répertoire et mettre à jour le fichier de configuration des modules /etc/modprobe.conf.

2.1. La carte réseau

Si vous avez bien suivi mes instructions pour la configuration du noyau, vous avez noté le nom du module de votre carte réseau. Créez un fichier /etc/modprobe.d/reseau et écrivez dans ce fichier la ligne suivante :


alias eth0 nom_du_module

nom_du_module est le nom du module de votre carte réseau, sans l'extension ".ko".

Si le nom n'était pas indiqué dans l'aide associée à l'option de votre carte réseau lors de la configuration du noyau, allez dans le répertoire /lib/modules/numero_de_version_du_noyau/kernel/drivers/net/et regardez les fichiers qui se trouvent dans ce répertoire et dans ses sous-répertoires. Essayez de deviner le module contenant le driver de votre carte réseau (Indice : ce ne sont ni les fichiers mii.ko, slhc.ko et bsd_comp.ko, ni les fichiers dont le nom commence par ppp). Une fois que vous pensez avoir trouvé le module, utilisez la commande modinfo pour avoir des informations sur le module et lisez le champ description.

Note

Exemple :


% modinfo e100.ko

Le champ description confirme que c'est bien le module que l'on cherche :


description:    Intel(R) PRO/100 Network Driver

Le fichier /etc/modprobe.d/reseau devra donc contenir :


alias eth0 e100

Cette ligne signifie tout simplement que quand le système veut accéder au device eth0 (qui correspond à la première carte réseau Ethernet), il doit charger le module e100.

Attention

Si vous avez plusieurs cartes réseau, il faut répéter cette ligne plusieurs fois :


alias eth0 nom_du_module_de_la_carte_réseau_n°1
alias eth1 nom_du_module_de_la_carte_réseau_n°2
alias eth2 nom_du_module_de_la_carte_réseau_n°3

2.6. Les périphériques USB

Si vous avez des périphériques USB, installez les packages hotplug et usbutils (sauf si vous l'avez déjà fait au début du chapitre Faire marcher la connexion Internet) qui permettent de brancher à chaud des périphériques USB sans se préoccuper de charger les modules à la main :


# apt-get install hotplug usbutils

3. Préparer le redémarrage

3.1. Le fichier de configuration de LILO

Dans cette section, nous allons nous intéresser à la configuration de LILO. Editez le fichier de configuration de LILO /etc/lilo.conf et modifiez-le en regardant le fichier de configuration d'exemple ci-dessous et en l'adaptant à votre configuration personnelle. Normalement, vous n'avez pas grand chose à modifier, et seulement quelques options ou définitions d'O.S. à ajouter ou retirer.


# /etc/lilo.conf
# Fichier de configuration de LILO
# Formation Debian GNU/Linux par Alexis de Lattre
# http://www.via.ecp.fr/~alexis/formation-linux/

# Plus d'information dans "man lilo.conf"

# DEBUT de la partie GLOBALE

# Support des disques de grande capacité
lba32

# Disque sur lequel LILO va écrire le MBR
boot=/dev/hda

# La partition racine de Linux
root=/dev/hdXY

# Boot loader à utiliser
install=/boot/boot-menu.b

# Emplacement de la "map"
map=/boot/map

# Je veux que LILO affiche un menu pour choisir entre les O.S.
prompt

# Temps en dixièmes de secondes au bout duquel LILO
# lance l'O.S. définit par défaut
timeout=150

# Choix du mode VGA pour la console
vga=normal

# FIN de la partie GLOBALE

# DEBUT de la partie de définition des O.S.

# "Label" de l'O.S. booté par défaut
default=Linux

# Définition de Linux avec son noyau principal
image=/vmlinuz
	label=Linux
	read-only

# Définition de Linux avec son noyau de secours
image=/vmlinuz.old
	label=LinuxOLD
	read-only

# Définition d'un éventuel Windows 95, 98, ME, 2000 ou XP
# Partition sur laquelle est installé Windows
other=/dev/hdXY
	label=Windows

# FIN de la partie de définition des O.S.

4. Redémarrer

Redémarrez sur le nouveau noyau :


# reboot

5. Réinstaller les modules annexes

Les drivers annexes ont généralement besoin que l'on ait préalablement rebooté pour que la réinstallation se passe bien.