nouveau PC Janvier 2009 : nVidia 8400 GS

Top Page

Reply to this message
Author: jeanluctux
Date:  
To: guilde
Subject: nouveau PC Janvier 2009 : nVidia 8400 GS
Bonjour,

Lors du choix de mon nouveau PC ( http://www.guilde.asso.fr/lurker/thread/20090207.094156.df011668.fr.html ),
j'ai choisi une carte videa nVidia 8400 GS.
Suite à cette installation de base :
(http://www.guilde.asso.fr/lurker/message/20090207.104706.de3aaf4b.fr.html),
voici un peu plus en détail l'installation de la carte video, puisque c'est une partie importante.

Matériel :
    - parce que pas cher : 34 euros
    - parce que pas de ventilateur : pas de bruit
    - parce que dispo en magasin


Le choix logiciel :
    - parce qu'il y a un forum www.nvnews.net
    - parce que vu que cette carte marchait sur unbuntu mais j'ai perdu le lien


Problème qui pourront déranger certains :
    - VDPAU ne semble pas marcher :
        http://www.nvnews.net/vbulletin/showthread.php?t=125016&highlight=GeForce+8400
        Ca ne m'a pas dérangé jusqu'à présent ... donc, je suppose, je n'utilise pas.
        VDPAU, ça doit avoir un intérêt pour ceux qui veulent décodage des formats H.264, VC-1 et MPEG-2.
        C'est lié à la HD.... bref, ça me dépasse un peu pour le moment.
    - finalement, ma carte n'est pas non plus la carte vidéo du siècle. Voir plus bas.
      Je vais faire avec pour le moment.


Mes critères de test :
    - regarder les bandes annonces plein écran (ça dépend peut-être plus de flash que de ma carte)
      ==> http://www.cinemasgaumontpathe.com/cinemas/cinema-pathe-echirolles/
          Cliquer sur [Bande annonce], cliquer sur [Plein Ecran]
    - un peu de dessin 2D
        prompt> wget http://www.inkscape-fr.org/wp-content/uploads/2008/10/feu_artifice_svg.svg
        prompt> inkscape feu_artifice_svg.svg
            .... zoomer dedans
        Voyez cette image si vous voulez zoomer comme moi avec inkscape :
            prompt> wget http://perso.numericable.fr/~jljathom/temp/feu_artifice_svg.png
        et puis basculer de contexte (Alt+tab)
        et revenez sur inkscape et déclenchez le chrono..... jusqu'à un affichage complet.


    - un peu de 3D : pour voir des objets créés pour wings3d



Point de repère : il y a 3 drivers différents.
    - le driver vesa /  frame buffer.
    - le driver libre nv pour les cartes nvidia.
    - le driver nvidia propriétaire gratuit, redisribuable mais pas libre.



1/ Driver vga / frame buffer
C'est celui qui vient par défaut lors de l'install.
Et donc, le X serveur marche du premier coup. Et kde marche aussi du premier coup.
C'est un bon choix de défaut.

    Il vaut mieux qu'il soit en ordre de marche. Si un jour les autres drivers vous laissent à pied,
    vous pourrez toujours le remettre pour lancer une interface graphique, et puis aller sur le web
    pour récupérer une mise à jour.
        promt> cat /etc/X11/xorg.conf
        Section "InputDevice"
                Identifier      "Generic Keyboard"
                Driver          "kbd"
                Option          "XkbRules"      "xorg"
                Option          "XkbModel"      "pc105"
                Option          "XkbLayout"     "fr"
                Option          "XkbOptions"    "ctrl:nocaps"
        EndSection


        Section "InputDevice"
                Identifier      "Configured Mouse"
                Driver          "mouse"
        EndSection


        Section "Device"
                Identifier      "Configured Video Device"
                # laisser vide pour laisser xorg choisir. Sinon :
                # Driver "vesa"  # pour forcer à prendre vesa
        EndSection



        Section "Monitor"
                Identifier      "Configured Monitor"
        EndSection


        Section "Screen"
                Identifier      "Default Screen"
                Monitor         "Configured Monitor"
        EndSection


    Pour le garder sous le coude :
        cp /etc/X11/xorg.conf /etc/X11/xorg.conf_mon_FB_qui_marche



    test glxgears :
        prompt> glxgears
        Xlib:  extension "GLX" missing on display ":0.0".
        Error: couldn't get an RGB, Double-buffered visual
    On s'y attendait .... je le mets quand même, comme ça c'est clair


    test flash (bandes annonces flash plein ecran ) :
        flash marche : oui
        plein écran  : oui mais l'image se fige assez souvent une demi seconde avant de repartir.
                       Léger décallage son/image.


    test dessin 2D inkscape :
        impression écran du test décrit plus haut : 8 secondes


    test 3D (wings) :
        ecran gris. ça ne plante pas mais ça ne sort rien du tout.



2/ Driver libre nvidia
    Inutile d'installer les paquets nvidia-kernel*  , nvidia-glx*


    Le seul à installer, c'est xserver-xorg-video-nv


    root# apt-get install xserver-xorg-video-nv


    prompt> man nv


    /etc/X11/xorg.conf
       Section "Device"
         Identifier "Device0"
         Driver "nv"
       EndSection


    test glxgears :
        prompt> glxgears
        Xlib:  extension "GLX" missing on display ":0.0".
        Error: couldn't get an RGB, Double-buffered visual


    test flash (bandes annonces flash plein ecran ) :
        flash marche : oui
        plein écran  : oui mais l'image est sacadée en permanence et un léger décalage entre
                       le son et l'image. On sent bien nettement qu'on est sur un PC et pas sur une télé.
                       Même chose qu'avec vesa frame buffer.


    test dessin 2D :
        impression écran du test décrit plus haut : 8 secondes


    test 3D (wings) :
        ecran gris. ça ne plante pas mais ça sort rien du tout.



    Conclusion : autant prendre le driver vesa frame buffer. Ca parait quasi équivalent.


Note :
Lors du test des cas 1 (vesa) et 2 (driver libre nv), au début, je changeais juste les lignes dans
/etc/X11/xorg.conf en commentant la ligne "driver "nv"". Ce n'est pas suffisant parce que
le driver nv est chargé s'il est trouvé :
        Section "Device"
                Identifier      "Configured Video Device"
                # Driver "nv" ... commentaire sans effet
        EndSection
Donc, xorg est intelligent, et s'adapte en détectant les drivers disponibles si vous ne spécifiez pas de driver,
il prend celui qui parait le mieux.


C'est en allant voir dans /var/log/Xorg.conf qu'on s'en aperçoit vraiment :
        < (II) LoadModule: "vesa"
        < (II) Loading /usr/lib/xorg/modules/drivers//vesa_drv.so
    contre
        > (II) LoadModule: "nv"
        > (II) Loading /usr/lib/xorg/modules/drivers//nv_drv.so


Et donc, il faut spécifier
    Section "Device"
        [...]
        Driver "vesa"
    EndSection
pour être certain avoir le bon driver.



Mais de toute façon, la conclusion c'est que le driver nv ou bien vesa frame buffer sont presque équivalents.



3/ Driver nvidia proprio

    Bon, alors là, au niveau des paquets debian, c'est le bordel. Il faut savoir qui est quoi.


    Repère 1 :  Il faut toujours (qq soit la méthode) deux trucs :
        - un module noyau
        - un module pour xorg


    Repère 2 : nvidia incrémente très vite les versions, et on trouve des dénominations du genre
        96.xx.xx,  173.xx.xx (en 2005),  177.xx (Janvier 2009), 180.xx (Fevrier 2009).
        De 96, à 173, à 180, le chiffre des versions s'incrémente vite dernièrement ... ça m'a perturbé au début.
        Nvidia est assez actif, ça évolue vite.


    Alors, sur debian, il y a 3 grands groupes qui ne cohabitent pas ensemble :


    Groupe 1 :  les paquets legacy  basés sur version 96.xx
        - module noyau      : nvidia-kernel-legacy-96xx-2.6.26-1-686-bigmem
        - module pour xorg  : nvidia-glx-legacy-96xx


    Groupe 2 : les paquets nvidia (sans le legacy)
        - module noyau      : nvidia-kernel-2.6.26-1-686-bigmem
        - module pour xorg  : nvidia-glx
        Ceci est basé sur version 173.xx dans les paquets debian lenny en Février 2009.


    Groupe 3 : script NVIDIA-xxxxxx.run du site nvidia (pas spécial à debian) qui fait les deux :
        - module noyau
        - module pour xorg
    on recompilant/téléchargeant ce qu'il faut depuis le net. La version est 180.xxx en Février 2009.



    groupe 1 : les paquets legacy
        prompt> apt-cache show nvidia-glx-legacy-96xx
        ==> pas de support 8400 GS
        ==> règlé. à oublier.


    groupe 2 : les paquets nvidia (sans le legacy)
        root# apt-get install nvidia-kernel-2.6.26-1-686-bigmem
        root# apt-get install nvidia-glx


        ==> le lancement de X plante le PC. Rien de bien flagrant dans /var/log/Xorg.log
        ==> bouton reset
        ==> Ca ne marche pas. Oublions.
        ==> root# apt-get remove --purge  nvidia-kernel-2.6.26-1-686-bigmem nvidia-glx nvidia-kernel-common


    groupe 3 : avec le script NVIDIA-xxxxxx.run du site nvidia
        Olivier Allard-Jacquin a déjà fait une doc qui se trouve dans les archives guilde en
        fichier attaché à ce mail :
            http://www.guilde.asso.fr/lurker/message/20080716.204250.c7bfbec0.fr.html
        J'ai donc suivi cette doc à qq différences près.


        root# uname -r
    2.6.26-1-686-bigmem
        ==> c'est cette version de linux header qu'il me faut


        root# apt-get install linux-headers-2.6.26-1-686-bigmem
            ==> le script NVIDIA-xxxxxx.run en aura besoin pour recompiler et fabriquer son module nvidia.ko


        Je ne recompile pas tout le noyau à la main, parce que dans mon cas, le support de Paravirtualization
        ne provoque pas de souci.... pour l'instant !
                prompt> grep CONFIG_PARAVIRT /boot/config-2.6.26-1-686-bigmem
                CONFIG_PARAVIRT_GUEST=y
                CONFIG_PARAVIRT=y
                CONFIG_PARAVIRT_CLOCK=y
        Comme c'est la config par défaut de debian (et non bidouillée), je ne touche à rien et donc, seul le
        "linux-headers" suffit. Et donc pas de recompilation de noyau moi-même.
        C'est le script NVIDIA-xxxxxx.run qui fera une recompilation uniquement du module nvidia.ko et il ira le placer
        tout seul au bon endroit dans /lib/modules/2.6.26-1-686-bigmem/...


        téléchargement :
            Aller sur http://www.nvidia.com/Download/index.aspx?lang=en-us , et télécharger le driver adéquat.
            prompt> wget http://fr.download.nvidia.com/XFree86/Linux-x86/180.22/NVIDIA-Linux-x86-180.22-pkg1.run


        lancement :
            Il faut savoir que si la version de gcc courante (v. 4.3 dans mon cas) ne correspond pas à la
            version compilée du noyau (gcc v 4.1 dans mon cas), alors, le script gueule un coup.
            On peut le forcer à continuer. Dans mon cas, ça a marché avec des versions de gcc différentes,
            mais ça ne coute pas beaucoup d'effort d'avoir la même version.
            Donc :
                1- deviner à l'avance la version de gcc avec laquelle votre noyau a été compilé :
                    prompt> cat /proc/version
                    Linux version 2.6.26-1-686-bigmem (Debian 2.6.26-12) (waldi@???)
                    (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-24)) #1 SMP Mon Dec 15 18:58:47 UTC 2008
                ==> gcc version 4.1
                2- comparer avec votre version de gcc par défaut :
                prompt> gcc --version
                gcc (Debian 4.3.2-1) 4.3.2
                ==> gcc version 4.3
                3- si différent, alors installer le même compilateur gcc que le noyau :
                    root# apt-get install gcc-4.1
                4- éteindre l'environement X (repasser en console Ctrl-Alt-F1) :
                    root# /etc/init.d/kdm stop
                5- lancer le script NVIDIA-xxxxxx.run en lui passant le paramètre gcc qui convient :
                    root# env CC=gcc-4.1 sh NVIDIA-Linux-x86-180.22-pkg1.run


                6- config  /etc/X11/xorg.conf
                    Section "Device"
                        Identifier "Device0"
                        Driver "nvidia"
                    EndSection


    test glxgears :
        prompt> glxgears
            12960 frames in 5.0 seconds = 2591.931 FPS
            XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
            after 39 requests (39 known processed) with 0 events remaining.


    test flash (bandes annonces flash plein ecran ) :
        flash marche : oui
        plein écran  : oui. Pas de décalage du son. image plus fluide qu'avec les autres drivers.
                       Image qui reste figée une demi seconde parfois quand même.


    test dessin 2D :
        Là, c'est un peu la déception. Ce n'est même pas meilleur que le frame buffer !
        impression écran du test décrit plus haut : 8 secondes


        Si qq veut comparer :
        Pour récupérer l'image de base :
            prompt> wget http://www.inkscape-fr.org/wp-content/uploads/2008/10/feu_artifice_svg.svg
        Pour zoomer comme moi (à peu près) :
            prompt> wget http://perso.numericable.fr/~jljathom/temp/feu_artifice_svg.png
        Pour essayer :
            prompt> inkscape feu_artifice_svg.svg
                .... zoomer à peu près comme moi : voir feu_artifice_svg.png
        Faire un basculement de contexte :
            Alt+Tab pour aller vers une autre vue
            Alt+Tab pour revenir dans inkscape ... et déclencher le chrono jusqu'à affichage complet.
            8 secondes chez moi.... bon, c'est une carte à 34 euros ... mais est-ce que c'est la seule
           explication ?
            Je suis en 1280x1024
            Voici mon xorg :
                prompt> wget http://perso.numericable.fr/~jljathom/temp/xorg.conf_nvidia


        qué qui va pô ?


    test 3D (wings) :
        oui, là, c'est super fluide ... presque mieux qu'en 2D ... mais pas du tout le même soft, et
        pas du tout même data.
        mais j'suis content qd même.


Jean-Luc.