Saturday, March 03, 2007

Problems when updating nVidia driver for linx

Recently, I updated my nvidia driver. First, I found a strange thing that Gentoo has remove the ebuild nvidia-kernel and nvidia-glx, so I cannot found them using "emerge -s nvidia-kernel". But they do exist, so I must remember their name if I wanna unmerge them. So is beep-media-player.

After I have emerged the new nvidia driver. It doesn't work for my card. the log told me I should downgrade the driver version. I did that, and it still doesn't work.
finally, I found that solution at http://gentoo-wiki.com/HOWTO_nVidia_Drivers

Error: libnvidia-tls.so.1: cannot handle TLS data

After re-emerging several times the nvidia drivers, it may happen that the glx module fails to load without any apparent reason, with the error "libnvidia-tls.so.1: cannot handle TLS data". This issue is caused by two files being inverted, /usr/lib/opengl/nvidia/tls/libnvidia-tls.so.1.0.8762 and /usr/lib/opengl/nvidia/no-tls/libnvidia-tls.so.1.0.8762. The fix is quite simple: swap the two files. Before trying this, check to see if the libnvidia-tls.so.1.0.8762 file in the no-tls folder is smaller than the one in the tls folder. If it is the case, then the files are already in the correct folder, so do not swap them. If it is not the case, then you can swap them with this command:


Code: Command to swap inverted files

mv /usr/lib/opengl/nvidia/tls/libnvidia-tls.so.1.0.8762 /usr/lib/opengl/nvidia/tls/libnvidia-tls.so.1.0.8762.bak && mv /usr/lib/opengl/nvidia/no-tls/libnvidia-tls.so.1.0.8762 /usr/lib/opengl/nvidia/tls/libnvidia-tls.so.1.0.8762 && mv /usr/lib/opengl/nvidia/tls/libnvidia-tls.so.1.0.8762.bak /usr/lib/opengl/nvidia/no-tls/libnvidia-tls.so.1.0.8762

Restart X and the glx module should load fine, this time. If not, update your glibc!


Hopes this post could help you as you encounter the same problem.

1 comment:

Anonymous said...

People should read this.