Fork me on GitHub

Configurer correctement MPD avec Pulseaudio

Un serveur de musique sous Ubuntu

Vous connaissez peut-être MPD, qui est un serveur de musique.

Chez Ionyse, on l'utilise pour que chaque personne puisse changer la musique, régler le volume mais qu'on écoute tous la même musique afin d'éviter d'avoir un casque sur les oreilles et de perdre toute sociabilité.

Malheureusement par défaut, le serveur de son pulseaudio se lance avec un utilisateur, il fallait donc une personne connecté sur le serveur pour pouvoir streamer de la musique et on perdait la musique lorsque la personne se deconnectait.

Configuration de pulseaudio

La première chose à faire est de configurer pulseaudio pour qu'il se lance au démarrage. On modifie le fichier /etc/default/pulseaudio de la sorte

--- old/pulseaudio  2011-08-25 10:34:13.174681793 +0200
+++ new/pulseaudio  2011-08-25 10:34:38.542681795 +0200
@@ -12,11 +12,11 @@
 # is enabled. For other sessions, you can simply start PulseAudio with
 # "pulseaudio --daemonize".
 # 0 = don't start in system mode, 1 = start in system mode
-PULSEAUDIO_SYSTEM_START=0
+PULSEAUDIO_SYSTEM_START=1

 # Prevent users from dynamically loading modules into the PulseAudio sound
 # server. Dynamic module loading enhances the flexibilty of the PulseAudio
 # system, but may pose a security risk.
 # 0 = no, 1 = yes
-DISALLOW_MODULE_LOADING=1
+DISALLOW_MODULE_LOADING=0

Selon la version d'Ubuntu que vous utilisez, vous devez aussi utiliser udev pour charger les modules de pulseaudio. On modifile fichier /etc/pulse/system.pa

--- old/system.pa   2011-08-25 10:38:38.078681821 +0200
+++ new/system.pa   2011-08-25 10:36:51.798681810 +0200
@@ -20,8 +20,8 @@
 # mode.

 ### Automatically load driver modules depending on the hardware available
-.ifexists module-hal-detect.so
-load-module module-hal-detect
+.ifexists module-udev-detect.so
+load-module module-udev-detect
 .else
 ### Alternatively use the static hardware detection module (for systems that
 ### lack HAL support)

Configuration des comptes utilisateurs

Afin que les utilisateurs puissent lancer des sons sur le serveur pulseaudio, il faut les ajouter aux groupes suivants :

  • pulse-access
  • pulse
  • audio

Il faut le faire pour mpd

$ sudo adduser mpd pulse-access
$ sudo adduser mpd pulse
$ sudo adduser mpd audio

Et pour tous les utilisateurs du système qui doivent jouer des sons.

Configurer MPD pour qu'il utilise pulseaudio

La dernière chose à faire est de configurer MPD afin qu'il utilise pulse audio. On modifie le fichier /etc/mpd.conf

--- old/mpd.conf    2011-08-25 10:45:17.738681865 +0200
+++ new/mpd.conf    2011-08-25 10:45:57.702681868 +0200
@@ -174,15 +174,15 @@
 #
 # An example of an ALSA output:
 #
-audio_output {
-   type          "alsa"
-   name          "My ALSA Device"
-   device        "hw:0,0"        # optional
-   format        "44100:16:2"    # optional
-   mixer_device  "default"       # optional
-   mixer_control "PCM"           # optional
-   mixer_index   "0"             # optional
-}
+#audio_output {
+#  type          "alsa"
+#  name          "My ALSA Device"
+#  device        "hw:0,0"        # optional
+#  format        "44100:16:2"    # optional
+#  mixer_device  "default"       # optional
+#  mixer_control "PCM"           # optional
+#  mixer_index   "0"             # optional
+#}
 #
 # An example of an OSS output:
 #
@@ -230,12 +230,12 @@
 #
 # An example of a pulseaudio output (streaming to a remote pulseaudio server)
 #
-#audio_output {
-#  type            "pulse"
-#  name            "My Pulse Output"
+audio_output {
+   type            "pulse"
+   name            "MPD Pulse Audio Stream"
 #  server          "remote_server"         # optional
 #  sink            "remote_server_sink"    # optional
-#}
+}
 #
 ## Example "pipe" output:
 #

Reboot and Enjoy !

C'est tout :

  • on a configurer pulseaudio pour qu'il se lance au démarrage,
  • on a configurer mpd pour qu'il utilise pulseaudio,
  • on a donné les droits aux utilisateurs d'utiliser pulseaudio.

Il suffit de redémarrer l'ordinateur et tout fonctionne.

Comments !

blogroll

social