Outils pour utilisateurs

Outils du site


debian:debian_compilation_noyau_facile

Compilation facile et rapide du noyau Linux (pour Debian et Ubuntu)

Les versions récentes du noyau Linux (2.6.38 et sup. pour les en-têtes) fournissent une “cible” pour compiler les sources du noyau et créer des paquets “.deb” de l'image du noyau et des en-têtes (headers), voici comment en profiter.

Un signe $ précède les commandes qui ne nécessitent pas de droits root ; un signe # précède celles qui nécessitent des droits root (ces signes ne font PAS partie des commandes). Les lignes qui ne commencent pas par un signe $ ou # correspondent au résultat de la commande précédente.
Votre répertoire personnel (/home/vous) est symbolisé par un signe ~ (tilde) en console.

Préparatifs

Les sources du noyau

Vous avez besoin ds sources du noyaux, soit celles de votre distribution, soit les sources dites “vanilla” disponibles sur le site de développement du noyau Linux kernel.org.

Tout ça peut se faire en une commande :

$ wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.tar.bz2

Ici nous téléchargeons les sources d'un noyau 2.6.39, adaptez à la version désirée.

Les outils

Une simple commande suffira à installer les autres outils nécessaires :

# apt-get install build-essential

Pour bénéficier d'une interface de configuration agréable vous devrez installer des librairies supplémentaires, ici nous utiliserons la magnifique (;-) ) interface “nconfig” qui ne nécessite qu'une dépendance supplémentaire :

# apt-get install libncurses5-dev

Ajout au groupe "src"

Cette étape est facultative, mais comme dans cet exemple nous effectuerons la compilation dans le répertoire /sur/src, pour nous faciliter la vie nous ajoutons notre utilisateur “tux” au groupe “src”. De cette manière il aura accès au répertoire /usr/src sans utiliser les droits root :

# usermod -a -G src tux
$ newgrp src

Mettre les sources en place

Nous admettons que les sources téléchargées sont présentes dans votre répertoire personnel symbolisé par “~”, nous les déplaçons vers /usr/src (mv), on se place dans /usr/src (cd), on décompresse l'archive .tar.bz2 avec tar. Ensuite on donne un nom personnalisé au répertoire des sources (ici “linux-source-2.6.39-perso64”) et se place à l'intérieur :

$ mv ~/linux-2.6.39.tar.bz2 /usr/src
$ cd /usr/src
$ tar xjf linux-2.6.39.tar.bz2
$ mv linux-2.6.39 linux-source-2.6.39-perso64
$ cd linux-source-2.6.39-perso64/

Configuration et compilation

Copier la configuration du noyau courant

La configuration du noyau courant (dont on sait qu'il fonctionne) est une bonne base. Si vous disposez déjà d'un fichier de config personnalisé vous l'utiliserez à la place. Vous pouvez également partir d'un fichier vierge mais la configuration sera longue, fastidieuse (mais instructive) et sujette aux erreurs :

$ cp /boot/config-$(uname -r) .config

Configurer

“Configurer” les sources revient à choisir quelles options de compilation seront utilisées, quels modules seront construit, comment ils le seront (à l'intérieur du noyau ou comme modules à charger dynamiquement). L'objet ici n'est pas d'explorer les options de configuration, reportez vous à la section “Liens” pour des sites de référence sur le sujet.

Tout d'abord nous créons un fichier “.config” type, et passons en revue les nouvelles options (s'il y en a) qui n'existaient pas dans la configuration du noyau plus ancien :

$ make oldconfig

make oldconfig passe en revue les nouvelles options de configuration :


Prenez le temps de vous documentez sur ces nouvelles options, ou acceptez les choix par défaut (pas forcément optimum mais sans danger).

Ensuite on personnalise les options de compilation :

$ make nconfig

nconfig en action :


Compiler et créer des paquets ".deb"

Pour créer des paquets “.deb” de l'image du noyaux et des en-têtes (“headers”, nécessaires pour compiler des modules extérieurs aux sources du noyau), utilisez :

$ make deb-pkg

Et c'est tout, à la fin du processus de compilation vous disposerez dans /usr/src de paquets linux-image-$(version).deb et linux-headers-$(version).deb prêts à être installés, par exemple avec “dpkg -i”, ou un utilitaire comme “gdebi”. La création d'une disque initial de démarrage (initrd ou initramfs) et la mise à jour de grub seront automatiques lors de l'installation, il ne reste qu'à redémarrer sur le nouveau noyau.

Pour accélérer la compilation vous pouvez augmenter le nombre de processus alloués, par exemple sur un processeur dual-core vous pouvez tester avec 4 processus :
make -j 4 deb-pkg

Pour les curieux

Si vous voulez tout savoir sur le script qui permet d'utiliser la cible “deb-pkg” il suffit de regarder dans le répertoire des sources du noyau sous /scripts/package/builddeb. C'est très instructif et suffisamment commenté pour être accessible.

Liens

debian/debian_compilation_noyau_facile.txt · Dernière modification: 2014/05/09 18:56 (modification externe)