LMS up and running? Just one step left to turn your raspi into the best internet radio.

If you looked closely what is in allthingspi package you may had found squeezeslave, but as LMS works perfectly with allthingspi package  squeezeslave does not, so we have to do it different way.

Make a temporary directory for squeezeslave

Pick a correct version from https://code.google.com/p/squeezeslave/downloads/list depending on wheter you have soft float or hard float version. If you do not know which one to choose, you probably have a hard float version. Check it with  uname -a  command, if you have soft float your architecture will be armel, I have hard float version:

Hard float version download:

If you get a below error you can use  wget --no-check-certificate  to skip checking site certificate , assuming you know what you download and you trust this site. Downloading Squezeslave from Googlecode is safe but use this option wisely in future.

Unpack squeezesalve and copy binary to /usr/bin:

Check if it works by checking avaliable outputs:

As you can see there are a bunch of possible outputs, if you don’t have external audio card choose default, but I strongly recommend using external usb audio card, output from raspis jack is terible. I use fiio e10 (fiio.com.cn) and fiio d5 (discontinued but you can still find it in stores), superb audio quality for this price and no install required, just plug’n’play.

Download init script and copy it to /etc/init.d/

Create defaults file for sickbeard, where you can override any option you like, below my defaults with configuration that should be sufficient for most systems.

SSMAC – find it with  ifconfig  command, this is mac of your active internet interface, e.g. wlan0 or eth0.

SBHOST – hostname or IP of your LMS instalation, you can install and use LMS and squeezeslave on one raspi without any problems, in this case type localhost there.

SSOPTIONS – I choose output device with number 0 and squeezebox to run as a daemon (background service). All squeezeslave options can be listed with  squeezeslave --help

Now, run squeezeslave

And go to http://[raspi IP or hostname]:9000 or use Android/iOS application to play your favourite music.

Problems? Questions? Comments? Let us know what you think :)


Here is your raspberry pi ampilight system!
  • Nico Verbaan

    Would like to install squeezeslave (server and player) at my XBian on Raspberry Pi. Do you have detailed instructions for this?
    Kind regards,

    • http://raspberry-at-home.pl/ Tomasz Szczerba

      Hi Nico, I don’t know much about xbian, haven’t tested it yet but i think there should be no differences regarding lms and squeezeslave install. If you encounter any inssues let me know and I’m sure we’ll figure them out.

    • http://raspberry-at-home.pl/ Tomasz Szczerba

      You can always make a backup od sdcard using dd and restore it with dd (linux) or win32diskimager (windows).

  • branez

    i have errors:

    in first step:
    mkdir: cannot create directory squeezeslave': File exists

    and later:
    cp: cannot stat
    squeezeslave-1.3-390′: No such file or directory

    Any idea??

    • http://raspberry-at-home.pl/ Tomasz Szczerba

      Hi branez,

      Well means that you already have such directory, check it with ‘ls -la’ command. However this is just a temp dir, you can pick any name for it just remember it and substitute in paths.

      Oh, you are right, sorry for that. Package contains already renamed squeezeslave file. Correct command is: ‘cp squeezeslave /usr/bin/squeezeslave’. Thanks for pointing that out! :)


  • Geoff Healey

    Hi, I have followed all the steps for the server and squeeze slaves without errors but I am unable to play through my DAC. Output with the SSOPTIONS either 0 or 1.

    I assume the * means the output is * 3: (ALSA) default (11/46) I have tried to change it by command line but was no able to. This is why I changed the squeezeslave file and restarted the service.

    more /etc/default/squeezeslave

    SSOPTIONS=”-o 0 –daemonize”
    pi@raspberrypi ~/squeezeslave $ ./squeezeslave -L
    Output devices:
    0: (ALSA) bcm2835 ALSA: bcm2835 ALSA (hw:0,0) (11/46)
    1: (ALSA) C-Media USB Headphone Set: USB Audio (hw:1,0) (11/46)
    2: (ALSA) sysdefault (11/46)
    * 3: (ALSA) default (11/46)

    If I use the -o 1 option I get

    Output devices:
    * 0: (ALSA) C-Media USB Headphone Set: USB Audio (hw:1,0) (11/46)

    System Info

    Logitech Media Server Version: 7.7.2 – r33893 @ Wed Mar 14 05:46:46 PDT

    Hostname: raspberrypi
    Server IP Address:
    Server HTTP Port Number: 9000
    Operating system: Debian – EN – utf8
    Platform Architecture: armv7l-linux
    Perl Version: 5.14.2 – arm-linux-gnueabihf-thread-multi-64int
    Database Version: DBD::SQLite 1.34_01 (sqlite
    Total Players Recognized: 1
    Any assistance to where I have gone wrong would be greatly appreciated.
    Kind regards Geoff Healey