Nvidia
Un article de Linuxette.
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)

