PulseAudio in restricted X environment

Anthony Messina amessina at messinet.com
Wed Jul 10 04:17:06 UTC 2013


On Tuesday, July 09, 2013 04:01:47 PM Eric Viseur wrote:
> I'm currently working on a virtualization project using F18.  One of the use
> cases is booting on the multi-user systemd target, then starting the Spice
> client in a very restricted X environment by simply issuing
> 
> $ xinit /usr/bin/spicec (some parameters)
> 
> Everything works fine, except the sound : as I don't start a complete GDM in
> this boot scenario, PulseAudio isn't loaded.  I thus tried to start
> PulseAudio manually by issuing :
> 
> $ start-pulseaudio-x11
> 
> before starting xinit with the same user, but it doesn't work either.  After
> testing a $ pacat /dev/urandom from the host on Fedora Virtualization
> team's advice, it turns out PA doesn't work at all.
> 
> So, here is my question : how to start PulseAudio correctly in such a setup
> (multi-user.target then xinit) ?
> 
> Please note that if I connect to the VM from a complete GDM in the graphical
> systemd target, everything works fine.
> 
> Thank you for your attention !

I'm wondering if you might be able to use systemd user sessions along with the 
xorg-launch-helper [1] and user-session-units [2] since you may need some dbus 
magic for PulseAudio to work.  I am using this along with PulseAudio for my 
F19 MythTV frontends with great success (I use it to be able to auto-switch 
from speaker output to bluetooth headset output when everyone else is trying 
to sleep).

Aside from the xorg-launch-helper package, which I package here [3], I have 
manually created some of the files from the user-session-units, which I don't 
yet package.  Those are below:

#
# dbus.service
[Unit]
Description=D-Bus System Message Bus
Requires=dbus.socket

[Service]
ExecStart=/bin/dbus-daemon --session --address=systemd: --nofork --systemd-
activation
ExecReload=/usr/bin/dbus-send --print-reply --session --type=method_call --
dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig

#
# dbus.socket
[Unit]
Description=D-Bus System Message Bus Socket

[Socket]
ListenStream=%t/dbus/user_bus_socket

#
# example spicec.service
[Unit]
Description=spicec service
After=network.target

[Service]
ExecStart=/usr/bin/spicec (some parameters)
Restart=on-failure

[Install]
WantedBy=mythfrontend.target

#
# example spicec.target
[Unit]
Description=spicec target
Wants=xorg.target
Requires=dbus.socket
#After=network.target
AllowIsolate=true


And I have PulseAudio set to autospawn:
# /etc/pulse/client.conf
...
autospawn = yes
...


There's a little more service/unit file help I can give if you think this 
might be a way for you to resolve the issue.

-A


[1] https://github.com/sofar/xorg-launch-helper
[2] https://github.com/sofar/user-session-units
[3] http://messinet.com/rpms


-- 
Anthony - http://messinet.com - http://messinet.com/~amessina/gallery
8F89 5E72 8DF0 BCF0 10BE 9967 92DC 35DC B001 4A4E
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.fedoraproject.org/pipermail/users/attachments/20130709/b47ae117/attachment.sig>


More information about the users mailing list