Compilation du Noyau

Transcription

Compilation du Noyau
Table des matières
1
COMPLIER LE NOYAU LINUX.............................................................................. 2
1.1 CONSTRUCTION D'UN NOYAU MODULARISÉ .......................................... 2
1.1.1
Installer make et gcc ..................................................................................... 2
1.1.2
Installer les sources du noyau ....................................................................... 3
1.1.3
Configuration du nouveau noyau .................................................................. 4
1.1.4
Compilation du noyau ................................................................................... 6
_____________________________________________________________________
 2011 Hakim Benameurlaine
1
1
1.1
COMPLIER LE NOYAU LINUX
CONSTRUCTION D'UN NOYAU MODULARISÉ
Cet exemple utilise la version de noyau 2.6.18.. Pour identifier la version de votre
noyau, entrez la commande uname -r. Ensuite, remplacez 2.6.18 par votre version.
Par mesure de sécurité, il est préférable de créer un disque d'amorçage de secours
fonctionnel, que vous pourrez utiliser en cas d'erreur.
# fdformat /dev/fd0
Double-faces, 80 pistes, 18 sec/piste. Capacité
totale 1440 Ko.
Formatage en cours ... terminé
Vérification en cours ... terminé
# mkbootdisk
--device
/dev/fd0
2.6.18
Insert a disk in /dev/fd0. Any information on the
disk will be lost.
Press <Enter> to continue or ^C to abort:
Testez votre disque pour être certain qu'il est en mesure de faire démarrer le
système.
1.1.1 Installer make et gcc
Vérifier que l’utilitaire make est déjà installé:
# rpm -q make
Installer le paquetage s’il n’est pas déjà installé :
# yum install make
Vérifier que le compilateur gcc est déjà installé:
# rpm -q gcc
Installer le paquetage s’il n’est pas déjà installé :
# yum install gcc
_____________________________________________________________________
 2011 Hakim Benameurlaine
2
1.1.2 Installer les sources du noyau
1) Obtenir les sources :
Obtenir le paquetage qui contient les sources du Kernel :
# wget http://mirror.centos.org/centos/5.4/updates/
SRPMS/kernel-2.6.18-164.11.1.el5.src.rpm
2) Installer l’outil rpmbuild :
# yum install rpm-build
3) Installer les sources :
# rpm -Uvh kernel-2.6.18-164.11.1.el5.src.rpm
4) Installer redhat-rpm-config :
# yum install redhat-rpm-config
5) Préparer les sources :
# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target=$(uname -m) kernel-2.6.spec
Les sources sont localisées dans le répertoire :
/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686
Créer un lien symbolique :
# cd /usr/src/
# ln -s /usr/src/redhat/BUILD/kernel-2.6.18/linux2.6.18.i686
linux
6) Personaliser le nom du noyau dans le fichier /usr/src/linux/Makefile :
# EXTRAVERSION = -orabec
_____________________________________________________________________
 2011 Hakim Benameurlaine
3
1.1.3 Configuration du nouveau noyau
Le fichier de configuration du noyau est : /usr/src/linux/.config
On peut le modifier manuellement mais il existe des outils interactifs qui
permettent de le faire.
Récupération d’une ancienne configuration
Le paquetage kernel installe le fichier /boot/config-2.6.x. Ce dernier
est le fichier de configuration de la compilation utilisé par CentOS pour compiler
le noyau Linux.
Il est alors possible de réutiliser celui-ci en le copiant sous le nom
/usr/src/linux/.config pour positionner les réponses par défaut aux
différentes questions et par conséquent, de partir d’une base connue.
# cp -p /boot/config-2.6.18-164.el5
/usr/src/linux/.config
# make oldconfig
Si le fichier .config est antérieur à la version des sources en cours,
toutes les questions ayant trait au nouveau noyau sont posées.
a) Ligne de commande
# cd
/usr/src/linux
# make
config
C’est un programme interactif en mode texte. Les composants sont proposés
de façon linéaire et vous les définissez un par un.
Cette méthode ne nécessite pas l'utilisation du système X Window et ne vous
permet pas de revenir en arrière pour changer les réponses aux questions
précédentes.
_____________________________________________________________________
 2011 Hakim Benameurlaine
4
b) Menu
# cd
/usr/src/linux
# make
menuconfig
C’est un programme en mode texte piloté par des menus. Les composants sont
énumérés dans des menus, en fonction de catégories spécifiques. Changez
simplement l'indicateur des éléments que vous souhaitez inclure dans le noyau
: [*] (incorporé), [ ] (exclu), <M> (module) ou < > (module possible). Cette
méthode ne requiert pas le système X Window.
IMPORTANT
Pour que make menuconfig fonctionne, il faut installer le paquetage
suivant:
# yum install ncurses-devel
_____________________________________________________________________
 2011 Hakim Benameurlaine
5
c) Graphique (recommandée)
# cd
# make
/usr/src/linux
xconfig
Les composants sont énumérés dans divers menus et vous les sélectionnez à
l'aide de la souris. Vous avez le choix entre Y (oui), N (non) ou M
(module).
IMPORTANT
Pour que make xconfig fonctionne, il faut installer les paquetages
suivants:
# yum install qt-devel
# yum install gcc-c++
1.1.4 Compilation du noyau
_____________________________________________________________________
 2011 Hakim Benameurlaine
6
1) A l'invite du Shell, allez dans le répertoire /usr/src/linux. Toutes les
commandes doivent être faites relativement à ce répertoire.
# cd /usr/src/linux
2) Utiliser la commande make
dépendances si nécessaire.
# make
3)
dep
pour définir correctement toutes les
dep
Construire le noyau à l'aide de make bzImage.
# make
bzImage
4) Construire les modules que vous avez configurés à l'aide de make modules.
# make
modules
5) Installer les modules du noyau (même si vous n'en avez construit aucun) à l'aide
de make modules_install.
# make
Les
modules_install
modules
de
noyau
sont
installés
dans
le
répertoire
/lib/modules/<version>/kernel/drivers, où <version> correspond à la
version spécifiée dans le fichier Makefile.
6) Utiliser make install pour copier votre nouveau noyau et ses fichiers dans
/boot et ajouter une entrée dans GRUB.
# make
install
_____________________________________________________________________
 2011 Hakim Benameurlaine
7
7) Redémarrer votre système pour charger le nouveau noyau en mémoire.
# reboot
8) Vérifier la version du nouveau noyau :
# uname -r
_____________________________________________________________________
 2011 Hakim Benameurlaine
8