Jak uzyskać dźwięk na oddzielnym serwerze X w systemie Ubuntu 11.04 lub nowszym?

10

Skonfigurowałem mój system Ubuntu, aby móc uruchomić dowolną aplikację na oddzielnym serwerze X. Uruchamianie gier lub na przykład XBMC na osobnym serwerze X ma kilka głównych zalet.

Problem polega jednak na tym, że po przejściu na drugi serwer X (Ctrl + Alt + F8) nie słychać żadnego dźwięku. O dziwo, po przełączeniu z powrotem na pulpit (Ctrl + Alt + F7) możesz nagle usłyszeć dźwięk z drugiego serwera X. Oznacza to, że dźwięk działa, ale po prostu nie słychać go, gdy jesteś na drugim serwerze X.

W starszych wersjach Ubuntu (np. Ubuntu 10.10) istnieje polecenie ( ck-launch-session), które można uruchomić na drugim serwerze X, a dźwięk będzie działał. Niestety, to polecenie nie działa już w Ubuntu 11.04 i nowszych. Oto polecenie, którego użyłbym do uruchomienia XBMC na osobnym serwerze X:

xinit /usr/bin/ck-launch-session /usr/bin/xbmc -- :1

Jak mogę włączyć dźwięk, gdy jestem na drugim serwerze X w systemie Ubuntu 11.04 lub nowszym?

Powiązany raport o błędzie: 366404

Serrano
źródło
Zgaduję, że potrzebujesz drugiego wyjścia serwera pulseaudio (lub innego serwera dźwięku, którego używasz, jeśli nie pulseaudio) na drugim serwerze xserver jako wejścia do serwera pulseaudio na pierwszym serwerze xserver - to dlatego, że tylko jeden audioserver (lub, jeśli nie masz serwera audio, tylko jedna aplikacja) może uzyskać dostęp do karty dźwiękowej na raz. Nie jestem pewien, jak to zrobić, ale mam nadzieję, że daje to wyobrażenie o tym, gdzie szukać (dokumentacja pulseaudio).
adempewolff

Odpowiedzi:

3

Kiedy robiłem takie rzeczy, musiałem należeć do grupy „audio”. W ten sposób można było usłyszeć dźwięk z każdego ekranu. Jeden problem: przełączanie ekranów nie zmienia wyjściowego dźwięku. Gdybym miał instancję KDE działającą na jednym ekranie i odtwarzającą muzykę za pomocą Amaroka, byłbym w stanie to usłyszeć na wszystkich ekranach.

Jeśli ty (jak ja) nie wiesz, jak dodać użytkownika do grupy za pomocą wiersza polecenia, po prostu zainstaluj „kuser” w Synaptic lub centrum oprogramowania lub wpisz sudo apt-get install kuserterminal.

Wydaje mi się, że mam pewne problemy z uruchomieniem go jako root z domyślnym programem uruchamiającym. Jeśli wyświetla się komunikat o błędzie informujący, że nie może uzyskać dostępu do pliku, zazwyczaj nie stanowi problemu, upewnij się, że używasz programu jako root. Jeśli po prostu mówi ci, że musisz być rootem, zamknij okno, naciśnij ALT + F2, a następnie wpisz gksudo kuser. Komputer poprosi o podanie hasła, a następnie Kuser załaduje się poprawnie.

JimmyC866
źródło
2
Dziękujemy za udzielenie odpowiedzi! Nie mogę uwierzyć, że odpowiedź jest taka prosta. Jestem facetem z linii poleceń, a sudo usermod -a -G audio $USERpo tym następuje restart systemu. I na szczęście nadal nie usłyszysz dźwięku od innych użytkowników.
Serrano
kiedyś to działało, ale ponownie zainstalowałem ubuntu i przestało działać
Aquarius Power
@AquariusPower: nadal działa dla mnie na Ubuntu 15.04.
Serrano
1

Spróbuj podać swoje dane uwierzytelniające puls na drugim serwerze X za pomocą pax11publish -D :1 -e

(gdzie: 1 jest wyświetlanym numerem drugiego serwera X, zwykle: 0 to pierwszy, licząc w górę)

Aplikacja, którą uruchamiasz, prawdopodobnie próbuje odczytać atrybuty pulsu z właściwości okien głównych X11.

Alternatywnie możesz utknąć w głównym programie * f * ckup.

Paul Hänsch
źródło
Dzięki za odpowiedź Paul, ale niestety nie zadziałało. Próbowałem uruchomić to polecenie z pierwszego i drugiego serwera X. Testowałem dźwięk w różnych aplikacjach.
Serrano
wow ... to naprawdę nie mam rozwiązania, ale doceniam problem ...
Paul Hänsch
pracował! nie jestem pewien, czy wymagałoby to również bycia w grupie audio (jestem zbyt leniwy, aby usunąć i przetestować xD)
Aquarius Power