Nvidia

Un article de Linuxette.

Jump to: navigation, search

Voici comment utiliser au mieux, la carte Nvidia MX440 (avec un noyau 2.6.21.5 + patch suspend2)

Sommaire

Informations

Voici les informations systèmes trouuvées:

  $ lspci
  01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 MX 440] (rev a3)
  $ sudo lspci -nv
  01:00.0 0300: 10de:0171 (rev a3) (prog-if 00 [VGA])
          Flags: bus master, 66MHz, medium devsel, latency 248, IRQ 11
          Memory at d0000000 (32-bit, non-prefetchable) [size=16M]
          Memory at c0000000 (32-bit, prefetchable) [size=128M]
          Memory at c8000000 (32-bit, prefetchable) [size=512K]
          [virtual] Expansion ROM at c8080000 [disabled] [size=128K]
          Capabilities: [60] Power Management version 2
          Capabilities: [44] AGP version 2.0

Installation

Sous Debian, il y a des paquets 'legacy' (exemple: nvidia-kernel-legacy-71xx-2.6-686). Ceux ci sont prévus pour être utilisé avec une version particulière du noyau. Chez moi, il y a un noyau perso, donc, je vais utiliser les outils fournis par nvidia.

Ce qu'il faut savoir, c'est qu'à ce jour ( 12 juillet 2007 ), tous les drivers nvidia ne sont pas utilisable pour cette carte. Si vous tentez votre chance avec la version 9755, par exemple, voila la réponse:

    WARNING: The NVIDIA GeForce4 MX 440 GPU installed in this system is supported 
    through the NVIDIA 1.0-96xx legacy Linux graphics drivers.
    Please visit http://www.nvidia.com/object/unix.html for more information.
    The 1.0-9755 NVIDIA Linux graphics driver will ignore this GPU.

Voila qui est clair!

A priori, la dernière version de l'installateur qui fonctionne pour la MX-440, est numéroté 9639. Il faut se rendre sur cette page: http://www.nvidia.com/object/linux_display_ia32_1.0-9639.html

puis récupérer le fichier: http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9639/NVIDIA-Linux-x86-1.0-9639-pkg1.run

Ou trouver des informations:

   $ cat /proc/driver/nvidia/version
   NVRM version: NVIDIA Linux x86 Kernel Module  1.0-9639  Mon Apr 16 20:20:06 PDT 2007
   GCC version:  gcc version 4.1.3 20070601 (prerelease) (Debian 4.1.2-12)
   
   $ cat /proc/driver/nvidia/agp/card 
   Fast Writes:     Supported
   SBA:             Not Supported
   AGP Rates:       4x 2x 1x 
   Registers:       0x1f000017:0x1f000104
   
   $ cat /proc/driver/nvidia/agp/status 
   Status:          Enabled
   Driver:          AGPGART
   AGP Rate:        4x
   Fast Writes:     Disabled
   SBA:             Disabled
   
   $ cat /proc/driver/nvidia/cards/0
   Model:           GeForce4 MX 440
   IRQ:             11
   Video BIOS:      04.17.00.63.42
   Card Type:       AGP
   DMA Size:        32 bits
   DMA Mask:        0xffffffff

Quels sont les valeurs des options du drivers actuellement:

   $ cat /proc/driver/nvidia/registry 
   VideoMemoryTypeOverride: 1
   EnableVia4x: 0
   EnableALiAGP: 0
   NvAGP: 3
   ReqAGPRate: 15
   EnableAGPSBA: 0
   EnableAGPFW: 0
   SoftEDIDs: 1
   Mobile: 4294967295
   ResmanDebugLevel: 4294967295
   FlatPanelMode: 0
   DevicesConnected: 0
   RmLogonRC: 1
   VbiosFromROM: 0
   ModifyDeviceFiles: 1
   DeviceFileUID: 0
   DeviceFileGID: 0
   DeviceFileMode: 438
   RemapLimit: 0
   UseCPA: 4294967295
   DetectPrimaryVga: 1
   SaveVBios: 0
   EnableBrightnessControl: 0
   PanelPWMFrequency: 1018
   PanelBrightnessLimits: 65280
   RMEdgeIntrCheck: 1

Configuration

