I want to play the game Aquaria in a Debian Wheezy 64 bits. The installation went ok, but when trying to play the game I get these errors:

ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib control.c:951:(snd_ctl_open_noupdate) Invalid CTL hw:0
AL lib: alsa.c:1000: control open (0): No such file or directory
Message: SDL_GL_LoadLibrary Error: Failed loading libGL.so.1

I have added 32 bit compatibility with dpkg --add-architecture i386 and I think that the required libraries are present in the system since typing locate libasound_module_conf_pulse.so yields:


and locate libGL.so.1:


However, it seems that Debian is ignoring them. What can I do to play Aquaria?

EDIT 1: ldd aquaria

linux-gate.so.1 =>  (0xf77e1000)
libSDL-1.2.so.0 => /opt/Aquaria/./libSDL-1.2.so.0 (0xf7748000)
libopenal.so.1 => /opt/Aquaria/./libopenal.so.1 (0xf76fa000)
libstdc++.so.6 => /opt/Aquaria/./libstdc++.so.6 (0xf760d000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf75c3000)
libgcc_s.so.1 => /opt/Aquaria/./libgcc_s.so.1 (0xf75b8000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf7455000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7451000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7437000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf742e000)
/lib/ld-linux.so.2 (0xf77e2000)

It seems you're missing the 32-bit libraries (/usr/lib/x86_64-linux-gnu contains 64-bit libraries). Now, let's figure out which packages you need for your libraries:

$ dpkg -S /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_conf_pulse.so
libasound2-plugins:amd64: /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_conf_pulse.so
$ dpkg -S /usr/lib/x86_64-linux-gnu/libGL.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1

So you need 32-bit versions of these packages:

# apt-get install libasound2-plugins:i386 libgl1-mesa-glx:i386

In general, before you can install any 32-bit libraries, you must add the i386 architecture to dpkg:

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


Since the above didn't solve the libGL.so.1 issue and it seems from your ldd output that Aquaria can see all its required libraries, I googled the libGL.so.1 error message and two things came up. Please try the following 2 solutions in order:

  1. As explained here try symlinking libGL.so.1:

    ln -sv /usr/lib/i386-linux-gnu/libGL.so.1.2 /usr/lib/libGL.so.1

    Note that I modified the paths from the answer I linked to so that they're relevant to Debian instead.

  2. The answer here suggests that you need to install libgl1-mesa-glx:i386 (which you've already done) plus libgl1-mesa-dri:i386 (which is what I'm suggesting you try next).

Update: What finally worked

apt-get purge libgl1-mesa-glx:i386 
apt-get install libgl1-mesa-glx:i386 
ln -s /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 /usr/lib/i386-linux-gnu/
| improve this answer | |
  • 1
    Just a note for future readers, dpkg --add-architecture i386 needs to be ran before installing the 32bit packages, which OP has already done. – jordanm Jul 21 '13 at 4:13
  • Good point. Adding to answer... – Joseph R. Jul 21 '13 at 7:51
  • Hi! I did what you suggested and now the libasound error doesn't show up, however the libGL one still happens. In the package manager, the libgl1-mesa-glx:i386 appears as installed. – Kio Marv Jul 21 '13 at 19:41
  • 1
    @JosephR. Done! – Kio Marv Jul 21 '13 at 19:56
  • 1
    It's everything fine! – Kio Marv Aug 4 '13 at 21:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.