Pulseaudio auf dem Raspberry PI 4
Montag, 11. Oktober 2021
Pulseaudio steuern
Pulseaudio läuft unter Debian unter dem angemeldeten Benutzer und wird mit systemd gesteuert:
$ systemctl --user status pulseaudio.service $ systemctl --user restart pulseaudio.service
Konfiguration
Die Konfigurationsdateien befinden sich unter /etc/pulse und im Homeverzeichnis unter ~/.config/pulse. Die Dateien unter /etc/pulse sollten dabei nicht direkt geändert werden. Für Anpassungen an Pulse wird die Datei ~/.config/pulse/default.pa angelegt und die Einstellungen aus /etc/pulse/default.pa an Anfang der Datei übernommen:
# ~/.config/pulse/default.pa .include /etc/pulse/default.pa set-default-sink alsa_output.platform-bcm2835_audio.digital-stereo
Sollen andere Benutzer oder Rechner Zugriff auf Pulse haben, wird dies in der Datei ~/.config/pulse/client.conf eingestellt (s.u.). Die Dateien system.pa und daemon.conf können i.d.R. so belassen werden.
Pulseaudio via CLI konfigurieren
Einstellungen, wie sie in der default.pa vorgenommen werden, können auch via CLI mit dem Befahl pacmd vorgenommen werden.
pacmd set-default-sink alsa_output.platform-bcm2835_audio.digital-stereo # Ausgabe auf HDMI-1 pactl list short sinks # Liste der Ausgabegeräte
Soundausgabe gleichzeitig auf HDMI-1 und HDMI-2
# ~/.config/pulse/default.pa .include /etc/pulse/default.pa load-module module-combine-sink sink_name=combined set-default-sink combined
Anderen Benutzern die Soundausgabe ermöglichen
Für User1 die Datei ~/.config/pulse/default.pa wie folgt anpassen:
.include /etc/pulse/default.pa load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/.pulse/pulse-socket
Für User2 die Datei ~/.config/pulse/client.conf wie folgt anpassen:
default-server = unix:/tmp/.pulse/pulse-socket cookie-file = /tmp/.pulse/pulse-cookie
In diesem Beispiel muß noch die Datei ~/.config/pulse/pulse-cookie im Homeverzeichnis User1 nach /tmp/.pulse/pulse-cookie kopiert werden!
Pulseaudio in LXC-Containern
LXC Konfigurationsdatei
lxc.mount.entry = /dev/snd dev/snd none bind,optional,create=dir lxc.mount.entry = /tmp/.pulse tmp/.pulse none bind,optional,create=dir,ro lxc.cgroup.devices.allow = c 116:* rwm lxc.environment = PULSE_SERVER=/tmp/.pulse/pulse-socket lxc.environment = PULSE_COOKIE=/tmp/.pulse/pulse-cookie
Statt die Parameter via lxc.environment an den Container durchzureichen, konnen die Werte auch direkt in /etc/pulse/client.conf bzw. ~/.config/pulse/client.conf geschrieben werden.