Voici les sections les plus importante de /etc/X11/xorg.conf

   Section "Module"
       Load           "i2c"
       Load           "bitmap"
       #Load           "GLCore"
       #Load           "dri"
       Load           "glx"
   EndSection
   Section "Device"
       Identifier     "Videocard0"
       Driver         "nvidia"
       VendorName     "NVIDIA Corporation"
       BoardName      "GeForce4 MX 440"
       Option "CursorShadow" "true"
       Option "CursorShadowAlpha" "90"
       Option "CursorShadowXOffset" "4"
       Option "CursorShadowYOffset" "3"
       Option "LogoPath" "/var/tmp/logo_nvidia.png"
       Option         "AllowGLXWithComposite" "True"
       Option         "RenderAccel" "true"
       Option         "AddARGBGLXVisuals" "true"
       Option         "TripleBuffer" "true"
       Option         "NvAGP" "1"
   EndSection
   Section "ServerFlags"
       Option         "Xinerama" "0"
   EndSection
   Section "Extensions"
       #Option         "RENDER" "Enable"
       Option         "Composite" "Enable"
   EndSection

Sortie video /tele

Pour utiliser la sortie télé, j'ai installé le paquet nvtv, puis modifié /etc/X11/xorg.conf

   Section "Monitor"
       # Ecran de television : 625 lignes 60 hz
       Identifier     "Television"
       VendorName     "Unknown"
       ModelName      "tv"
       HorizSync      30-50
       VertRefresh    60  
   EndSection
   
   Section "Screen"
       Identifier     "Screen1"
       Device         "Videocard0"
       Monitor        "Television"
       DefaultDepth    24  
       SubSection     "Display"
           Depth       24  
           Modes      "640x480"
       EndSubSection
   EndSection
   
   Section "Device"
       Identifier     "Videocard0"
       Driver         "nvidia"
       VendorName     "NVIDIA Corporation"
       BoardName      "GeForce4 MX 440"
   
       Option         "AllowGLXWithComposite" "True"
       Option         "RenderAccel" "true"
       Option         "AddARGBGLXVisuals" "true"
       Option         "TripleBuffer" "true"
       Option         "NvAGP" "1" 
   
       Option          "TVOutFormat" "SVIDEO"     # ou COMPOSITE suivant ce que vous utilisez
       Option          "ConnectedMonitor" "TV"
   EndSection

Résultats

Pas de soucis à l'installation, mais il faut recommencer l'installation à chaque version/modification du noyau. ET voici le résultat:

   $ glxgears 
   8042 frames in 5.0 seconds = 1607.332 FPS
   8000 frames in 5.0 seconds = 1599.260 FPS
   7960 frames in 5.0 seconds = 1588.272 FPS
   7920 frames in 5.0 seconds = 1582.623 FPS
   7923 frames in 5.0 seconds = 1581.734 FPS
   7839 frames in 5.0 seconds = 1566.615 FPS

suspend2 et nvidia

Pour que le software suspend2 fonctionne, il n'y a qu'une chose à faire: dans la section Device de xorg.conf, il faut utiliser

   Option         "NvAGP" "1"

Peut être faudra t il aussi placer dans /etc/hibernate/suspend2.conf

   ProcSetting extra_pages_allowance 0

A tester si ça ne fonctionne pas.

drivers proprietaires qui ne s'installent pas?

J'ai eu un problème avec le drivers propriétaire qui refusait de s'installer après avoir compilé le module. La raison, je ne la connais pas vraiment, mais les log indiquent qu'il y a un mauvais nom de noyau et/ou de version de gcc (je ferais une copie d'écran un de ces jours). Le soucis, c'est qu'en fait, le module est bien compilé (nvidia.ko) mais comme l'installateur ne peut le copier, il arrète tout! Apres, bien sur plus de glxinfo ni glxgears puisque les librairies n'ont pas été copiées!

Pour passer outre ce problème, voila comment j'ai pratiqué:

   $ sudo su
   # sh NVIDIA-Linux-x86-1.0-9639-pkg1.run -x 

ceci permet d'extraire le paquet (cf NVIDIA-installer-<version> -h -A)

   # cd NVIDIA-Linux-x86-1.0-9639-pkg1
   # ./nvidia-installer

je recommence et j'attend qu'il m'envoi l'erreur. Des la première boite d'erreur, j'ai fait 'Ctrl C' pour tout stoper, puis recopier le module noyau (compilé quand même!) nvidia.ko dans bon répertoire

   # cp ./usr/src/nv/nvidia.ko /lib/module/2.6.21.suspend/kernel/drivers/video/

puis j'ai recommencer l'installation de cette façon:

   # ./nvidia-installer --no-module

Et voilà! Toutes les librairies on été installées, et plus d'erreur dans Xorg.0.log.

--Admin 26 août 2007 à 22:26 (CEST)