compilation des sources des kernels 2.6.20 & 2.6.21 pour l'installation des driver's proprio nvidia




logo-debian

Ce document me sert de mémo Je le diffuse en espérant qu'il puisse servir à  d'autres personnes

Plan de ce document :

  1. verifier que la paravirtualisation est activé sur le noyau
  2. compiler son kernel
  3. installer le kernel et les headers
  4. installer les driver's nvidia
  5. retour page d'acceuil




la paravirtualisation


lors de la compilation du nvidia-kernel-source si le make bloque sur cette erreur FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol 'paravirt_ops' :
et que la paravirtualisation est activé sur le noyau ( actif depuis le 2.6.20 ) qu'on verifie avec cette commande

laurent@debian:~$ grep -i paravirt /boot/config-`uname -r` 



il va falloir recompiler son noyau et desactiver la paravirtualisation !!!





compiler son kernel
[source:cep]



on crée un dossier compile dans son home
 laurent@debian:~$ mkdir ~/compile


Installation des dépendances
#apt-get update
#apt-get install build-essential fakeroot kernel-package libncurses5-dev

Installation des sources
#apt-get install linux-source-2.6.21

on va copier l'archive dans le dossier compile que l'on viens de créer
#cd /usr/src
#cp /usr/src/linux-source-2.6.21.tar.bz2 /home/laurent/compile/
#exit

on rentre dans le repertoire compile et on decompresse l'archive et on crée le lien symbolique
laurent@debian:~$ cd ~/compile
laurent@debian:~$ tar jxf linux-source-2.6.21.tar.bz2
laurent@debian:~$ ln -s linux-source-2.6.21 linux

on va utiliser le fichier de configuration de la version précédente du noyau (celui qui tourne en ce moment sur la machine)
laurent@debian:~$ cd linux
laurent@debian:~$ cp /boot/config-$(uname -r) .config



note: pour ceux qui passent d'un ancien noyau au 2.6.21 par exemple [ probleme posé par mr eclipse !]

***La configuration actuelle étant recopiée pour le nouveau noyau, elle ne correspond pas forcément avec les nouvelles options. Les nouvelles options ou celles obsoletes possédent des valeurs par défaut. Lors de la configuration avec menuconfig ou xconfig, le fichier .config est analysé et seules les valeurs comprises sont retenues les autres sont fixées à leurs valeurs par défaut. Ces nouvelles valeurs n'étant pas forcément optimales pour votre matériel il est possible d'ajuster la configuration pour cela :

laurent@debian:~$ make oldconfig
Ce qui permet de valider et de définir correctement toutes les nouvelles options contenues dans la nouvelle version du kernel. [source de ashgenesis ]



on rentre dans la configuration du noyau
laurent@debian:~$ make menuconfig

choisir les options a compiler ,
dans notre cas dans l'option "processor type and features"
on desactive la paravirtualization support , puis on sauvegarde la config "save an alternate configuation file " ,
puis

                    

laurent@debian:~$ fakeroot make-kpkg clean
laurent@debian:~$ fakeroot make-kpkg --us --uc --initrd --append-to-version=.`date +%y%m%d` kernel_image kernel_headers



installer le kernel et les headers


on va pouvoir installer le kernel et les headers

--append-to-version=.`date +%y%m%d` permet de specifier le jour de la compilation du noyau , regardez ce que cela donne dans l'exemple ci dessous :


on passe en root
laurent@debian:~$ su
#dpkg -i linux-image-2.6.21.070526_2.6.21.070526-10.00.Custom_amd64.deb
#dpkg -i linux-headers-2.6.21.070526_2.6.21.070526-10.00.Custom_amd64.deb

on se sert de l'autocompletion , c'est a dire on tape le debut de la ligne et puis on appuie sur la touche tab exemple
dpkg -i linux-image-
dpkg -i linux-headers-


Apres avoir demarré sur le nouveau noyau il ne reste plus qu'a installer le nvidia
voir nvidia-kernel & module-assistant ici


ici une autre methode pour la compilation de son noyau