viernes, 14 de marzo de 2014

PulseAudio en modo sistema (Arch Linux)

En mi caso, tengo una Raspberry Pi con un parlante corriendo MPD.
Para configurar PulseAudio en modo sistema, es necesario ejecutar los siguientes pasos como root:

1.- Instalar PulseAudio

pacman -Sy pulseaudio

2.- Darle permisos para utilizar DBus

vi /etc/dbus-1/system.d/pulseaudio.conf
<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
     <policy user="pulse">
         <allow own="org.pulseaudio.Server"/>
         <allow send_destination="org.pulseaudio.Server"/>
         <allow receive_sender="org.pulseaudio.Server"/>
     </policy>
</busconfig>

3.- Crear usuario 'pulse'

useradd pulse

4.- Crear grupo 'pulse-access'

groupadd pulse-access

5.- Agregar el usuario 'pulse' al grupo 'audio'

usermod -a -G audio pulse

6.- Agregar al grupo 'pulse-access' todos los usuarios que utilizaran PulseAudio

usermod -a -G pulse-access <your_user>

7.- Cambiar el directorio 'home' del usuario 'pulse'

usermod --home /var/run/pulse pulse

8.- Cambiar la linea del archivo client.conf

vi /etc/pulse/client.conf
- ;autospawn = yes
+ autospawn = no

9.- Agregar PulseAudio como servicio dentro de Systemd

vi /usr/lib/systemd/system/pulseaudio.service
[Unit]
Description=PulseAudio Daemon
Documentation=man:pulseaudio(1)

[Service]
ExecStart=/usr/bin/pulseaudio --system --high-priority --disallow-exit --disable-shm --disallow-module-loading=1 --log-target=stderr --exit-idle-time=-1
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

10.- Refrescar la configuración del Systemd

systemctl --system daemon-reload

11.- Habilitarlo dentro de Systemd

systemctl enable pulseaudio

12.- Crear el home de pulseaudio

mkdir -p /var/run/pulse
chown -R pulse: /var/run/pulse

13.- Reiniciar el equipo

reboot