NVidia, come partire da un problema ed arrivare alla soluzione

Questo messaggio era partito come una richiesta d’aiuto, man mano scrivevo e ragionavo si è trasformato in una soluzione.
Visto che oramai il lavoro era stato fatto e visto che tutto sommato può tornare utile anche ad altri con problemi NVidia ho deciso di postare lo stesso il messaggio nella sua integrità.

Nella macchina su cui è installata F12 avevo provveduto ad installare i driver NVidia come spiegato nel sito di rpmfusion e tutto è andato sempre benissimo sino a questa mattina.

Accendendo la macchina me la sono ritrovata in modalità vesa ad 800x600.
Verificando nei pacchetti mi sono accorto che ieri era stato aggiornato il kernel ma non i relativi kmod che sono invece arrivati questa mattina.
Ho provveduto a fare tutti gli aggiornamenti del caso e a sistemare xorg.conf usando la copia di backup ed infatti al riavvio tutto sembrava tornato normale.

Dico sembrava perché c’è qualche cosa che non va a livello dell’estensione GLX ed infatti:

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

Ho controllato di nuovo tutti i dati relativi al kernel ed ai suoi pacchetti e tutto sembra in ordine

$ uname -r
2.6.32.9-70.fc12.i686.PAE
$ rpm -qa | grep kernel | sort
abrt-addon-kerneloops-1.0.8-2.fc12.i686
kernel-firmware-2.6.32.9-70.fc12.noarch
kernel-headers-2.6.32.9-70.fc12.i686
kernel-PAE-2.6.31.12-174.2.22.fc12.i686
kernel-PAE-2.6.32.9-67.fc12.i686
kernel-PAE-2.6.32.9-70.fc12.i686
kernel-PAE-devel-2.6.31.12-174.2.22.fc12.i686
kernel-PAE-devel-2.6.32.9-67.fc12.i686
kernel-PAE-devel-2.6.32.9-70.fc12.i686

Idem per i pacchetti di NVidia

$ rpm -qa | grep nvidia | sort
kmod-nvidia-2.6.31.12-174.2.22.fc12.i686.PAE-190.53-1.fc12.5.i686
kmod-nvidia-2.6.32.9-67.fc12.i686.PAE-195.36.08-1.fc12.2.i686
kmod-nvidia-2.6.32.9-70.fc12.i686.PAE-190.53-3.fc12.i686
kmod-nvidia-PAE-190.53-3.fc12.i686
nvidia-settings-1.0-3.4.fc12.i686
nvidia-xconfig-1.0-2.fc12.i686
xorg-x11-drv-nvidia-190.53-4.fc12.i686
xorg-x11-drv-nvidia-libs-190.53-4.fc12.i686

Andando a spulciare nel log di X si trova

$ less /var/log/Xorg.0.log

(II) LoadModule: "glx"
(II) Loading /usr/lib/xorg/modules/extensions/nvidia/libglx.so
dlopen: libGLcore.so.1: cannot open shared object file: No such file or directory
(EE) Failed to load /usr/lib/xorg/modules/extensions/nvidia/libglx.so
(II) UnloadModule: "glx"
(EE) Failed to load module "glx" (loader failed, 7)

Vado a controllare in /usr/lib/xorg/modules/extensions/nvidia

$ ls -l /usr/lib/xorg/modules/extensions/nvidia
totale 2268
lrwxrwxrwx. 1 root root      16 18 mar 13:00 libglx.so -> libglx.so.190.53
-rwxr-xr-x. 1 root root 2320204 14 mar 11:59 libglx.so.190.53

ed è tutto in ordine

Vado a cercare libGLcore.so.1

# locate libGLcore.so.1
/usr/lib/nvidia/libGLcore.so.1
/usr/lib/nvidia/libGLcore.so.190.53

sembra tutto in ordine ma allora perché non trova la libreria??

Vado a dare un occhiata in /usr/lib/nvidia/ e si svela il mistero

