PulseAudio não pode abrir biblioteca compartilhada

3

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, "7ELF
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
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)

    
por Thorarin 24.04.2012 / 17:52

3 respostas

1

1) Quando você tenta ldconfig -v : estará na lista libasound_module_conf_pulse.so library?

2) Você pode tentar o comando strace -f -F -o alsamixer.strace alsamixer e, em seguida, explorar o arquivo alsamixer.strace e tentar ir de baixo para cima e descobrir por que ele não pode abrir o arquivo com a biblioteca.

    
por 25.04.2012 / 07:42
1

Realtek ALC887 (HDA Intel) em Wheezy?

Eu encontrei isto:

link

no final daqui:

link

boa sorte.

    
por 10.08.2012 / 12:50
0

Você pode precisar instalar a versão de 32 bits se estiver executando um aplicativo de 32 bits em um sistema de 64 bits:

sudo dpkg --add-architecture i386
sudo apt-get install libasound2-plugins:i386
    
por 30.12.2016 / 01:01