projets:systemesreseaux:compilekernel
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
projets:systemesreseaux:compilekernel [2014/01/13 21:20] – [Compilation à partir des sources Linux] christian.jacolot | projets:systemesreseaux:compilekernel [2024/04/16 22:26] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Compilation du noyau Linux ====== | ||
+ | ===== Prérequis pour la compilation des sources Linux ===== | ||
+ | |||
+ | Pour compiler les sources du noyau, il vous faut les paquets Debian suivants: | ||
+ | |||
+ | * gcc < | ||
+ | * bc < | ||
+ | * wget < | ||
+ | * ncurses < | ||
+ | * gtk (si besoin pour un affichage graphique) < | ||
+ | |||
+ | Pour l' | ||
+ | * kernel-package < | ||
+ | * fakeroot < | ||
+ | |||
+ | ===== Compilation à partir des sources Linux ===== | ||
+ | |||
+ | Après avoir installé les prérequis pour pouvoir compiler le noyau, | ||
+ | vous pouvez télécharger les sources à partir du site [[https:// | ||
+ | (prendre l' | ||
+ | |||
+ | Exemple: | ||
+ | < | ||
+ | $ wget https:// | ||
+ | </ | ||
+ | |||
+ | Ensuite dérouler l' | ||
+ | < | ||
+ | $ tar xf linux-3.12.7.tar.xz | ||
+ | </ | ||
+ | |||
+ | S'y engouffrer pour explorer les sources: | ||
+ | < | ||
+ | $ cd linux-3.12.7 | ||
+ | </ | ||
+ | |||
+ | Avant de compiler, il va être nécessaire de configurer ce nouveau noyau, | ||
+ | c'est à dire, choisir parmi les innombrables options, lesquelles seront les plus adaptées à votre besoin: | ||
+ | < | ||
+ | $ make menuconfig | ||
+ | </ | ||
+ | Ce menu est le plus convivial que l'on soit sur un PC de bureau ou sur un serveur (qui n'a pas d' | ||
+ | {{ : | ||
+ | |||
+ | Il y a d' | ||
+ | |||
+ | * une interface texte avec < | ||
+ | * une interface texte encore avec < | ||
+ | * une interface graphique avec < | ||
+ | * même chose pour < | ||
+ | |||
+ | Pour notre exemple, nous pouvons laisser les options avec leur valeur par défaut. | ||
+ | Quitter le menu en sauvant les options dans le fichier '' | ||
+ | Maintenant, lançons la compilation du noyau: | ||
+ | < | ||
+ | $ make | ||
+ | </ | ||
+ | Make (sans paramètre) va nous créer un noyau Linux appelé vmlinux dans le répertoire courant (racine des sources du noyau). | ||
+ | Si vous avez un PC assez puissant, vous pouvez exploiter cette puissant, en ajoutant comme paramètre '' | ||
+ | |||
+ | Puis, il faut compiler les modules (si besoin): | ||
+ | < | ||
+ | $ make modules | ||
+ | </ | ||
+ | |||
+ | Ensuite, il faut être administrateur pour installer (copier) les binaires (noyau et modules) vers leurs emplacements définitifs dans le système: | ||
+ | * noyau dans /boot | ||
+ | * modules dans / | ||
+ | |||
+ | Installation du noyau: | ||
+ | < | ||
+ | # make install | ||
+ | </ | ||
+ | ceci copie, les fichiers suivants vers le répertoire ''/ | ||
+ | * vmlinuz (binaire vmlinux compressé), | ||
+ | * System.map, | ||
+ | * config (configuration du noyau que l'on vient de compiler), | ||
+ | * initrd.img (l' | ||
+ | |||
+ | Puis installation des modules: | ||
+ | < | ||
+ | # make modules_install | ||
+ | </ | ||
+ | |||
+ | Avant de finir, l' | ||
+ | de recréer l' | ||
+ | < | ||
+ | # cd /boot | ||
+ | # mkinitramfs -o initrd.img-3.12.7 3.12.7 | ||
+ | </ | ||
+ | |||
+ | et finalement, faire appel à grub pour identifier ce nouveau noyau et l' | ||
+ | < | ||
+ | # update-grub | ||
+ | </ | ||
+ | |||
+ | Maintenant, pour tester, pas de doute, '' | ||
+ | {{ : | ||
+ | |||
+ | ===== Compilation à partir du paquet Debian des sources Linux ===== | ||
+ | |||
+ | L' | ||
+ | installés). | ||
+ | |||
+ | Installation du paquet des sources du noyau Linux: | ||
+ | < | ||
+ | # apt-get install linux-source-3.2 | ||
+ | </ | ||
+ | |||
+ | Dérouler l' | ||
+ | < | ||
+ | # cd /usr/src | ||
+ | # tar xf linux-source-3.2.tar.bz2 | ||
+ | </ | ||
+ | |||
+ | Se glisser dans le répertoire: | ||
+ | < | ||
+ | # cd linux-source-3.2 | ||
+ | </ | ||
+ | |||
+ | Comme ci-dessus, configuration des options pour compiler le noyau Linux: | ||
+ | < | ||
+ | # make menuconfig | ||
+ | </ | ||
+ | avec la sauvegarde de la configuration dans le fichier '' | ||
+ | |||
+ | Lancement de la compilation pour obtenir un paquet debian binaire du noyau Linux: | ||
+ | < | ||
+ | # make-kpkg --initrd --revision=1.0.mdl kernel_image | ||
+ | </ | ||
+ | |||
+ | Attendre un peu, promener le chien ... :-D | ||
+ | Et le porter quand il veut plus marcher. | ||
+ | |||
+ | Ensuite, une fois, le paquet debian créé pour le noyau, il suffit juste de l' | ||
+ | < | ||
+ | # dpkg -i linux-image-3.2.0_1.0.mdl_i386.deb | ||
+ | </ | ||
+ | |||
+ | Il gère les dépendances automatiquement, | ||
+ | |||
+ | ===== Références ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// |
projets/systemesreseaux/compilekernel.txt · Dernière modification : 2024/04/16 22:26 de 127.0.0.1