Solution to nvidia quadro 420

Hi All. This is not a question, but is a solution/bug that I felt was a bit tricky to work out, so I am posting it here

I installed opensuse 11.3 (x86_64) as a fresh install. I then added the nvidia proprietary drivers as described here:

SDB:NVIDIA drivers - openSUSE

This caused direct rendering to fail as a normal user, but work as root. This caused 3D applications to perform poorly or not at all. “glxinfo | head” reports that direct rendering is OK for root, but not for my user.

I had a play with strace, and found that they were opening two different libGLs:

For root it used one in
/usr/X11R6/lib64

and as a normal user, one in
/usr/lib64

Output of zypper search nvidia:

S | Name | Summary | Type
–±--------------------------±------------------------------------±----------
i | nvidia-computeG02 | NVIDIA driver for computing with → | package
| nvidia-gfx-kmp-default | NVIDIA graphics driver kernel mod-> | package
| nvidia-gfx-kmp-desktop | NVIDIA graphics driver kernel mod-> | package
| nvidia-gfx-kmp-pae | NVIDIA graphics driver kernel mod-> | package
| nvidia-gfxG01-kmp-default | NVIDIA graphics driver kernel mod-> | package
| nvidia-gfxG01-kmp-desktop | NVIDIA graphics driver kernel mod-> | package
| nvidia-gfxG01-kmp-pae | NVIDIA graphics driver kernel mod-> | package
i | nvidia-gfxG02-kmp-default | NVIDIA graphics driver kernel mod-> | package
i | nvidia-gfxG02-kmp-desktop | NVIDIA graphics driver kernel mod-> | package
| nvidia-gfxG02-kmp-pae | NVIDIA graphics driver kernel mod-> | package
i | nvidia-settings | Configuration Tool for nVidia GPUs | package
| nvidia-settings | Configuration Tool for nVidia GPUs | srcpackage
| nvidia-texture-tools | NVIDIA Texture Tools | package
| x11-video-nvidia | NVIDIA graphics driver for GeForc-> | package
| x11-video-nvidiaG01 | NVIDIA graphics driver for GeForc-> | package
i | x11-video-nvidiaG02 | NVIDIA graphics driver for GeForc-> | package

Output of rpm-q
rpm -q nvidia-gfxG02-kmp-default
nvidia-gfxG02-kmp-default-270.41.06_k2.6.34.0_12-4.1.x86_64rpm -q x11-video-nvidiaG02
x11-video-nvidiaG02-270.41.06-5.1.x86_64
rpm -q nvidia-computeG02
nvidia-computeG02-270.41.06-5.1.x86_64
rpm -q nvidia-gfxG02-kmp-desktop
nvidia-gfxG02-kmp-desktop-270.41.06_k2.6.34.0_12-4.1.x86_64

So I then unlinked the libGL.so.1 in /usr/lib64 (this was a symlink to libGL.so.1.2

and pointed this as the /usr/X11R6/lib64 version

And now it all works. I have no idea what the tecnical correctness is, as I don’t really care – works for me :wink:

That took quite some time to discover, so I thought I would post this here if anyone else finds it on google, or thinks this should be a bug report or somesuch.

lspci output:01:00.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 (rev a3)
02:00.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 (rev a3)
02:02.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 (rev a3)
03:00.0 VGA compatible controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1)
04:00.0 3D controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1)
05:00.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 (rev a3)
06:00.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 (rev a3)
06:02.0 PCI bridge: nVidia Corporation NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 (rev a3)
07:00.0 VGA compatible controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1)
08:00.0 3D controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1)

Ugh. Just found out that ldconfig will undo your good works, so next time you install anything this will breka.

Solution 2 is to modify your LD_LIBRARY_PATH to put /usr/X11R6/lib64 at the front in your .bashrc (this works for terminal launched programs…)

run:
gedit ~/.bashrc

add

export LD_LIBRARY_PATH=/usr/X11R6/lib64:$LD_LIBRARY_PATH