04 September 2020

PulseCast Update, Ansible Role Published to Galaxy

Topics: Audio and Video, Linux
Tags: sbc, pi, pulse-audio, ansible
While repairing my audio setup after updates broke it, I created an ansible role.

Updates to Linux Mint Ulyana (Focal based) on my workstation and Debian 10 (Buster) on the devices broke my setup.

On my workstation (Sender Side) Paprefs does not work and the sender needs to be configured through the configuration file. Pulseaudio is switching from deprecated gconf to  gsettings which may have something to do with this. Given that this is something that might get fixed upstream, the workaround is to not use paprefs at all and just configure through /etc/pulse.  I also found that in Mint the pavucontrol settings  to control which sink (soundcard or virtual/null sink) were not always respected by streams, and application settings to select the sound target were ignored.

On LXDE (on Debian 10.5) I did not have these problems, but on my LXDE system the only soundcard is the RTP Send Null Sink.

For the devices the upgrade from Stretch to Buster left some package errors and on a clean install the copied configuration settings did not work.

Although it was not an issue on stretch and probably isn’t really part of the problem on buster, there is the –user systemd pulseaudio service and socket. These user services are set for interactive logins, not for running  as a service under a user account. These services are installed by the pulseaudio package, so simply deleting the unit files would not last past the next update. The –user flag to systemctl only affects the logged in user. The global switch to systemctl allows manipulation of user services globally. The disabled state still permits the service to be run either manually or at the request of another service, with masked the service can never start.

systemctl --global mask pulseaudio.socket > systemctl --global mask pulseaudio.service

In the original presentation I only changed things in the pulse configs that needed to change, I became much more aggressive in editing /etc/pulse/default.pa while getting to a working state in buster.

I’ve also published a role for ansible:

https://galaxy.ansible.com/brainbuz/pulsecast

or install with the command:

ansible-galaxy install brainbuz.pulsecast

The original slidedeck is still up https://techinfo.brainbuz.org/assets/pulsecast.pdf. Press P to toggle my presenter notes.