I'm running Debian wheezy (x86) with GNOME on a Intel Core i7 machine. I'm having problems getting PulseAudio to work properly. Since GNOME 3 automatically installs PulseAudio I'm pretty much stuck with it.
When running ALSA mixer from the console, I get the following error message:
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 default
cannot open mixer: No such file or directory
The shared library does in fact exist (/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so). I've done extensive googling on the issue and came up with no solution that actually works. One of the suggestions was to place the file in an alternative location, but this made no difference.
In addition, many programs that actually attempt to use PulseAudio fail to start. Another error message I've seen is:
mybox:/# pulseaudio
pulseaudio: symbol lookup error: /usr/lib/i386-linux-gnu/libsndfile.so.1: undefined symbol: vorbis_version_string
ALSA works just fine, but I actually have to deinstall PulseAudio before I can use the mixer to set the volume, after which I can reinstall it. Then, some software that I can force to use ALSA (like XBMC) will work.
The system contains both onboard Intel audio and nVidia HDMI sound drivers. I'm mostly interested in sound over HDMI right now if that matters:
mybox:/# aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default:CARD=Intel
HDA Intel, ALC887 Analog
Default Audio Device
sysdefault:CARD=Intel
HDA Intel, ALC887 Analog
Default Audio Device
front:CARD=Intel,DEV=0
HDA Intel, ALC887 Analog
Front speakers
surround40:CARD=Intel,DEV=0
HDA Intel, ALC887 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
HDA Intel, ALC887 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
HDA Intel, ALC887 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
HDA Intel, ALC887 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
HDA Intel, ALC887 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Intel,DEV=0
HDA Intel, ALC887 Digital
IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
HDMI Audio Output
I'm now completely at a loss what is wrong with my system. I haven't even messed with any of the settings yet, but I tried purging all the configuration and reinstalling just to be sure.
To me, these error messages look like the packages are broken, but it's been like this for weeks now and several new package versions have been released in the meantime.Does anyone have an idea what's wrong?
Edit:
Some extra information requested by Jan Marek:
mybox:~# ldconfig -v | grep libasound
ldconfig: Can't stat /lib/i486-linux-gnu: No such file or directory
ldconfig: Can't stat /usr/lib/i486-linux-gnu: No such file or directory
ldconfig: Path `/lib/i386-linux-gnu' given more than once
ldconfig: Path `/usr/lib/i386-linux-gnu' given more than once
libasound.so.2 -> libasound.so.2.0.0
It appears libasound_module_conf_pulse.so is not listed, even though the path /usr/lib/i386-linux-gnu` is searched. More than once even, apparently? I'm not sure why that is, here is the relevant configuration:
## /etc/ld.so.conf:
/usr/X11R6/lib
include /etc/ld.so.conf.d/*.conf
## /etc/ld.so.conf.d/i486-linux-gnu.conf:
# Multiarch support
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/lib/i486-linux-gnu
/usr/lib/i486-linux-gnu
## /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib
As for the strace, I'm not entirely sure what it's trying to tell me.
11655 open("/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so", O_RDONLY) = 3
11655 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\7\0\0004\0\0\0"..., 512) = 512
11655 fstat64(3, {st_mode=S_IFREG|0644, st_size=4168, ...}) = 0
11655 mmap2(NULL, 7028, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7785000
11655 mmap2(0xb7786000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb7786000
11655 close(3) = 0
I think that means that opening the file was successful, it read 512 bytes and then decided to close the file?
I've added /usr/lib/i386-linux-gnu/alsa-lib to ld.so.conf which changes the behavior when I start alsamixer. With that line I get a segmentation fault instead. During the boot sequence I also used to get a bunch of these pulseaudio errors, so I will try rebooting when I get home (service alsasound restart had no effect)