[PD] Gem, Nvidia under Linux
Johannes M Zmoelnig
zmoelnig at iem.at
Wed Nov 24 11:08:31 CET 2004
William Robinson wrote:
> I've just been going through this problem aswell:
>>pd -rt -lib Gem
>>and it gives the error:
>>/usr/lib/pd/extra/Gem.pd_linux: libnvidia-tls.so.1: cannot handle TLS data
>>Gem: can't load library
>>So it looks like it found the library fine, but it has an issue with
>>the nvidia drivers? Can someone point me in the right direction?
> I found a strange solution that worked here:
> http://imgseek.sourceforge.net/faq.html#faq3. This has been irritating me for
> a couple of days. I thought I should share this as it was unresolved on this
it may be unresolved on this list because it is not a problem of pd but
about nvidia's drivers and TLS (thread local storage)
the problem is about your kernel:
2.6.x allows using TLS while 2.4.x does not.
now when you are running a 2.4-kernel you cannot use nvidia's
TLS-libraries and thus you have to remove them.
i am not sure, but i think it is the other way round too: when using a
TLS-enabled kernel (2.6) you have to use the TLS-enabled libraries and
thus you have to add them.
debian solves this via dynamic creation/deletion of symlinks into/from
they are using a helper-application "tls_test", but i think this is
added by the debian-maintainer
probably other distributions (should) do it alike ??
PS: this is from nvidia-glx/README.Debian
A Note about Thread Local Storage (TLS):
Under 2.6.x kernels a new TLS method is used and different libraries are
required. NVIDIA provides these libraries and at boot time (via
/etc/init.d/nvidia-glx) a test is performed on your system to see if
your require these extra libraries. Having the TLS libraries installed
(in /usr/lib/tls and libglx.so) running under a 2.4.x kernel will cause
problems when running GL applications. Likewise, not having these libraries
installed under 2.6.x might prevent X from starting at all.
To switch back and forth between the two systems simply run:
This is run automatically at boot time.
To force a certain setting (e.g. you may have a 2.4 kernel patched for
NPTL) place USE_TLS=1 in /etc/defaults/nvidia-glx for using the nvidia tls
libraries. USE_TLS=0 for not using tls libraries. This isn't normally
necessary for most users.
Symlinks are created in /usr/lib/tls from libraries installed in
/usr/lib/nvidia. Also the libglx.so.VERSION in
/usr/X11R6/lib/modules/extensions/ is symlinked to a tls-enabled one.
More information about the Pd-list