El Foro

PlayOnLinux is unable to find 32bits OpenGL libraries in Ubuntu 14.04 64bit

Autor Respuestas
myromance123 Friday 2 May 2014 at 16:33
myromance123

I have managed to solve this problem. Please scroll down to see how I resolved it. This only applies to 64bit Ubuntu systems AFTER 13.04. The fix is not noob or beginner friendly, you will have to step outside your comfort zone.

Citar


Hi there,
first off the important information as per sticky requirements:

1. Ubuntu 14.04 64bit
2. PlayOnLinux 4.2.2
3. Unity 7
4. POL throws the following "PlayOnLinux is unable to find 32bits OpenGL libraries".
5. I am running an Nvidia GTX 680 with the proprietary Nvidia drivers 337.21 for 64bit systems.

As far as I know, ia32-libs no longer exist for Ubuntu 13.10 and onwards [which means the multiarch solution no longer works]. I have tried reinstalling my drivers, which worked for Steam (as it was complaining about the 32bits OpenGL issue as well). Only PlayOnLinux is still requesting this. I believe I solved this in Ubuntu 13.10, but I cannot recall what it was I installed to solve it.

Any and all help is greatly appreciated!

Editado por: myromance123


Check out my Ubuntu gaming channel!
http://www.youtube.com/user/PenguinRecordings
myromance123 Friday 2 May 2014 at 18:50
myromance123

Alright, I did the following commands in a terminal:

sudo dpkg --add-architecture i386
sudo apt-get update


I then restarted Ubuntu, and the error message is gone. Yet, not a single game is runnable in PlayOnLinux. The debug spits out the following information:

err:wgl:has_opengl Failed to load libGL: libGL.so.1: wrong ELF class: ELFCLASS64
err:wgl:has_opengl OpenGL support is disabled.


Is there any solution to this? Note that native Linux games work, and my Steam library is fine. Only POL and Wine are giving me trouble.

Editado por: myromance123


Check out my Ubuntu gaming channel!
http://www.youtube.com/user/PenguinRecordings
petch Friday 2 May 2014 at 19:25
petch
Developer


err:wgl:has_opengl Failed to load libGL: libGL.so.1: wrong ELF class: ELFCLASS64
err:wgl:has_opengl OpenGL support is disabled.


In other words: "while the system was looking for a 32bit version of libGL.so.1, all it found is a 64bit library".
So you still need to install a 32bit version of the accelerated display libraries that come with your video driver.

Editado por: petch

myromance123 Friday 2 May 2014 at 19:51
myromance123

How would I go about installing the necessary files?

As far as I know, when manually installing the Nvidia driver, it will ask me if I want to install the 32bit libraries for it as well. I always make sure to say yes and let it do it. I even reinstalled it once more just now to make sure it did exactly that.

Is it looking for libgl1-nvidia-glx:i386? If it is, then I assume I'm screwed. That package isn't within the repositories. I really wish I remembered what that one item was that I installed in 13.10 that solved this for me.

Check out my Ubuntu gaming channel!
http://www.youtube.com/user/PenguinRecordings
petch Friday 2 May 2014 at 22:19
petch
Developer

PlayOnLinux checks by emulation what a 32bit Wine would typically do when it needs accelerated display;
It starts a small C program, that opens an OpenGL context, then asks for direct rendering support (https://github.com/PlayOnLinux/POL-POM-4/blob/master/src/check_direct_rendering.c)

It's not looking for a specific library, as long as some library provides the features it should be ok.

Editado por: petch

myromance123 Friday 2 May 2014 at 23:26
myromance123

If it isn't a dependency issue on any specific library, then does that mean the Nvidia driver or Wine/POL are bugged? Could the issue be with how Ubuntu 14.04 is storing the libraries?

From the command glxinfo | grep -i render:
direct rendering: Yes
OpenGL renderer string: GeForce GTX 680/PCIe/SSE2
GL_KHR_debug, GL_KTX_buffer_region, GL_NVX_conditional_render,
GL_NV_compute_program5, GL_NV_conditional_render,
GL_NV_parameter_buffer_object2, GL_NV_path_rendering,
GL_KHR_debug, GL_KTX_buffer_region, GL_NVX_conditional_render,
GL_NV_compute_program5, GL_NV_conditional_render,
GL_NV_parameter_buffer_object2, GL_NV_path_rendering,

I believe I do have direct rendering support, so the question is why it isn't sufficient?

Check out my Ubuntu gaming channel!
http://www.youtube.com/user/PenguinRecordings
petch Saturday 3 May 2014 at 1:09
petch
Developer

gfxinfo is a 64bit program, so it uses the 64bit libGL.so.1
myromance123 Saturday 3 May 2014 at 18:04
myromance123

I've managed to solve the issue. For other Ubuntu 14.04 or even 13.10 64bit users who use the Nvidia proprietary drivers, basically Wine/POL are asking for libGL, but aren't pointed to the right location.

To check if you're experiencing this as well, first open a terminal and enter:
[code]ldconfig -p | grep libGL.so.1[/code]
Which should return something similar to:
[code]libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1[/code]

That folder it's pointed to is not where the Nvidia driver's 32bit library is. So, let's fix that. Open a terminal and type:
[code]sudo gedit[/code]

A text editor will open up. In it, type:
[code]/usr/lib32[/code]

Now, save this text file as local.conf. You're going to want to save it  in the directory called /etc/ld.so.conf.d (yes that is a folder).

Not sure where it is? When opening the Home window, on your left is the Computer directory. Click that, and you will see a whole bunch of folders. Among them is the /etc folder.

Alright, we've written the text file and saved it. Now, open a new terminal and type the following:
[code]sudo ldconfig[/code]

This will update Ubuntu to tell it to look in that new directory we saved in the text file. To check that you did it right, in any terminal, type this again:
[code]ldconfig -p | grep libGL.so.1[/code]

Now, what should appear is something along the lines of:
[code]libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/libGL.so.1[/code]

So, now if you run any 3D game or application in Wine via POL it should be able to run. It should no longer say it can't find libGL.so.1 in the debug window either.

NOTE: This fix only applies to Ubuntu 13.10 and 14.04 64bit! I believe this issue only pops up for the Nvidia proprietary driver, but if this occurs with AMD's proprietary driver then this fix may not work. Intel graphics should not experience this issue.



Editado por: myromance123


Check out my Ubuntu gaming channel!
http://www.youtube.com/user/PenguinRecordings