projets:systemesreseaux:compilekernel
                Différences
Ci-dessous, les différences entre deux révisions de la page.
| Révision précédente | |||
| — | 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:// | ||
