Accueil Présentation Presse Références Contacts
Linux >> Compiler un noyau Linux

Compiler un noyau Linux

Dans certains cas, nous utilisons une version personnalisée du noyau Linux 

Nous mettons à disposition les paquets Debian de ces noyaux. Vous pouvez ajouter la ligne suivante dans votre sources.list :

deb http://pub.evolix.net/ kernel/

Attention, ces noyaux ne conviennent pas pour un usage commun. Ils sont recompilés avec des patches et des options particulières qui le rendent inutilisables sur la plupart des systèmes. Utilisez les uniquement si vous savez ce que vous faîtes.

Préambule

Pour connaître la version du noyau animant le système :
$ uname -a

Le noyau en lui même est un fichier de quelques Mo. Il est souvent nommé /boot/vmlinuz-2.x.y.z-patch. C'est ce fichier qui est lancé par le boot loader (LILO, GRUB, Yaboot, etc.). Les modules éventuels se retrouvent souvent sous le répertoire /lib/modules/2.x.y.z-patch/. Parlons aussi du fichier System.map (table des symboles du noyau) qui se trouve en général dans le répertoire /boot/. Enfin, parlons du fichier initrd qui se trouve sur certains système Linux. Il s'agit d'un disque RAM initialisé au démarrage avant le noyau pour permettre un démarrage en deux phases (utile dans certains cas). Ce fichier sera également lancé par le boot loader.

Compilation du noyau Linux

Préparation du noyau

Noyau vanilla :
$ tar -jxvf linux-source-2.x.y.tar.bz2

Patches

Patches rc ou 2.x.y.z :
$ cd linux-2.x.y
$ patch -p1 < ../patch

Ne pas utiliser de noyau 2.x.y.z car les modifications sont déjà intégrées aux patches rc.

Patches grsecurity :
$ gunzip < grsecurity.patch.gz |  patch -p0
Patches IPTables :
$ cd netfilter/patch-o-matic
$ ./runme extra
Patches Debian :

Installer le paquet linux-patch-debian-2.x.y (anciennement kernel-patch-*) puis appliquer les patches :

$ cd linux-2.x.y
$ /usr/src/kernel-patches/all/2.x.y/apply/debian

Note : Debian propose des paquets linux-source-* contenant les sources vanilla patchée.

Choix des options

Pour le choix des options, on utilise make OPTIONOPTION peut valoir : Pour récupérer les options d'un autre noyau (même plus ancien) :
$ cp /boot/config-2.x.y .config
$ make oldconfig

Compilation classique

$ make dep
$ make clean
$ make bzImage 
$ make modules

Note : make dep n'est plus nécessaire pour les noyaux 2.6.

L'installation :
# cp arch/i386/boot/bzImage /boot/vmlinuz-foo
# makes modules_install

Compilation "à la sauce Debian"

Les paquets suivants sont requis :
bzip2 kernel-package build-essential
Installer des outils pour gérer les modules :
modutils 		  (noyaux 2.4)
module-init-tools  	(noyaux 2.6)
Modifier éventuellement le fichier /etc/kernel-pkg.conf puis lancer la compilation :
$ make-kpkg clean
$ make-kpkg --rootcmd fakeroot \
--revision evolix0 \
--append-to-version=-grsec-srv-p4 \
--stem linux kernel_image kernel_headers

Note : Les noyaux ont été renommés de kernel-* en linux-* (Utiliser l'option -stem linux).

Note : Pour faire apparaître -grsec dans le nom des noyaux et pas seulement dans le localversion, on l'ajoute à l'option --append-to-version et on efface le fichier localversion.grsec à la racine du noyau.

L'installation est gérée comme un paquet Debian classique.

Plan du site À propos du site Recrutement CGVS Logiciels Libres

Copyright © 2004-2015 Evolix -  Capital : 105.000 € -  Adresse: 37, rue Guibal 13003 Marseille
Courriel :   Téléphone : 04.91.05.92.54 - Déclaration CNIL 1112855 - Conforme aux normes XHTML 1.1 et CSS