Nvidia troubles again.....

Didier Casse didierbe at sps.nus.edu.sg
Mon Feb 16 05:40:41 UTC 2004


On 15/02/04, at 22:34 -0000, Jim Radford <jim at grubber.org> wrote:

> 
> Sorry to bug you all again, but I can't seem to work out what my problem is 
> (apart from a low IQ).  ;)
> 
> I have updated my kernel to the latest version using up2date.
> 
> [root at mailgate root]# uname -srvpoi
> Linux 2.4.22-1.2166.nptl #1 Fri Jan 30 13:52:48 EST 2004 athlon i386 GNU/Linux
> 
> And I used the latest .run file from the Nvidia website:
> 
> NVIDIA-Linux-x86-1.0-5336-pkg1.run
> 
> Now, when I boot, I get into X fine, and I've been running for 24hrs with no 
> problem. However, I've just come to play my weekly game of Neverwinter with 
> some friends and I get this:
> 
> [root at mailgate nwn]# ./nwn
> Xlib:  extension "GLX" missing on display ":0.0".


This is the thing you're looking for. written by Mike Harris from RedHat
in the xfree86-list mailing list:

====================================================================================

You are using Nvidia hardware, which is not and has never ever 
been supported by DRI, and never will be either.  In order to get 
hardware 3D acceleration, you _must_ use Nvidia's own proprietary 
video drivers from off their website.

You may or may not have installed Nvidia's drivers already, 
however Nvidia's installer is broken, and assumes that there is 
only one and will only ever be one single libGL on the system, 
and that it will be in a specific location.  That is a very 
unreasonable assumption, and while it "just so happened" to be 
true in past OS releases, and on most other distributions, it was 
not a reasonable thing to assume would remain true forever.

Fedora Core 1 ships with not one but *2* Mesa libGL libraries.  
The first one is installed in the traditional location that
XFree86 normally installs it to, while the new one, which has
been optimized to take advantage of TLS (thread local storage)  
support, is installed in the "tls" subdirectory.  The dynamic
using the optimized tls library, and will use it automatically at
runtime if your processor supports the necessary functionality, 
otherwise it automatically falls back to using the regular Mesa 
libGL which also has some optimization in it (compared to stock 
Mesa).

The problem is that Nvidia's installer, is NOT RPM package 
friendly, and is NOT friendly at all with the system.  It 
_deletes_ system supplied files, thus making the rpm packages 
that own those files inconsistent in the system.  Since it only 
deletes the normal libGL, and not the TLS optimized one, when you 
run a game which uses OpenGL, the dynamic linker searches the 
library search path, etc. and the first library it finds, is 
*NOT* the Nvidia libGL, but is instead the TLS enabled Mesa 
libGL.  Mesa libGL then attempts to load a DRI driver for 
hardware acceleration, and since there is no such thing as an 
Nvidia DRI driver, it fails and prints the message "DRI 
unavailable".

You have different options to solve this Nvidia driver installer 
bug:

1) Write to Nvidia and tell them to fix their installer to not 
   break your system.

or

2) Manually remove the Mesa TLS libGL

or

3) Download the www.livna.org Nvidia driver RPM packages, which 
   are much saner than installing the driver from Nvidia's 
 tarballs.

Before assuming that it is your operating system at fault when 
you have a problem during upgrading or configuration, be sure to 
consider all possibilities - especially if you are using 
unsupported proprietary drivers or software.

For further information, search the list archives, as there have 
been more than one person hit by this Nvidia proprietary driver 
installer bug.

Hope this helps.
-- 
Mike A. Harris

====================================================================================

Cheers,
Didier.

---
PhD student.

Singapore Synchrotron Light Source (SSLS)
5 Research Link,
Singapore 117603

Email: slsbdfc at nus dot edu dot sg /
didierbe at sps dot nus dot edu dot sg








More information about the fedora-list mailing list