Re: Debian + NVIDIA + suspend-to-disk (etait : Debian GNU/Li…

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: ML Guilde
Old-Topics: Re: Debian GNU/Linux 5.0 updated
Subject: Re: Debian + NVIDIA + suspend-to-disk (etait : Debian GNU/Linux 5.0 updated)
    Bonsoir,

    finalement, je reviens sur ce que j'ai écrit ici :


Olivier Allard-Jacquin a écrit :
>     Personnellement, j'ai eu moins de problème que toi lors de la dernière
> upgrade du kernel, qui a fait passer en 2.6.26-2. Avant, j'étais obligé
> de compiler mon propre paquet linux-image afin de désactiver l'option
> "CONFIG_PARAVIRT" du kernel, incompatible avec les drivers NVIDIA. Mais
> depuis le 2.6.26-2, ce n'est plus la peine.


    Ma configuration :
- Intel QuadCore sur carte mère ASUS P5N-E SLI
- Debian Squeeze/Testing sur architecture i686
- Paquet kernel linux-image-2.6.26-2-686 (2.6.26-15). C'est le dernier
- Drivers NVIDIA propiéraire (le ".run", pas le paquet Debian), version
180.44 (le dernier là aussi)


    Xorg fonctionne bien, mais c'est l'hibernation (suspend to disk) qui ne
marche pas. Une fois sur deux, la sortie d'hibernation ne fonctionne pas
: L'écran se fige, la machine ne répond plus.


    J'ai résolu le problème en :
- désactivant la Paravirtualisation du kernel (CONFIG_PARAVIRT)
- compilant mon propre paquet kernel
- dans cette configuration, l'hibernation fonctionne normalement.


    J'avais écrit une mini-doc il y a quelques mois, qui expliquait comment
faire cette manipulation. Pour ceux que cela intéresse, je la remet en CC.


    Cordialement,


                        Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
            2009/04/15


L'intérêt de cette méthode est que :
- au jour où j'écris ces lignes, les derniers drivers nVIDIA ("173.14.12") 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 "Paravirtualized guest support" (aka "CONFIG_PARAVIRT")
- le dernier kernel ("2.6.26-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.3) 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.26


# 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.26.tar.bz2
  ln -s linux-source-2.6.26 linux
  cd linux
  make menuconfig
    - Sélectionner la section "Processor type and features"
    - Décocher "Paravirtualized guest support"
    - 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.173.14.12.001 -stem linux kernel_image kernel_headers
Remarque : Le numero de révision ("nv.173.14.12.001", pour "nVIDIA / 173.14.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.26-nv.173.14.12.001"

cd ..
dpkg -i linux-image-2.6.26_nv.173.14.12.001_i386.deb linux-headers-2.6.26_nv.173.14.12.001_i386.deb


# Vérification de la bonne installation du kernel :
  ls -la /boot | grep 2.6.26
(les fichiers suivants doivent être présents :
config-2.6.26
initrd.img-2.6.26
vmlinuz-2.6.26
System.map-2.6.26
)
  dpkg -l |grep 2.6.26
(on doit trouver :
ii  linux-headers-2.6.26                 nv.173.14.12.001              Header files related to Linux kernel, specif
ii  linux-image-2.6.26                   nv.173.14.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.26_nv.173.14.12.001_i386.deb
- http://olivieraj.free.fr/temp/debian/linux-image-2.6.22_nv.173.14.12.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.26_nv.173.14.12.001_i386.deb linux-headers-2.6.26_nv.173.14.12.001_i386.deb

# Reboot
Reboot de la machine
Au démarrage, sélectionnez le kernel nouveau "2.6.26" et non pas le kernel officiel ("2.6.26-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-173.14.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