SlimServer (MIPSel)

Originally by Tyr and edited by frontalot & AndyBryant from linkstationwiki.org

Introduction
A LS2 can be used as a host for a SlimServer (http://www.slimdevices.com) to provide streaming music to your SqueezeBox or Slimp3 device. This guide explains how to install and run the SlimServer, there may be easier methods that the one outlined here but this worked for me.

(This method also seems to be required for getting SlimServer running on a Home-Server (HS) running FreeLink)

To begin you will need either:


 * a LS2 flashed with the Projects/OpenLink firmware and the mipsel-tools-2.0 package installed.
 * a LS2 flashed with the Projects/FreeLink firmware.

This guide assumes you're using SlimServer v6.0.2 which is the current version at the time of writing.

If you extract and run SlimServer without making any further modifications after installing the mipsel-tools you will see this error

->bash-2.05a# ./slimserver.pl

'''The following modules failed to load: DBD::SQLite XML::Parser HTML::Parser Compress::Zlib '''

To download and compile them, please run: .../SlimServer_v6.0.2/Bin/build-perl-modules.pl 

AlienBBC & mplayer
Note that at present the realaudio codecs are only available for the PPC and x86 platforms, which means that you won't be able to get realaudio streaming to work from a MIPS based Linkstation. There is some discussion that recent versions of mplayer include the ability to decode some versions of realaudio, however it hasn't been demonstrated yet.

Installing modules
Whilst the SlimServer ships with these modules they are not supplied for the mipsel platform so you have 2 options. You can either build them yourself following the instructions below, or you can download a precompiled package containing all the modules you need from this wiki, see Projects/MIPSelSlimServerModules for details (the precompiled package may only work for OpenLink, not FreeLink).

If you are using the precompiled modules skip this next section and go on to 'Final Steps'

Before you can install the modules you will need to add the expat libraries to your LS, these are needed so that you can compile XML::Parser. Grab the below 2 Debian packages from your nearest mirror then extract the contents using 'Alien' or 'Midnight Commander' (or similar) then copy the files to the LS ensuring that you maintain the correct directory structure:


 * libexpat1-dev_1.95.2-6_mipsel.deb
 * libexpat1_1.95.2-6_mipsel.deb

Alternatively for the FreeLink installation you can use: apt-get install libexpat1 libexpat1-dev

You can now install all the Perl modules with CPAN. At the shell prompt type

cpan DBI DBD::SQLite XML::Parser HTML::Parser Compress::Zlib

If you get errors about 'cc not found' try this instead

CC=gcc cpan DBI DBD::SQLite XML::Parser HTML::Parser Compress::Zlib

If you have not used CPAN before it will need to run through it's initial configuration. You can accept the defaults for pretty much everything. Ensure 'Policy on building prerequisites' is set to 'ask' or 'follow'. Don't worry if it can't find binaries for lynx,ncftp, ncftpget,ftp,gpg etc.. it will use alternatives. Put /bin/bash for 'favorite shell', and choose a local mirror when prompted.

Whilst it's compiling the modules you may be asked to download and install prerequisite modules, just answer 'yes' to the questions. Once complete you need to make a couple of modifications to the SlimServer distribution.

Final Steps
In the CPAN directory (under the SlimServer package) rename (or delete) DBI, DBI.pm, and DBD. This ensures the SlimServer uses the versions you've just installed system wide rather than it's own. If you attempt to use the ones shipped with SlimServer you may get version mismatches.

Now open up slimserver.pl in ' vi ' and change line 145 from:

'''my @modules = qw(Time::HiRes DBI DBD::SQLite XML::Parser HTML::Parser Compress::Zlib); '''

to

'''my @modules = qw(Time::HiRes DBI XML::Parser HTML::Parser Compress::Zlib); '''

i.e. remove the reference to DBD::SQLite, it's not needed as the DBI will invoke it when required and attempting to load it at this stage can cause problems.

Once complete just do a normal ./slimserver.pl and the SlimServer should start up, you can now point your browser to http: //linkstation-ip:9000

Have fun.