[pulseaudio-discuss] Odd behaviour with remote startX session

Colin Guthrie gmane at colin.guthr.ie
Sun Jun 28 03:00:40 PDT 2009


'Twas brillig, and Anil Seth at 28/06/09 07:06 did gyre and gimble:
> Hi,
> 
> I need to use startx to connect to a remote machine. The xinitrc contains
>   start-pulseaudio-x11
>   ssh -X user at remote.host ". .bash_profile;gnome-session"
> 
> Sound does not play on tty7 (gui)
> However, if I switch to tty1, it plays!
> The bash_profile sets the PULSE_SERVER variable.

Why does it set the PULSE_SERVER variable? start-pulseaudio-x11 should 
load the x11 module which, in turn, should set the PULSE_SERVER property 
on the root window. (xprop -root | grep PULSE). This should then be 
forwarded over ssh and available at the client side...

> I had tried running pulseaudio as a daemon for the user. It was the
> same behaviour.
> I assumed that x11-publish was the issue and tried starting pulseaudio
> with x11 modules from within startx but it did not help.

If you look at the start-pulseaudio-x11 script it loads those modules 
for you :)

> I must be missing something obvious. The distribution is Fedora11.
> Any help about where to look would be greatly appreciated.

There could be one of two problems here as I see it (2 is more likely).

  1. The client side is not allowed to talk to the server side - make 
sure that your PULSE_SERVER variable is definitely set correct (either 
in xprops or via standard env var) and make sure you can at least talk 
to the server (just run pavucontrol for example).

  2. For whatever reason, the "session" is no longer active and ACLs on 
the audio devices have been removed for your user. To explain, a bit of 
software called ConsoleKit is responsible for setting and removing ACLs 
on the audio device nodes (/dev/snd/*). This allows things such as 
logging in with two different users and switching between then. 
ConsoleKit knows which session is "active" and thus applies the 
appropriate ACLs to the device nodes so that the user with the active 
connection has permission but inactive users do not. What could be 
happening here is that while you are can talk to the pulse server fine 
(tested using 1 above), pulse itself is no longer allowed to use the 
audio h/w due to the ACL being removed. You can check this via 
ck-list-sessions. Make sure you ssh back to the first machine to run 
that command tho' :D

When you switch vt, console kit notices this and will change the ACL 
literally as you switch vt, thus giving you permission again. You can 
test this easily by doing the following in a perminal in the X session: 
sleep 5; paplay /usr/share/sounds/startup3.wav

And then switching to the VT and seeing if you can hear anything after a 
small delay!

HTHs track down where the issue lies.

Col

-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
   Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
   Mandriva Linux Contributor [http://www.mandriva.com/]
   PulseAudio Hacker [http://www.pulseaudio.org/]
   Trac Hacker [http://trac.edgewall.org/]




More information about the pulseaudio-discuss mailing list