5

I have installed Nvidia's drivers on my Ubuntu 13 system, but according to this command (ldconfig -p | grep GL):

$ ldconfig -p | grep GL
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libGLU.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLU.so.1
    libGLEWmx.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.8
    libGLEW.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.8
    libGLESv2.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1

The 32bit version of OpenGL is pointing to mesa's libraries instead of nvidia. This causes my Steam games to refuse to launch with the error:

Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported, or your OpenGL driver needs to be updated.

Why is this the case? When the nvidia installer asked me if I wanted to install "32bit compatability libraries" (or something like that) I chose yes. How do I fix this?


Edit:

I just reinstalled the same Nvidia driver, and that apparently removed the 32bit OpenGL driver completely:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

Now Steam won't start:

You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1

Again, I chose YES when the installer asked me if I wanted to install 32bit libraries. Why are they not installed!?

Hubro
  • 1,283

3 Answers3

2

Option 1: Try running sudo ldconfig in a terminal. Reboot and try.

Option 2: If this doesn't sort it, you will have to manually add the directory of the NVidia libs (/usr/lib32) to the ldconfig configuration file (/etc/ld.so.conf.d/libc.conf) and then re-run ldconfig (as root of course)

EDIT: I would make a copy of libc.conf before changing it.

BiggJJ
  • 1,249
  • 9
  • 23
  • What directory is that? Please check my question edit. I ran sudo ldconfig but nothing changed :( – Hubro Jun 27 '13 at 01:13
  • Sorry, I cannot see where you ran only sudo ldconfig. It's late so my eyes might be deceiving me. Can you list the files in /etc/ld.so.conf.d? – BiggJJ Jun 27 '13 at 01:17
  • http://pastebin.com/XRwfiBT5 – Hubro Jun 27 '13 at 01:18
  • 1
    I added "/usr/lib32" to "libc.conf" and ran ldconfig. It has now linked the 32bit opengl driver and everything appears to be working perfectly. Can my config change cause issues in the long run? – Hubro Jun 27 '13 at 01:23
  • Glad it is working, I don't believe it will cause any issues but just keep the back-up copy of the file for a while just in case. – BiggJJ Jun 27 '13 at 01:30
2

When I reinstalled the Nvidia drivers, all mesa OpenGL drivers were removed from the library cache. My library cache looked like this:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

No 32bit drivers there! Luckily, after a quick search, I found Nvidia's 32bit drivers under /usr/lib32. I added that path to a file under /etc/ld.so.conf.d/ (any file will do, you can even make a new file) and ran sudo ldconfig. My cache now looks like this:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libGL.so (libc6) => /usr/lib32/libGL.so

And Steam works perfectly!

Hubro
  • 1,283
0

Codemonkey Correct.All you have to do is add the 32bit nvidia's driver and remove the mesa driver.

cd /etc/ld.so.conf.d/

ls

find a filename with the "i386"

mine is "i386-linux-gnu_GL.conf"

then I write,

sudo gedit i386-linux-gnu_GL.conf 

then add 32 bit driver's path using gedit.
mine is "/usr/lib32/".

If you cannot find your 32 bit driver location, Just search it.

Save. Open terminal and type:

sudo ldconfig

My Half-Life2 work perfectly after this. :D

Haikalx
  • 1
  • 1