Table des matières

Compiler son noyau Linux

Durée totale : 15 min à 1h (suivant la puissance de votre ordinateur) + temps de configuration du noyau
Difficulté : 2/5 .. c'est la configuration qui est difficile
Pré-requis : connection Internet fonctionnelle lors des préparatifs

Préparatifs

A ne faire qu'une seule fois
Installer (via Synaptic par exemple) les paquets suivants :

Télécharger sources noyau

Vous pouvez

cd /usr/src/
sudo tar -xjf linux-source....tar.bz2
sudo ln -s linux-source-... linux
cd linux
cd /usr/src/
sudo tar -xjf linux-....tar.bz2
sudo ln -s linux-... linux
cd linux

Pour le moment, je n'ai trouvé aucun avantage à utiliser les sources Ubuntu : le seul avantage serait qu'elles prennent un compte un de vos composants que le noyau officiel ne supporte pas.

Configurer noyau

C'est la partie difficile : Configurer son noyau. Il faudra notamment utiliser la commande

sudo make menuconfig

Compiler

Il vous faut dans un premier temps nettoyer une éventuelle précédente compilation :

sudo make-kpkg clean

Puis vous pouvez lancer la compilation du noyau :

sudo make-kpkg --append-to-version=.best --revision=1 kernel_image

Quelques explications sur make-kpkg (le man est très bien fait : si vous voulez une aide complète, faites man make-kpkg) :

Tester ... et recommencer

Après environ 20 minutes de compilation, vous obtiendrez dans le répertoire parent (un ou) plusieurs paquets. Il vous suffit d'installer celui appellé kernel-image-.. (avec les bonnes versions et révisions) soit graphiquement (double-clic sur le paquet), soit en exécutant la commande

sudo dpkg -i kernel-image-....deb

Il ne vous restera plus qu'à booter et à sélectionner le bon noyau au démarrage et admirez le résultat (ou les kernel panic !!). Une fois le noyau testé, vous pouvez le désinstaller via la commande

sudo dpkg -r kernel-image-...

Tout sera nettoyé (grub et Cie).

Compiler modules propriétaires

Nvidia

Il faut aller sur le site de nvidia (le site français a toujours du retard sur l'international). Une fois le .run téléchargé, il suffit de faire

sudo sh NVIDIA-Linux-*.run --accept-license --kernel-module-only --kernel-name=2.6.23.8.best

si vous avez déjà installé les pilotes propriétaires (mais pour un autre noyau). Sinon enlever l'option –kernel-module-only, mais vous aurez besoin de quitter votre serveur X (et donc KDE ou Gnome) pour continuer l'installation.

Pour modifier le code

Si vous souhaitez faire des modifications sur le pilote avant de le compiler et de l'installer, vous pouvez faire

sudo NVIDIA-Linux-x86-96.43.01-pkg1.run --extract-only
cd NVIDIA-Linux*/usr/src/nv
sudo nano os-registry.c

Vous aurez alors accès à certaines constantes que vous pourrez modifier avant la compilation. Attention, certaines constantes ne sont pas prises en compte par défaut: il faut alors modifier le tableau nv_parms à la fin du fichier et vérifier que le numéro après le(s) constante(s) que vous modifiez est bien 1. Ensuite, pour compiler il vous suffira d'utiliser les mêmes options que citées plus haut, mais avec avec nvidia-installer contenu dans le répertoire créé lors de l'extraction:

sudo sh /usr/src/NVIDIA*/nvidia-installer --accept-license --kernel-name=2.6.23.1.best --kernel-module-only

Madwifi

Après avoir téléchargé les sources de madwifi via SVN, vous pouvez compiler les pilotes pour votre nouveau noyau (non encore démarré) par

cd /usr/src/
sudo svn checkout http://svn.madwifi.org/madwifi/trunk madwifi
cd madwifi
sudo make KERNELPATH=/usr/src/linux
sudo make install

VirtualBox

Si vous utilisez VirtualBox, il vous faudra recompiler un module par la seule commande

sudo /etc/init.d/vboxdrv setup