About me News Portfolio Project Foto Contact Rss

logoLeoDav

News

Piccolo problema con una Nvidia GeForce2 MX200

Mi sono imbattuto in un piccolo ,ma rognoso, problema con una scheda video Nvidia GeForce2 MX200.
Nella speranza che la soluzione possa tornare utile a qualcuno posto qui la soluzione all'inghippo.
Preciso che la cosa vale soprattutto per Fedora 8, ma credo che possa funzionare anche per altre distribuzioni tenendo conto delle dovute differenze.
Innanzitutto per la scheda in questione occorrono i driver della serie 96xx per le vecchie schede video.
Per installarli, se avete configurato i repository di Livna, basta dare :
#yum install kmod-nvidia-96xx

kmod-nvidia-96xx è un paccheto virtuale che installerà nel sistema i seguenti rpm:
kmod-nvidia-96xx-96.43.05-8.lvn8
kmod-nvidia-96xx-2.6.24.4-64.fc8-96.43.05-8.lvn8
xorg-x11-drv-nvidia-96xx-libs-96.43.05-4.lvn8
xorg-x11-drv-nvidia-96xx-96.43.05-4.lvn8

Dovrebbe, altresi, riscrivere in automatico il file di configurazione di Xorg in /etc/X11.
Se non dovesse farlo, basta lanciare il programmino messo a disposizione da Livna che trovate sotto menu/sistema(livna-config-display).
A questo punto, lanciando glxinfo, ci si rende conto che le estensioni opengl non vengono caricate e che non c'è accelerazione grafica.
Dando una occhiata a xorg.conf si nota subito che viene caricato il driver opensource "nv" anziche quello proprietario "nvidia".
Se si prova a modificare xorg.conf ed a riavviare il server X ci si ritrova con un sistema instabile che crasha alla prima applicazione che fa uso di opengl compreso il già citato glxinfo.
Se si lancia X da una console virtuale (ad es. con startx -- :1) si puo notare che un errore del tipo : Checking for texture_from_pixmap: not prensent.
Il problema risiede nel fatto che il server X legge le estensioni opengl opensource anzichè quelle dei driver Nvidia.
Le librerie delle estensioni vengono caricate da /usr/lib/xorg/modules/extensions/libglx.so, ma questo è il file sbagliato!
All'interno della stessa directory c'è, però, la cartella "nvidia" che contiene il file giusto.
Spostiamo libglx.so da qualche altra parte e copiamo i file della cartella nvidia nella cartella madre.

#mv /usr/lib/xorg/modules/extensions/libglx.so /root/
#cp /usr/lib/xorg/modules/extensions/nvidia/* /usr/lib/xorg/modules/extensions/

A questo punto riavviamo X. Lanciando glxinfo ci accorgiamo che l'accelerazione grafica funziona:

direct rendering: Yes.
I giochini funzionano, per fortuna!
Ma se proviamo a lanciare compiz ancora nisba; niente cubo.
Non è che sono un amante delle caramelle, ma il pc non è il mio, quindi bisogna risolvere anche questo enigma!
Sempre dando un occhiata ai log di X in /var/log/Xorg.0.log ci si accorge che la scheda grafica ha una quantità di ram disponibile inferiore a quelle che sono le necessità di compiz.
La GeForce2 MX200 dispone di 32M di ram mentre compiz ne richiede 64M.
Apriamo con vi(o con quello che vi pare) il file che lancia compiz fatto da Trevino:
#vi /usr/bin/compiz-manager
Cerchiamo la riga contenente NVIDIA_MEMORY="65536" # 64MB e cambiamola con:
NVIDIA_MEMORY="32768" # 32MB

Salviamo, usciamo e riavviamo X.
Et voilà: il cubo funge....

Per comodità ecco anche il file xorg.conf:

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"

# FontPath "/usr/share/fonts/default/Type1"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/lib/xorg/modules"
EndSection

Section "Module"
Load "type1"
Load "freetype"
Load "glx"
Load "dbe"
Load "extmod"
Load "dri"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
Option "AIGLX" "on"
EndSection

Section "InputDevice"

# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

# generated from data in "/etc/sysconfig/keyboard"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "it"
Option "XkbModel" "pc105"
EndSection

Section "Monitor"

# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "JEN"
HorizSync 31.0 - 53.0
VertRefresh 56.0 - 85.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce2 MX 100/200"
Option "Composite" "Enable"
Option "XAANoOffscreenPixmaps"
Option "RenderAccel"
Option "NvAGP" "1"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "metamodes" "1024x768 +0+0"
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection
 PS: la riga: # FontPath "/usr/share/fonts/default/Type1" è commentata perchè anche questa dava problemi.

Commenti(2) | 14-04-08

Shaytan

#mv /usr/lib/xorg/modules/extensions/libglx.so /root/
#cp /usr/lib/xorg/modules/extensions/nvidia/* /usr/lib/xorg/modules/extensions/

Non era più semplice mettere in blacklist sul file /etc/default/linux-restricted-modules-common ??
Questo permette un recupero della grafica se il pc, dopo un aggiornamento kernel, non ne vuole sapere dei drivere ............ e capita spesso.
Fa anche si che non vengano caricati all'avvio i moduli nv i quali risultano inutili dopo l'installazione dei driver nvidia.
Ciao

Tue 15-04-2008 08:27

leo

inux-restricted-modules-common è un file che si usa su Ubuntu, non l'ho mai usato in Fedora. E poi il problema non riguarda il modulo del kernel ma , solamente, la libreria libglx.so.
Probabilmente c'è un modo più elegante per risolvere la cosa che fare uno spostamento di file ma, sinceramente, non ho avuto il tempo di approfondire.
Ciao

Tue 15-04-2008 21:32

Invia un commento





*I commenti sono moderati


08-Oct-2008 11:35