Indice
Music Player Daemon su RaspberryPi
Partiamo subito col dire che Mpd, come dice la parola stessa, è un player musicale per riprodurre musica in qualsiasi formato: flac, ogg, mp3.
La differenza da tutti gli altri player comuni è che ha una struttura client-server, é cioè composto da una parte server che si occupa di riprodurre i files musicali ed offre la possibilita' di essere comandato da piu' client. Esistono client sia per computer (Lin, Win, Mac), sia per smartphone e tablet, sia tool a riga di comando, sia ad interfaccia grafica. Sul sito del progetto trovate una lista completa dei client.
Il progetto
L'idea è quella di realizzare una radio raggiungibile anche da smartphone; il consumo energetico deve essere minimo e deve essere di facile utilizzo anche per le persone poco predisposte all'utilizzo di mezzi informatici, in casa abbiamo tutti qualche famigliare con la fobia per la tecnologia!
Per questo progetto è stato utilizzato Raspberry Pi, una board arm-based.
La grandezza di questo pc è quella del palmo di una mano e il costo si aggira intorno ai 32 euro.
Raspberry pi nel nostro caso sarà il dispositivo che farà girare il demone MPD e dato il consumo energetico quasi irrisorio (circa 1/2Watt se il carico non e' pesante, con un massimo di 5W ) potrà restare sempre acceso e darà la possibilà di accedere alle playlist in maniera veloce e ottimale.
Materiale utilizzato
Abbiamo quindi detto che utilizziamo un Raspberry Pi collegato alla rete di casa via ethernet o wireless. Ovviamente una chiavetta (o hard disk) con la musica e delle casse per per ascoltarla. Se siamo proprio degli estimatori possiamo utilizzare una scheda audio usb ed utilizzare un impianto 5.1, altrimenti delle casse da pc attaccate alla presa jack andrano benissimo.
Realizzazione del progetto
Il progetto parte dall'installazione del sistema operativo su Raspberry Pi. Per questo progetto ho utilizzato la distribuzione ufficiale Raspbian “wheezy” basata su Debian. Una volta installata la distro, sono subito passato all'installazione di mpd per comodità indicherò i comandi utilizzati da terminale. Tutti i comandi della guida devono essere eseguiti da utente amministratore.
# apt-get install mpd"
questo comando prende il pacchetto di Mpd dai repository ufficiali e lo “installa” sul pc. Per avviare Music Player Daemon abbiamo obbligatoriamente bisogno di modificare il file mpd.conf situato all'interno della cartella /etc. quindi il comando è
# nano /etc/mpd.conf
All'interno di questo file sono presenti tutte le configurazioni che renderanno possibile l'utilizzo di questo programma.
La directory di default dove mpd pesca tutti i file e' /var/lib/mpd, nel nostro raspberry si trova proprio in mezzo alla schedina, e cio' non va bene.
Montiamo la chiavetta usb in un posto comodo:
# mkdir /mnt/usb # mount /dev/sda /mnt/usb # mkdir -p /mnt/usb/.mpd/playlists
Ora configuriamo mpd tramite il suo file di configurazione /etc/mpd.conf
music_directory "/mnt/usb/" playlist_directory "/mnt/usb/.mpd/playlists" db_file "/mnt/usb/mpd/.mpd.db" log_file "/mnt/usb/.mpd/log"
Altre configurazioni non necessarie, ma utili possono essere l'impostazione dell'utente e del gruppo, la configurazione di ip e porta per ricevere le connessioni dal client e l'output audio
user "pi" group "pi" bind_to_address "localhost" port "6600"
Per quanto riguarda l'output audio abbiamo a disposizione parecchie possibilitá: alsa, pulseaudio, http o icecast. Nel file mpd.conf sono giá presenti commentate tutte le possibilitá.
Sul client impostiamo l'ip di destinazione e la porta (6600). Se sia il client che il server sono configurati correttamente la connessione dovrebbe avvenire con successo. Possiamo ora aggiornare il database delle canzoni dal client.
Troubleshooting
Il file di log é quello configurato pocanzi, /mnt/usb/.mpd/log, da li dovremmo capire quale errore e poterlo sistemare.
Permessi dei file o delle cartelle non congruenti con il file di configurazione, la causa puo' derivare sia dai permessi unix errati, sia da selinux. Nel primo caso possiamo sistemare i permessi con:
# chown -R mpd /path/to/dir
Se il problema persiste possiamo dissabilitare temporaneamente SELinux con il comando
# setenforce 0
Rimando alla guida di selinux per maggiori chiarimenti sulla gestione delle policy di sicurezza.
Se il percorso della cartella che contiene i dati é errato andiamo a riconfigurare correttamente il daemon su mpd.conf, stessa cosa per l'output audio sbagliato.
Nel caso in cui il client remoto non si riesca a connettere (ma si connette un client installato in locale) il problema puó essere dovuto al firewall del Raspberry. Con ip tables si aggiusta:
# iptables -A INPUT -p tcp --dport 6600 -j ACCEPT
Authors
Author: whitelabox whitelabox@gmail.com
Revision: Alessandro Lorenzi alessandro.lorenzi@gmail.com