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