pleko
Posts: 6
Joined: Fri Sep 14, 2012 2:12 pm

Squezzebox maison : Raspberrypi et SqueezeSlave

Sat Sep 29, 2012 3:37 pm

J'ai reçut un RaspberryPi récemment et j'ai vite décidé de le transformer en SquezzeBox pour utiliser la fonction SquezzeBox serveur de mon Qnap. Malheureusement mes compétence en programmation sont assez limitées, heureusement la communauté du Pi est déjà grande et active donc d'autres ont déjà portés Squezzeslave pour le Pi et plusieurs tutos (en anglais) existent pour faire fonctionner la chose. Ma contribution vas donc être principalement de faire un tuto en français et de proposer une image de raspian avec squezzeslave qui fonctionnera sans configuration (ou presque).

Matériel : Un RaspberryPi, une alim, des hauts-parleurs, un cable RJ45

En l'état je suis arrivé au stade ou le Pi fonctionne branché en RJ45 et sur des enceintes branché sur le port jack.

Configuration de Raspian :

Code: Select all

##configuration de raspian si besoin##
sudo raspi-config

##mise à jour de raspian et intallation de paquets pour l'audio##
sudo apt-get update && sudo apt-get dist-upgrade 
sudo apt-get install libjpeg8 libpng12-0 libgif4 libexif12 libswscale2 libavcodec53
sudo reboot

## installation de squezzeslave ##
mkdir squeezeslavesrc && cd squeezeslavesrc
wget http://squeezeslave.googlecode.com/files/squeezeslave-1.2-367-armhf-lnx31.tar.gz
tar -xvf squeezeslave-1.2-367-armhf-lnx31.tar.gz
mv squeezeslave-1.2-367 squeezeslave

## En partant du principe qu'un serveur LMS tourne sur le même réseau (Qnap, Synology, PC/MAC avec LMS ... un autre raspi
Le son soit par le HDMI si celui ci est branché sinon par le jack (en principe)##
./squeezeslave -L  
## Cette commande doit lister les devices audio, le résultat doit être du genre :
	Output devices:
	  0: (ALSA) bcm2835 ALSA: bcm2835 ALSA (hw:0,0) (11/46)
	  1: (ALSA) sysdefault (11/46)
	  2: (ALSA) mmap0 (11/46)
	* 3: (ALSA) default (11/46)

## Si le résultat est vide essayer ceci :##
sudo modprobe snd-bcm2835
./squeezeslave -L

## Pour lancer squeezeslave, Pour quitter taper "q" ##
./squeezeslave -D -F

## Pour régler la sortie son, chez moi j'ai mis 80 % pour un meilleur rapport volume/qualité ##
sudo alsamixer


## Si tout ce qui est décrit au-dessus fonctionne, nous allons automatiser le démarrage ##

wget http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.2.311/squeezeslave-1.2-311-src.tar.bz2
tar -xjvf squeezeslave-1.2-311-src.tar.bz2
sudo cp squeezeslave /usr/bin
sudo cp squeezeslave-1.2-311/config/squeezeslave.init.debian /etc/init.d/squeezeslave
sudo chmod 755 /etc/init.d/squeezeslave
sudo update-rc.d squeezeslave defaults
echo "SBSHOST=\"-F\"" > defaultsqueezeslave
sudo cp defaultsqueezeslave /etc/default/squeezeslave

## Demarer et éteindre le service ##
sudo /etc/init.d/squeezeslave start
sudo /etc/init.d/squeezeslave stop

## Squeezeslave devrait démarer automatiquement au prochain redémarage ##
Choses encore à faire
Faire fonctionner la chose en WIFI, pour ça j'attend de recevoir le micro dongle WIFI.
Branché un écran TFT par le port DSI pour afficher ce que le Pi lit comme music.

User avatar
Paul Webster
Posts: 797
Joined: Sat Jul 30, 2011 4:49 am
Location: London, UK
Contact: Twitter

Re: Squezzebox maison : Raspberrypi et SqueezeSlave

Sat Sep 29, 2012 10:38 pm

il est à peu près la même que la mienne mais en Français ;)


pleko
Posts: 6
Joined: Fri Sep 14, 2012 2:12 pm

Re: Squezzebox maison : Raspberrypi et SqueezeSlave

Mon Oct 01, 2012 4:48 pm

Le projet finalisé n'aura pas besoin d'affichage graphique complexe donc nous pouvons supprimer Lxde et le serveur X de la carte SD, mon intention étant aussi que tout cela tienne sur une SD de 2Go pour garder un coût le plus bas possible.

Code: Select all

sudo apt-get --yes purge xserver-common x11-xfs-utils x11-xserver-utils xinit libsmbclient rm /usr/lib/xorg/modules/linux /usr/lib/xorg/modules/extensions /usr/lib/xorg/modules /usr/lib/xorg 
sudo apt-get --yes autoremove && sudo apt-get --yes autoclean && sudo apt-get --yes clean
sudo reboot

pleko
Posts: 6
Joined: Fri Sep 14, 2012 2:12 pm

Re: Squezzebox maison : Raspberrypi et SqueezeSlave

Mon Oct 01, 2012 6:50 pm

Une autre façon d'automatiser le lancement de squeezeslave est de lancer un login automatique de l'utilisateur pi et d'ensuite lancer ensuite squeezeslave avec l'affichage de ce qu'il diffuse.
pour ça il faut faire :

Code: Select all

## Login automatique de l'utlisateur pi et demarage de squeezeslave avec l'affichage
sudo nano /etc/inittab
	1:2345:respawn:/sbin/getty --noclear 38400 tty1 #ligne à commenter
	1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1 #nouvelle ligne
sudo nano /home/pi/.profile
# ajoutet la ligne de code suivante :
	if [ `tty` = "/dev/tty1" ] ; then
	squeezeslave -D -F
	fi
à la place de :

Code: Select all

## Si tout ce qui est décrit au-dessus fonctionne, nous allons automatiser le démarrage ##

wget http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.2.311/squeezeslave-1.2-311-src.tar.bz2
tar -xjvf squeezeslave-1.2-311-src.tar.bz2
sudo cp squeezeslave /usr/bin
sudo cp squeezeslave-1.2-311/config/squeezeslave.init.debian /etc/init.d/squeezeslave
sudo chmod 755 /etc/init.d/squeezeslave
sudo update-rc.d squeezeslave defaults
echo "SBSHOST=\"-F\"" > defaultsqueezeslave
sudo cp defaultsqueezeslave /etc/default/squeezeslave

## Demarer et éteindre le service ##
sudo /etc/init.d/squeezeslave start
sudo /etc/init.d/squeezeslave stop

## Squeezeslave devrait démarer automatiquement au prochain redémarage ##
l'avantage de cette solution c'est d'avoir l'affichage et de ne pas exécuter en root par contre si il y a un clavier branché sur le raspi n'importe qui peut interagir avec, dans le cas qui nous intéresse cela ne devrait pas être un problème.

pleko
Posts: 6
Joined: Fri Sep 14, 2012 2:12 pm

Re: Squezzebox maison : Raspberrypi et SqueezeSlave

Mon Oct 01, 2012 9:26 pm

un oubli de ma part ; pour que la modification dans le fichier .profile fonctionne

Code: Select all

if [ `tty` = "/dev/tty1" ] ; then
squeezeslave -D -F
fi
il faut avoir fait ça avant :

Code: Select all

sudo cp squeezeslave /usr/bin

Return to “Français”