Un système audio pour la maison [Part 2]

Dans le précédent article je vous ai décris (à la limite de la pub) ce que pouvait faire une squeezebox « du commerce »

Maintenant je vais vous parler de se faire sa propre squeezebox radio à base de Raspberry Pi.

Si on considère qu’on a déjà un Raspberry Pi d’installé l’opération est très simpe. Un tutoriel complet est décrit dans cet article, mais personnellement j’ai sabré bon nombre d’étapes (Wifi,..)

Dans les faits j’ai eu quelques problemes avec la distrib que j’avais installé à la base (la débian de base du Pi ? je ne sais plus), le son était mauvais. Des « clicks » se faisaient entendre. Vu que je n’avais pas grande idée sur le sujet j’ai utilisé la Raspifi que j’avais installé précédemment et appliqué la procédure ci dessus. Cette fois les « clicks » n’étaient pas présents.

A l’heure actuelle je fonctionne avec la Raspify, mais sans utiliser son interface. Il n’y a pas de conflit entre squeezelite et mpd donc je garde pour le moment 😉

Les étapes importantes à garder sont les suivante :

sudo apt-get update
sudo apt-get install libfaad2 libmad0

cd /usr/bin/
sudo wget http://squeezelite.googlecode.com/files/squeezelite-armv6
sudo chmod u+x squeezelite-armv6

A partir de ce moment là il est possible de lancer squeezelite-armv6 et de profiter du son (pour peu qu’on ai un serveur installé comme décrit dans la partie 1 … faut suivre 🙂 )

Pour lancer automatiquement le client j’utilise le script suivant, installé dans /etc/init.d/squeezelite-armv6 (j’ai pris comme base celui fourni avec le tuto cité précédemment ).

#! /bin/sh
### BEGIN INIT INFO
# Provides: squeezelite
# Required-Start:
# Required-Stop:
# Should-Start:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Squeezeslitee
# Description: Light weight streaming audio player for Logitech's Squeezebox audio server
### END INIT INFO</code>

# Author: Me
#
# Install Instructions
#
# Copy file to /etc/init.d/squeezeslite
# chmod 755 /etc/init.d/squeezeslite
# update-rc.d squeezeslitee defaults
#
# Create /etc/default/squeezeslite to override any default
# variables defined here. No not edit this file.
#
# Uninstall Instructions
#
# update-rc.d squeezeslite remove
#

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Squeezebox client"
NAME=squeezelite-armv6
DAEMON=/usr/bin/$NAME
SCRIPTNAME=/etc/init.d/$NAME
SLOPTIONS="-a 120 -o default:CARD=ALSA"
SLLOG=/var/log/squeezeslite.log
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] &amp;&amp; . /etc/default/$NAME

DAEMON_ARGS="${SLOPTIONS}"

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (&gt;= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
    if [ -f ${SLLOG} ]; then
    rm ${SLLOG}
    fi
    start-stop-daemon --start --quiet --background --exec $DAEMON -- $DAEMON_ARGS || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
    killall $DAEMON
    RETVAL="$?"
    [ "$RETVAL" = 2 ] &amp;&amp; return 2
}

# MAIN #
case "$1" in
start)
    [ "$VERBOSE" != no ] &amp;&amp; log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
        0|1) [ "$VERBOSE" != no ] &amp;&amp; log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] &amp;&amp; log_end_msg 1 ;;
    esac
    ;;
stop)
    [ "$VERBOSE" != no ] &amp;&amp; log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
        0|1) [ "$VERBOSE" != no ] &amp;&amp; log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] &amp;&amp; log_end_msg 1 ;;
    esac
    ;;
    status)
        status_of_proc "$DAEMON" "$NAME" &amp;&amp; exit 0 || exit $?
    ;;
    restart)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
            0|1)
                do_start
                case "$?" in
                    0) log_end_msg 0 ;;
                    1) log_end_msg 1 ;; # Old process is still running
                    *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
            *)
                # Failed to stop
                log_end_msg 1
                ;;
            esac
        ;;
        *)
            echo "Usage: $0 {start|stop|status|restart|force-reload}" &gt;&amp;2
            exit 3
        ;;
esac

N’oubliez pas de le rendre exécutable avant de faire un service squeezelite-armv6 start
Un update-rc.d squeezelite-armv6 defaults plus loin vous pouvez rebooter, il redémarrera tout seul 😉

C’est un peu brut de décoffrage , mais ça fonctionne … à suivre pour quelques raffinements

Publicités

Publié le 15 octobre 2013, dans Linux, Raspberry Pi, et tagué , . Bookmarquez ce permalien. Poster un commentaire.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :