14 11 | 2013

Using Wine with sound under Debian testing (Jessie)

Written by Tanguy

Classified in : Homepage, Debian, To remember

If you are using Wine under Debian testing with PulseAudio, you probably noticed that you cannot get sound playback any more. This is because:

Loudspeaker icon
  1. Wine uses ALSA, which uses a plugin to play through PulseAudio;
  2. Wine being in 32 bits, all that has to be installed in i386 versions;
  3. recent versions of libasound2-plugins depend on libavcodec54 which depends on libopus0 which is not multiarch-capable and thus cannot be installed in both i386 and amd64 versions;
  4. libopus0:amd64 cannot be reasonably removed to install only libopus0:i386 because many multimedia software depend on it (in other words: try that and you will end removing VLC and everything similar too).

No need to despair though, as there are several ways to work around that problem until the maintainer of libasound2-plugins has converted it to multiarch.

Use ALSA directly

Since the problem is that Wine tries to use the ALSA PulseAudio plugin which is not available in 32 bits, the most direct solution is to configure it not to use it. Run winecfg, go to the audio tab and manually select your audio devices, which will then be used directly with ALSA without trying to use the PulseAudio plugin.

Screenshot of winecfg

Wine configuration

Downgrade ALSA plugins

Since the problem is caused by a dependency chain that only exists with the testing (Jessie) version of the libasound2-plugins package, another solution is to downgrade it to a previous version. To do that, make sure you have enabled the Debian repositories for both the stable (Wheezy) and testing (Jessie) in /etc/apt/sources.list:

deb http://ftp.fr.debian.org/debian/ jessie main deb http://security.debian.org/ jessie/updates main contrib non-free deb http://ftp.fr.debian.org/debian/ wheezy main deb http://security.debian.org/ wheezy/updates main contrib non-free

Then, forcefully install the stable version of libasound2-plugins for both i386 and amd64:

# apt-get install libasound2-plugins:i386/stable \ libasound2-plugins:amd64/stable


thursday 14 november 2013 à 17:14 Anonymous said : #1

What would it take to teach Wine to talk directly to Pulse?

thursday 14 november 2013 à 17:53 Tanguy said : #2

@Anonymous : Coding a new Wine sound backend? Really no idea, but that would be the best solution in the long term, clearly.

thursday 14 november 2013 à 18:38 ssorbom said : #3

I don't know if this is related, but I had problems with sound in wine under Wheezy too. I ended up using the OSS subsystem instead. Unfortunately this broke KDE Phonon, because it seems that KDE needs Pulse, and Pulse and OSS don't seem to be able to coexist. Is that correct?

saturday 16 november 2013 à 11:06 ProjectM_fan said : #4

OMG, this has been bothering me ever since I added the jessie repos and upgraded to testing! It drove me crazy because it used to work in wheezy.

saturday 16 november 2013 à 11:08 ProjectM_fan said : #5

Thanks for the easy fix, now I can use ProjectM with foobar2000 and my browser doesn't crash all the time while I listen to music, because some page used the flashplugin to play music/a video.

friday 28 february 2014 à 20:37 Guiu said : #6

Hey there, thanks for this. I've noticed the lack of sound with wine, changed the devices in the audio tab.
This worked for a while but for some reason( I've guess a recent upgrade), wine is now ignoring my "HDA intel analog" device, it lists the digital and some other, and even will list the analog in the input section, but it won't show up as an output.
Any ideas what might be causing this?
ps: right now thinking of it, might be that my output is now using 48khz instead of 41khz, which I'm pretty sure it used before. What do you say?

Write a comment

What is the third letter of the word masem? :