Запуск програми в SSH з доступом до імпульсного аудіо на машині, де він працює


10

Я хотів би запускати програму віддалено (через ssh), але зі звуком, що йде до віддаленої машини, де програма насправді працює. Зазвичай це працює з ALSA, але pulseaudio, очевидно, перевіряє деякий автентифікатор сеансу, перш ніж дозволити з'єднання з клієнтом.

Як зробити цю перевірку менш суворою?

local: $ ssh remote           # remote is running pulseaudio and has sound hardware

remote:$ paplay something.wav
Connection failure: Connection refused

pa_context_connect() failed: Connection refused
remote:$ audacious something.mp3 # opens on local's X11 display
pulseaudio: Failed to connect to server: Connection refused
pulseaudio: Failed to connect to server: Connection refused

Перевірте відповідь Ганса на оновлення. pax11publish -rпрацює на моєму Ubuntu 19.10.
Стівен Бостон

Відповіді:



2

Винуватець у тому, що ssh не встановлюється, DBUS_SESSION_BUS_ADDRESSщо використовується для підключення до Pulseaudio. Рішенням (на основі цієї публікації ) було додати до моїх наступні рядки ~/.bashrc, які використовуються при з'єднанні через ssh:

if [[ -n $SSH_CLIENT ]]; then
    export DBUS_SESSION_BUS_ADDRESS=`cat /proc/$(pidof nautilus)/environ | tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS | cut -d '=' -f2-`
fi

він використовує PID nautilus (можливо, вам знадобиться це змінити, щоб отримати якийсь процес, який завжди запускається в сеансі) та шукає змінні його середовища DBUS_SESSION_BUS_ADDRESSта експортує його.

Це робить програми, що підключаються до Pulse, працюють нормально. Інші програми, що спілкуються протягом сеансу, також працюють d-bus (наприклад, audtool для керування сміливим командним рядком).


У Ubuntu 16.04 команда повинна бути, export DBUS_SESSION_BUS_ADDRESS=$(sudo cat /proc/$(pidof nautilus | cut -f1 -d" ")/environ | tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS | cut -d '=' -f2-)оскільки pidof повертає як processid, так і батьківський Processid. Але в моєму випадку це рішення не працює; Я все ще страждаю від connection refusedпроблеми.
Ганс Дерагон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.