Eu tenho uma máquina remota na qual posso fazer ssh. Na máquina remota há um programa que usa áudio pulsado para obter entrada de um microfone USB conectado à máquina remota. Esta configuração funciona bem quando operada localmente, ou seja, posso obter entrada de áudio pulsado quando conectado localmente.
Por ssh, recebo o erro:
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
Da mesma forma, quando tento abrir pavucontrol
na máquina remota via ssh -X
, recebo a mensagem:
A conexão com o PulseAudio falhou. ... Neste caso, é provável que PULSE_SERVER nas Propriedades da janela raiz Environment/X11 ou servidor padrão em client.conf esteja configurado incorretamente.
pulseaudio --start
N: [pulseaudio] main.c: User-configured server at {30ab51874e4a0ca492830f1400000007}unix:/home/user2/.pulse/30ab51874e4a0ca492830f1400000007-runtime/native, refusing to start/autospawn.
Tentando iniciar o áudio pulsado com x11:start-pulseaudio-x11
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
pulseaudio --check
retorna direto para o prompt de comando.
Se eu tentar obter as propriedades ssh X, recebo:
user1@remote-pc:~$: xprop -root | grep PULSE
PULSE_COOKIE(STRING) = Some stuff here
PULSE_SERVER(STRING) = "{30ab51874e4a0ca492830f1400000007}unix:/home/user2/.pulse/30ab51874e4a0ca492830f1400000007-runtime/native"
PULSE_SESSION_ID(STRING) = "30ab51874e4a0ca492830f1400000007-1407765989.424751-1424846683"
PULSE_ID(STRING) = "12165@30ab51874e4a0ca492830f1400000007/2040"
OK. Já vi perguntas relacionadas a esse problema, mas em cada caso, quem fez a pergunta deseja transmitir som através de uma conexão de rede, o que eu >não< quero fazer. Então, o que eu configuro PULSE_SERVER
para ser?
Responder1
Parece que resolvi o problema executando
pax11publish -r
Agora, xprop -root | grep PULSE
mostra:
PULSE_SERVER(STRING) = "{9899a0f46bdae6bbc8e6e8b200000005}unix:/home/user1/.pulse/9899a0f46bdae6bbc8e6e8b200000005-runtime/native"
Aparentemente, pulseaudio --check
normalmente deveria ir para o prompt de comando. Aparentemente, isso indica que está em execução.
Responder2
Coloque isso em seu ~/.bashrc no servidor remoto (se você usar o Bash como shell padrão):
if test "$SSH_CLIENT" ; then export PULSE_SERVER=tcp:localhost; fi
ou colocar
default-server = tcp:localhost
em/etc/pulse/client.confou nos arquivos com o mesmo nome empulsodiretório no diretório do arquivo de configuração específico do usuário se tais arquivos forem usados. Verhttps://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.htmlpara obter mais informações sobre os diretórios.