Squeezebox on RaspberryPI
I was looking to find a usage for my (RaspberryPI)[http://www.raspberrypi.org/]. Why not a headless Squeezebox-Client? To control the player, the Squeezebox app on your Android phone is the perfect choice.
The pieces
Squeezebox
For those who don’t know, Squeezebox is a brand from Logitech featuring several Internet music players, able to play songs from a SqueezeServer. The server is just some piece of perl that you can install where you want, as long as it can index your song. You can run the server on the same RaspberryPI or dedicate a second one for that. In my case, the server is running on a Synology NAS.
RaspberryPI
RasperryPI is a small educative piece of hardware, featuring a CPU, some RAM, USB, HDMI, LAN, audio and SD slot. Basically it’s a computer perfectly adapter as a TV Set-up Box, a NAS controller or a media player.
Installing SqueezePlug
SqueezePlay is the player part of the Squeeze family. I was looking to compile it for Raspbian (a Debian based distro for Raspberry), but it seemed a too high challenge. Luckily, the guys at Squeezeplug ported the Squeezebox OS to RasperryPI, making the process a lot easier, and offers not only SqueezePlay, but also SqueezeLite and SqueezeSlave.
- SqueezePlug is 3Gb. you will need a 4Gb SD card
- Download the lastest squeezeplug build from the download page and unzip the archive to reveal SqueezePlug_HF_602.img
- Burn the image to the SD card:
```bash
sudo umount /dev/sdd1 # Or wherever your SD card got mounted when inserted
sudo dd bs=4M if=SqueezePlug_HF_602.img of=/dev/sdd # Or wherever the SD card is located
```
- Put the SD into the RPI, connect LAN, Audio and power.
- The IP address is set by DHCP. Get the IP address either from your router or connect an HDMI screen. IP address is printed out on login screen.
- Connect through ssh to your RPI, with user root and password nosoup4u
- You will by default enter an ncurses menu, in case you quit it accidentally, just launch it again with the setup command
Configuration
The SqueezePlug image not only allows you to have a Squeeze-client, but allows you also to install a Squeeze-server. On the main configuration screen, you are able to configure Network, install samba end even upgrade the underlaying Debian distribution.
Server Installation
Go to Server_and_Player to install the Server software. Choose one of the Server packages. It all depends on the clients you want to serve. I won’t cover Server installation here, since I am only interested in the client part.
Player Installation
Go to Server_and_Player to install the player software. Choose one of the players for LMS (Logitech Media Server):
- SqueezeSlave: a headless player
- SqueezeLite: another headless player
- SqueezePlay: Official player run, same as the one running on Logitech’s hardware. Has a display interface that you can control by keyboard or touchscreen.
We are installing SqueezeLite, which is an improved version of SqueezeSlave. SqueezePlay just adds a useless overhead for our case.
Installation is pretty straight forward. Choose “Install SqueezeLite” and follow the screens:
- Give a name to your box, avoid spaces
- Choose your soundcard. If you are using a speakers plugged on the headphone jack, choose bcm2835 RPi internal
- No need to go into the advanced setup screens, unless you know what to do
- SqueezeLite is started automatically
Start / Stop / Configure
Configuration file is located at /etc/default/squeezelite
. Client can be stopped with /etc/init.d/squeezelite stop
and started with etc/init.d/squeezelite start
.
Controlling the player
To control the player, the easiest way is to use the Squeezebox app available from App Store or Google Play.
From the SqueezeControl, you have access to the same menus you have on your SqueezeBox Touch, or SqueezePlay. Allowing to access your library and even sync the boxes so that every room in your home plays the same songs.