# ls -l /usr/lib/nvidia/
totale 21968
lrwxrwxrwx. 1 root root       17 18 mar 12:59 libcuda.so -> libcuda.so.190.53
lrwxrwxrwx. 1 root root       20 18 mar 12:59 libcuda.so.1 -> libcuda.so.195.36.08
-rwxr-xr-x. 1 root root  4107636 14 mar 11:59 libcuda.so.190.53
lrwxrwxrwx. 1 root root       19 18 mar 12:59 libGLcore.so -> libGLcore.so.190.53
lrwxrwxrwx. 1 root root       22 18 mar 12:59 libGLcore.so.1 -> libGLcore.so.195.36.08
-rwxr-xr-x. 1 root root 17349052 14 mar 11:59 libGLcore.so.190.53
lrwxrwxrwx. 1 root root       18 18 mar 12:59 libGL.so.1 -> libGL.so.195.36.08
-rwxr-xr-x. 1 root root   724636 14 mar 11:59 libGL.so.190.53
lrwxrwxrwx. 1 root root       26 18 mar 12:59 libnvidia-cfg.so.1 -> libnvidia-cfg.so.195.36.08
-rwxr-xr-x. 1 root root   118084 14 mar 11:59 libnvidia-cfg.so.190.53
lrwxrwxrwx. 1 root root       26 18 mar 12:59 libnvidia-tls.so.1 -> libnvidia-tls.so.195.36.08
-rwxr-xr-x. 1 root root     4400 14 mar 11:59 libnvidia-tls.so.190.53
lrwxrwxrwx. 1 root root       26 18 mar 12:59 libXvMCNVIDIA_dynamic.so.1 -> libXvMCNVIDIA.so.195.36.08
-rwxr-xr-x. 1 root root   179052 14 mar 11:59 libXvMCNVIDIA.so.190.53
drwxr-xr-x. 2 root root     4096 18 mar 13:02 tls

Purtroppo mancano i colori se no la cosa sarebbe molto più evidente, molti dei link sono saltati e puntano ancora alla vecchia versione 195.36.08

Non ci resta quindi che sistemare i link

# cd /usr/lib/nvidia/
# ln -sf libcuda.so.190.53 libcuda.so.1

# ln -sf libGLcore.so.190.53 libGLcore.so.1

# ln -sf libGL.so.190.53 libGL.so.1

# ln -sf libnvidia-cfg.so.190.53 libnvidia-cfg.so.1

# ln -sf libnvidia-tls.so.190.53 libnvidia-tls.so.1

# ln -sf libXvMCNVIDIA.so.190.53 libXvMCNVIDIA_dynamic.so.1

Già che ci sono do un occhiata anche in tls (in realtà mento e che dopo non funzionava ancora ma devo fare bella figura)

# cd tls
[root@Fedora12 tls]# ls -l
totale 8
lrwxrwxrwx. 1 root root   26 18 mar 12:59 libnvidia-tls.so.1 -> libnvidia-tls.so.195.36.08
-rwxr-xr-x. 1 root root 4576 14 mar 11:59 libnvidia-tls.so.190.53

Anche qui c’è un link saltato che provvedo a sistemare

# ln -sf libnvidia-tls.so.190.53 libnvidia-tls.so.1

A questo punto riavvio la macchina e tutto torna alla normalità.

Ciao Ciao, Moreno

Ottimo Moreno (e non lo scopro certo io). Mi sa che i boss ne faranno una guida, di questo thread.

Prima che ciò accada mi inserisco per chiedere un piccolo chiarimento. Quando lancio glxgears c’è un valore tipico che dovrei attendermi? Una soglia sotto il quale la mia carta fa schifo, o roba di questo tipo?

Grazie
S.

Ciao

Il valore restituito da glxgears non ha quasi alcun valore dato che dipende da numerosissime variabili, diciamo comunque che si può sopravvivere dai 300FPS in su, valori buoni partono dai 1000 1500 se si vuole giocare seriamente deve essere oltre i 6000

Comunque se vuoi testare le prestazioni della tua scheda l’unica cosa seria è usare giochi come Nexuiz che forniscono dei benchmark abbastanza attendibili.

Ciao Ciao, Moreno

Grazie.
Quindi valori sui 10.000 (che ottengo) non giustificano, suppongo, il cattivo comportamento dei video flash a tutto schermo (ci speravo un po’!)

Va be, la smetto in questo thread, essendo andato OT.

S_

mi sembra una ottima idea, che ne dici Moreno ?

Ciao

Per ottenere una guida occorrerebbe aggiungere qualche altra casistica sui possibili problemi che si possono presentare con i driver NVidia, comunque penso che si possa fare.

Ciao Ciao, Moreno