Re: container support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have this working:

Socket

# /usr/lib/systemd/user/pulseaudio.socket
[Unit]
Description=Sound System
ConditionUser=!root

[Socket]
Priority=6
Backlog=5
ListenStream=%t/pulse/native

[Install]
WantedBy=sockets.target


Service

# /usr/lib/systemd/user/pulseaudio.service
[Unit]
Description=Sound Service

# We require pulseaudio.socket to be active before starting the daemon, because
# while it is possible to use the service without the socket, it is not clear
# why it would be desirable.
#
# A user installing pulseaudio and doing `systemctl --user start pulseaudio`
# will not get the socket started, which might be confusing and problematic if
# the server is to be restarted later on, as the client autospawn feature
# might kick in. Also, a start of the socket unit will fail, adding to the
# confusion.
#
# After=pulseaudio.socket is not needed, as it is already implicit in the
# socket-service relationship, see systemd.socket(5).
Requires=pulseaudio.socket
ConditionUser=!root

[Service]
ExecStart=/usr/bin/pulseaudio --daemonize=no --log-target=journal
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
Restart=on-failure
RestrictNamespaces=yes
SystemCallArchitectures=native
SystemCallFilter=@system-service
# Note that notify will only work if --daemonize=no
Type=notify
UMask=0077

[Install]
Also=pulseaudio.socket
WantedBy=default.target

Cheers

On 13/12/2020 17:52, Jan Van den Audenaerde wrote:
Hi,

Thanks for the response.

But how do I get the pulseaudio daemon running in userspace that is listening to unix socket /run/user/1000/pulse/native ?
I don't want to start this daemon manually but as a systemd service.

kr
jan


Op zo 13 dec. 2020 om 14:40 schreef GMAIL <temptempor@xxxxxxxxx>:

Hi,

This can be achieved fairly "simply" (as long as you know what to look for).

You need to pass the pulse socket into the container and tell pulse clients inside the container its precise path.

So on Docker CLI, for a typical Pulse daemon running in userspace, it would be something like:

-v /run/user/1000/pulse:/run/user/1000/pulse

Inside the container, once you've installed Pulseaudio, you need to modify its client configuration:

/etc/pulse/client.conf

default-server = /run/user/1000/pulse/native

With this your Pulseaudio applications should be able to play sounds through the host PulseAudio server (of course, you'd need to adapt the runtime paths to your environment).

Bear in mind, there seems to be some inconsistencies in the way various Pulse utilities interface with the daemon. In this setup for example, "pacmd" won't work, whilst "pactl" works fine once the client configuration is fixed.

You could test this in a manual way first and then automate things a bit with a Dockerfile and what not.

Best regards.

On 12/12/2020 16:19, Jan Van den Audenaerde wrote:
Hi,

I have spend several days without success figuring out how I can use pulseaudio in a container setup on an embedded device.

I am running CentOs 8 on a headless device (intel-nuc) which is also running docker.
I would like to run pulseaudio server on the host (CentOs 8) and my docker containers should be able to use pulseaudio client to communicate with the pulseaudio server via pulseaudio unix socket.
Moreover it should be possible that different docker containers can access the microphone and speaker at the same time.



The main problem I am facing I have reported in following forum post: 


Any help would be much appreciated.
I also think that pulseaudio has the good requirements for use in a container setup if  I only can make it work.
Jan.



_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux