Estou executando o Debian wheezy (x86) com o GNOME em uma máquina Intel Core i7. Estou com problemas para fazer com que o PulseAudio funcione corretamente. Desde que o GNOME 3 instala automaticamente o PulseAudio, eu estou bem preso a ele.
Ao executar o mixer ALSA no console, recebo a seguinte mensagem de erro:
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
A biblioteca compartilhada existe de fato ( /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so ). Eu fiz um extenso googling sobre o assunto e não encontrei nenhuma solução que realmente funcionasse. Uma das sugestões foi colocar o arquivo em um local alternativo, mas isso não fez diferença.
Além disso, muitos programas que realmente tentam usar o PulseAudio falham ao iniciar. Outra mensagem de erro que eu vi é:
mybox:/# pulseaudio
pulseaudio: symbol lookup error: /usr/lib/i386-linux-gnu/libsndfile.so.1: undefined symbol: vorbis_version_string
O ALSA funciona muito bem, mas eu realmente tenho que desinstalar o PulseAudio antes que eu possa usar o mixer para definir o volume, após o qual eu posso reinstalá-lo. Então, algum software que eu possa forçar a usar o ALSA (como o XBMC) funcionará.
O sistema contém os drivers de áudio Intel onboard e nVidia HDMI. Estou mais interessado em som sobre HDMI agora, se isso importa:
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
Agora estou completamente sem o que há de errado com o meu sistema. Eu nem sequer mexi com qualquer uma das configurações ainda, mas eu tentei limpar toda a configuração e reinstalar apenas para ter certeza.
Para mim, essas mensagens de erro parecem que os pacotes estão quebrados, mas tem sido assim há semanas e várias versões do novo pacote foram lançadas nesse meio tempo. Alguém tem uma idéia do que está errado?
Editar:
Algumas informações extras solicitadas por 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
Aparece que libasound_module_conf_pulse.so
não está listado, mesmo que o caminho / usr / lib / i386-linux-gnu 'seja pesquisado. Mais de uma vez, aparentemente? Não sei por que isso acontece, aqui está a configuração relevante:
## /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
Quanto à strace, não tenho certeza do que está tentando me dizer.
11655 open("/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so", O_RDONLY) = 3
11655 read(3, "7ELFALSA 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
mybox:/# pulseaudio
pulseaudio: symbol lookup error: /usr/lib/i386-linux-gnu/libsndfile.so.1: undefined symbol: vorbis_version_string
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
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
## /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
11655 open("/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so", O_RDONLY) = 3
11655 read(3, "7ELF%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%00%pre%%pre%04%pre%%pre%%pre%"..., 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
%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%00%pre%%pre%04%pre%%pre%%pre%"..., 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
Acho que isso significa que a abertura do arquivo foi bem-sucedida, ele leu 512 bytes e decidiu fechar o arquivo?
Eu adicionei /usr/lib/i386-linux-gnu/alsa-lib
ao ld.so.conf, que muda o comportamento quando eu inicio o alsamixer. Com essa linha, eu recebo uma falha de segmentação. Durante a seqüência de boot eu também usei um monte desses erros pulseaudio, então vou tentar reiniciar quando chegar em casa ( service alsasound restart
não teve efeito)