View previous topic :: View next topic |
Author |
Message |
c00l.wave Apprentice
Joined: 24 Aug 2003 Posts: 264
|
Posted: Sat Feb 09, 2013 9:26 pm Post subject: wine crashes on startup due to ALSA module for PulseAudio |
|
|
I just noticed that I can no longer play any sound in wine. It doesn't matter if I run a program through wine (in which case wine crashes) or just test sound output in winecfg, I always get the following errors:
Code: | $ winecfg
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library /usr/lib/alsa-lib/libasound_module_conf_pulse.so
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded |
Code: | $ pasuspender winecfg
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library /usr/lib/alsa-lib/libasound_module_conf_pulse.so
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded |
Choosing specific ALSA input/output devices in winecfg doesn't help. Other programs run fine directly with PulseAudio, using the PulseAudio ALSA module or using ALSA directly after pasuspender. I already tried recompiling wine (was 1.5.21, no change after upgrading to 1.5.23), alsa-plugins (1.0.25-r1) and pulseaudio (2.1-r1), ran lafilefixer and revdep-rebuild.
I previously used the following setup in /etc/asound.conf until I read the notice after recompiling alsa-utils that it's no longer necessary:
Code: | # make default device forward all audio to PulseAudio
# (use hw: prefixes to access real hardware and make sure this is also in PulseAudio config)
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
# add a pseudo-device for explicit forwarding to PulseAudio
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
} |
I removed it, logged in again and rebooted since I wasn't sure the changes were really applied yet. No change.
If I run alsa-info it detects PulseAudio: (no other mention of "pulse")
Code: | Pulseaudio:
Installed - Yes (/usr/bin/pulseaudio)
Running - Yes |
The inofficial winepulse.drv doesn't work for me, so I forced wine to use ALSA instead (which worked up until now, sometimes using the PulseAudio module, sometimes by temporarily disabling PA using pasuspender). I didn't run wine for a few weeks and did an intense world upgrade in the meantime (the previous full update was somewhere in May 2012), so I can't exactly tell what broke it. Judging from the Google results that turned up, the problem appeared across multiple binary distributions years ago, so it's likely I just need to recompile something.
Any idea what else I could try? I've currently run out of ideas. _________________ nohup nice -n -20 cp /dev/urandom /dev/null & |
|
Back to top |
|
|
c00l.wave Apprentice
Joined: 24 Aug 2003 Posts: 264
|
Posted: Sat Feb 09, 2013 9:53 pm Post subject: |
|
|
I just ran strace on winecfg and that's when the error occurs:
Code: | open("/usr/lib/alsa-lib/libasound_module_conf_pulse.so", O_RDONLY|O_CLOEXEC) = 16
read(16, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\t\0\0\0\0\0\0"..., 512) = 512
close(16) = 0
write(2, "ALSA lib conf.c:3314:(snd_config"..., 45ALSA lib conf.c:3314:(snd_config_hooks_call) ) = 45
write(2, "Cannot open shared library /usr/"..., 75Cannot open shared library /usr/lib/alsa-lib/libasound_module_conf_pulse.so) = 75
write(2, "\n", 1
) = 1
write(2, "ALSA lib pcm.c:2217:(snd_pcm_ope"..., 44ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) ) = 44
write(2, "Unknown PCM default", 19Unknown PCM default) = 19
write(2, "\n", 1
) = 1 |
So it stops immediately after reading the ELF header?
Sounds strange to me and so I checked:
Code: |
$ elfls /usr/lib/alsa-lib/libasound_module_conf_pulse.so
/usr/lib/alsa-lib/libasound_module_conf_pulse.so& (Intel x86-64)
[...]
$ elfls `which wine`
/usr/bin/wine* (Intel 386)
[...] |
Looks like wine would either need a 32 bit libasound_module_conf_pulse.so or wine has to be compiled in 64 bit? (I'm on amd64; CPU is an Intel Core2Duo) Unfortunately, emul-linux-* is already at the latest available version:
Code: | [I] app-emulation/emul-linux-x86-soundlibs
Available versions: 20121028^s 20121202^s {{alsa development}}
Installed versions: 20121202^s(02:26:14 PM 01/15/2013)(alsa -development)
Homepage: http://dev.gentoo.org/~pacho/emul.html
Description: Provides precompiled 32bit libraries |
Could that really be the source of my problem or is it a red herring?
Edit: I'm wondering if these USE flags should be mutually exclusive? I currently have both set:
Code: | + + win32 : Build a 32bit version of Wine (won't run Win64 binaries)
+ + win64 : Build a 64bit version of Wine (won't run Win32 binaries) |
_________________ nohup nice -n -20 cp /dev/urandom /dev/null & |
|
Back to top |
|
|
VoidMage Watchman
Joined: 14 Oct 2006 Posts: 6196
|
Posted: Sat Feb 09, 2013 10:35 pm Post subject: |
|
|
'win32' and 'win64' aren't mutually exclusive - they're independent.
wine is simply screwed up that way by design. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|