Tengo una máquina remota a la que puedo enviar ssh. En la máquina remota hay un programa que utiliza audio pulsado para recibir entrada desde un micrófono USB conectado a la máquina remota. Esta configuración funciona bien cuando se opera localmente, es decir, puedo recibir entradas de audio por pulsos cuando estoy conectado localmente.
A través de ssh, recibo el error:
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
Del mismo modo, cuando intento abrir pavucontrol
en la máquina remota a través de ssh -X
, aparece el mensaje:
Error de conexión a PulseAudio. ... En este caso, esto probablemente se debe a que PULSE_SERVER en Entorno/Propiedades de la ventana raíz X11 o el servidor predeterminado en client.conf está mal configurado.
pulseaudio --start
N: [pulseaudio] main.c: User-configured server at {30ab51874e4a0ca492830f1400000007}unix:/home/user2/.pulse/30ab51874e4a0ca492830f1400000007-runtime/native, refusing to start/autospawn.
Intentando iniciar el audio por pulsos con x11:start-pulseaudio-x11
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
pulseaudio --check
regresa directamente al símbolo del sistema.
Si intento obtener las propiedades de ssh X, obtengo:
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"
De acuerdo. He visto preguntas relacionadas con este tema, pero en cada caso, el autor de la pregunta quiere transmitir sonido a través de una conexión de red, lo cual >no< quiero hacer. Entonces, ¿qué configuro PULSE_SERVER
para que sea?
Respuesta1
Parece que he resuelto el problema ejecutando
pax11publish -r
Ahora, xprop -root | grep PULSE
muestra:
PULSE_SERVER(STRING) = "{9899a0f46bdae6bbc8e6e8b200000005}unix:/home/user1/.pulse/9899a0f46bdae6bbc8e6e8b200000005-runtime/native"
Aparentemente, pulseaudio --check
normalmente debería ir al símbolo del sistema. Aparentemente esto indica que se está ejecutando.
Respuesta2
Coloque esto en su ~/.bashrc en el servidor remoto (si usa Bash como shell predeterminado):
if test "$SSH_CLIENT" ; then export PULSE_SERVER=tcp:localhost; fi
o poner
default-server = tcp:localhost
en/etc/pulse/client.confo en los archivos con el mismo nombre bajolegumbresdirectorio en el directorio de archivos de configuración específico del usuario si se utilizan dichos archivos. Verhttps://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.htmlpara obtener más información sobre los directorios.