Saturday, 31 May 2008

SqueezeCenter on the SLUG

At first glance, installing slimserver (now SqueezeCenter) on the SLUG is very straight forward as it's nicely packaged into an ipkg and made available via Optware. However, as indicated on the slimserver application page on the nslu2-linux wiki, things aren't as simple as they first appear. Unfortunately, something is very broken with slimserver and its dependency chain in Optware as things stand at this moment in time. As a result installing slimserver with a view to upgrading to squeezecenter at a later date becomes much more problematic. I need at least SqueezeCenter version 7.0 to operate with the SqueezeBox Duet.

My first target was to run slimserver 6.5.4 which is the latest version from the version 6 line and the version packaged for the SLUG in optware. I tracked the problem down to the mysql dependency for slimserver, it seems since the last update of slimserver in optware, mysql has also been updated and since that time slimserver has been reported as broken on the SLUG. Unfortunately, rolling back versions in optware is not trivial since they only make available the latest version with no access to previously packaged programs. My only option was to check out the mysql build environment from SVN at the previous level and compile up the package from source. This is reported to take in the region of 18 hours natively on the SLUG so I set up a cross-compilation environment on my Fedora 8 box at home. MySQL compiled in about 10-15 minutes and I now had a package to install. The reports were correct, slimserver 6.5.4 was now running on my SLUG, excellent!

The next challenge was to get SqueezeCenter running, and this worked in a similar way to getting slimserver going. There are a few oddities with getting all your ducks in a row while running this stuff on a SLUG, SqueezeCenter is very particular about file permissions, and the newer software introduces a whole bunch of Perl dependencies not present in the earlier slimserver versions. Fortunately, I'm very familiar with Perl as well as Linux (one of the reasons for choosing a squeezebox) and I've managed to compile up the minimum dependencies to get SqueezeCenter going. It seems Slim Devices as a company test against x86 and PPC architectures to the extent they even supply their Perl dependencies for these from CPAN. I'm running on ARM on the SLUG though which introduces a whole world of dependency problems as it seems SqueezeCenter is also pretty sensitive to the version of each Perl module used, it's not just a case of grabbing the latest and greatest from CPAN, a further bind for getting it going nicely. One other thing, CPAN doesn't seem to run at all well on the SLUG, it's far faster to download the tarred packages and compile manually!

I eventually got SqueezeCenter 7.0.1 running on the SLUG, it consumes at least twice the 32MB RAM available so runs pretty slowly while spending a lot of time paging to the USB disk. I set up an additional swap file on disk as well, thinking about it perhaps I should have used the rest of the 8MB flash as swap too! All in all, running SqueezeCenter on a machine with so little memory and on an architecture not supported by Slim Devices has equated to a slow response time and a maintenance headache.

In conclusion, it's been a good experience getting a SLUG and setting up SqueezeCenter on it. But I already need a more powerful box so less than 1 week after the SLUG arrived at my house it's time to sell already. Fortunately, I've found a buyer at work who wants something low power for some really trivial services so the SLUG is ideal for them. For me though, it's a case of getting back to scratching my head over which low power home server solution to try next. Whatever I choose will be more expensive than the SLUG, it's possible I could equal its low power usage, and I definitely now know I need more memory and ideally an x86 architecture.


boydd_uk said...

How bad was it. I've just bought the slug as I wanted a quiet and less power hungry alternative than leaving my PC on?

Is it really that bad?

Graham White said...

@boydd_uk bad, very bad indeed! I would definitely advise you and others thinking of running SqueezeCenter on a slug to run it elsewhere. I'm a Linux geek well used to compiling code and working across multiple architectures so while the maintenance wasn't difficult for me, it was arduous and many people would find it impossible.

The speed of the slug is unbearable for SqueezeCenter 7 and up due mostly to the limited 32MB main memory rather than the processor speed - it pages A LOT!

Consider getting something else equally low power but much better specified. I listed most of the options I considered and eventually got a TinyTuxbox. The Viglin MPC-L in the first link wasn't available when I bought my box but give the best current band for you hard earned buck!

√ėyvind Lunde said...

Where exactly did you find the information about Slimerver 6.5.4 not working with the newest MySql? I had version 6.5.4 working earlier, but after a reinstall it's no longer working. "slimserver status" says stuff like "could not stop slimserver as it is not running.", slimserver stop works fine, but slimserver start reports an error.

Could you possibly provide your build of the previous MySql version?

Graham White said...

Hi, sorry for the delayed response. Your comment was moderated by Blogger so I've only just found it.

There was no information I found on anywhere relating to SqueezeCenter with the latest MySQL but having tried it myself I did come across some problems and had to roll back to an earlier version (again custom compiled).

I don't have any of my previous Slug builds any more, they were all deleted when I sold my slug.