Re: Compilation modules

Page principale

Répondre à ce message
Auteur: Olivier Allard-Jacquin
Date:  
À: guilde
Sujet: Re: Compilation modules
    Hello Frédéric,

Frédéric a écrit :
> Je viens de mettre à jour la machine du club photo (debian lenny), et j'ai
> 2 soucis lors de la compilation de modules :
>
> 1) nvidia : il gueule à propos du support Xen dans le noyau. Kesako ? Je
> n'ai jamais eu ce soucis sur mes autres machines utilisant le même noyau
> (2.6.25-686)...


    Il parle de Xen, ou de paravirtualisation ?


    D'habitude, c'est la paravirtualisation qui pose problème. Chez moi:


$ grep -i paravirt /boot/config-2.6.25 (*)
# CONFIG_PARAVIRT_GUEST is not set

ce qui as pour effet d'aussi désactiver les modules Xen...

(*): config-2.6.25 est le kernel que j'ai compilé à la main. Le kernel
officiel Lenny est (pour l'instant) config-2.6.25-2-686

    Donc tu as le même problème que Hervé la semaine dernière : Tu dois
compiler ton kernel à la main, en désactivant la paravirtualisation.


    Suit la procédure en attachement que j'ai écris, cela marchera mieux



-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!

    Installation des drivers nVIDIA propriétaires
        sur une Debian testing
    en utilisant le binaire nVIDIA (NVIDIA-xxxxxx.run)
        et NON PAS les packages officiels Debian
            2008/05/28


L'intérêt de cette méthode est que :
- au jour où j'écris ces lignes, les derniers drivers nVIDIA ("100.14.19") NE sont PAS disponibles dans "Debian testing"
- les drivers nVIDIA propriétaires sont incompatibles avec le kernel par défaut de "Debian testing", du fait de l'utilisation de l'option "Paravirtualization support (EXPERIMENTAL)" (aka "CONFIG_PARAVIRT")
- le dernier kernel ("2.6.24-1") est compilé avec une version de GCC moins récente que celle fournit par "Debian testing"


# Mise à jour de la distribution :
aptitude update
aptitude full-upgrade


# Installation des packages de compiation :
aptitude install gcc make


# Installation des headers du kernel :
aptitude install linux-headers-2.6-686
Remarque:
- on utilise ici "linux-headers-2.6-686", mais cela peut ne pas être toujours le cas, notamment pour un kernel > 2.6, ou non-686 (amd64 par exemple)
- cette commande ne sert à rien, car le "NVIDIA-xxxxxx.run" ne pourra pas s'installer, du fait que la version gcc qui est installée (4.2) est différente de celle utilisé pour compiler le kernel (4.1). A cause de cela, il faudra donc compiler soit-même un kernel. C'est ce que nous voyons ci-dessous


# Installation des sources du kernel :
aptitude install linux-source-2.6.24


# Installation des outils/librairies de compilation du kernel et de xorg :
aptitude install pkg-config modutils module-init-tools kernel-package build-essential bzip2 xserver-xorg-dev


# Vérification de la non-installation des package nvidia Debian :
dpkg -l |grep -i nvidia
aptitude remove --purge nvidia-glx nvidia-kernel-common
Remarques :
- ' ls -la /etc/init.d/nvidia-glx /etc/init.d/nvidia-kernel ' doit ne RIEN retourner. Si ces fichiers existent, les supprimer


# Compilation du kernel :
  cd /usr/src
  tar xjf linux-source-2.6.24.tar.bz2
  ln -s linux-source-2.6.24 linux
  cd linux
  make menuconfig
    - Sélectionner la section "Processor type and features"
    - Décocher "Paravirtualization support (EXPERIMENTAL)"
    - Sélectionner "Exit"
    - Sélectionner "Exit"
    - Sauver le ".config"
    - "grep -i CONFIG_PARAVIRT .config" doit renvoyer "# CONFIG_PARAVIRT is not set"


make-kpkg clean
export CONCURRENCY_LEVEL=4
Remarque : Je configure la variable "CONCURRENCY_LEVEL=4", afin de pourvoir bénéficier des capacités multicore de mon processeur (option "-j 4" de "make")

make-kpkg --rootcmd fakeroot --initrd --revision nv.169.12.001 -stem linux kernel_image kernel_headers
Remarque : Le numero de révision ("nv.169.12.001", pour "nVIDIA / 169.12 / compilation 001) ne doit contenir QUE des caractères alphanumériques, des caractères + et . (voir à ce sujet, "man make-kpkg" et le paramètre "--revision"). Le nom du kernel créé sera alors : "2.6.24-nv.169.12.001"

cd ..
dpkg -i linux-image-2.6.24_nv.169.12.001_i386.deb linux-headers-2.6.24_nv.169.12.001_i386.deb


# Vérification de la bonne installation du kernel :
  ls -la /boot | grep 2.6.24
(les fichiers suivants doivent être présents :
config-2.6.24
initrd.img-2.6.24
vmlinuz-2.6.24
System.map-2.6.24
)
  dpkg -l |grep 2.6.24
(on doit trouver :
ii  linux-headers-2.6.24                 nv.169.12.001                 Header files related to Linux kernel, specif
ii  linux-image-2.6.24                   nv.169.12.001                 Linux kernel binary image for version 2.6.24
)


# Utilisation des packets compilés par moi-même :
Si vous voulez vous économiser la phase de compilation, je mets à disposition sur http://olivieraj.free.fr/temp/debian/ les paquets "kernel" et "headers" générés par la compilation d'aujourd'hui. Ils sont valables pour une confguration x86 (et NON PAS pour de l'AMD64 bit) :
- http://olivieraj.free.fr/temp/debian/linux-headers-2.6.22_nv.100.14.19.001_i386.deb
- http://olivieraj.free.fr/temp/debian/linux-image-2.6.22_nv.100.14.19.001_i386.deb
- http://olivieraj.free.fr/temp/debian/MD5SUM
Après le téléchargement, il faudra passer par l'étape :
dpkg -i linux-image-2.6.22_nv.100.14.19.001_i386.deb linux-headers-2.6.22_nv.100.14.19.001_i386.deb

# Reboot
Reboot de la machine
Au démarrage, sélectionnez le kernel nouveau "2.6.24" et non pas le kernel officiel ("2.6.24-1-686" par exemple)


# Télechargement et installation des drivers nVIDIA:
Aller sur http://www.nvidia.com/Download/index.aspx?lang=en-us , et télécharger le driver adéquat ("NVIDIA-Linux-x86-196.12-pkg1.run" dans mon cas)


# Installation du driver NVIDIA propriétaire
Femer toutes les application
Passer en mode console (Ctrl+Alt+F1)
Se loguer en root
Arrêter X:
- Si on utilise KDE: /etc/init.d/kdm stop
- Si on utilise Gnome: /etc/init.d/gdm stop
Installer le driver nVIDIA propriétaire :
bash NVIDIA-Linux-x86-196.12-pkg1.run
Redémarrer X :
- Si on utilise KDE: /etc/init.d/kdm start
- Si on utilise Gnome: /etc/init.d/gdm start
Au démarrage, un gros logo "nVIDIA" doit apparaître