View Full Version : Installing on Debian NSLU2 (Slug)

2007-11-03, 03:04
Hi SlimDudes--

Can you include the arm platform on the http://debian.slimdevices.com server? It's actually the 3rd most popular Debian platform due to the Slug and other NAS devices that use the Intel IXP processor. It's the only way I can get a version > 6.3. I tried installing the available 6.3 on my slug. The server runs and I can get the server page up in a web browser, but nothing works. Internet radio won't work. When I click Shoutcast, I get an empty page with XML parsing errors in the slimserver.log file. Entering a valid path in the music library path returns a message saying the path is invalid. And other weirdness not worth mentioning. I'm pretty sure I just need to get to the latest version. I tried installing 6.5.4 in a Debian VM on my laptop and it works fine.

slug:~# uname -a
Linux slug.prather.net 2.6.18-5-ixp4xx #1 Thu Oct 11 20:42:54 UTC 2007 armv5tel GNU/Linux


2007-11-03, 03:43
Slimdevices seems to only support the x86 and a few main Linux distros. Although ARM is very popular, most NAS are not standard Linux so each has its own build such as QNAP, Synology and others.

The easiest way would be to buildon the platforms using build-perl-modules and then post the log if you have problems.

If the build succeeds but you can't run the run slimserver.pl with d_startup and d_server enabled and post the log (probably zipped as it will be large).

2007-11-03, 20:54
Thanks for the reply!

I tried building the perl modules using the trunk source. I got this message ad nauseum. My thanks go out to someone out there in OSS-land for this stellar error message.

Sorry! since you don't have any existing picks, you must make a
geographic selection.
Sorry! since you don't have any existing picks, you must make a
geographic selection.

I'm going to co the 6.5.4 source next and try it.


2007-11-03, 22:53
Well, better results this time, but still won't work. Even though it would appear that building YAML:Syck is successful, it won't work.

Here's the (most) relevant error.

Module [YAML::Syck] failed to load: [Undefined subroutine &YAML::Syck::Dump called at
/home/root/sandbox/RELEASE_6_5_4/server/Slim/bootstrap.pm line 238.]

Version mismatch? Where's that function? I'll past some terminal output below and start excavating. Any ideas??


root@slug:~/sandbox/RELEASE_6_5_4/server# ./Bin/build-perl-modules.pl YAML::Syck
Welcome to the SlimServer perl module installer.

These packages are needed for SlimServer to function.
You will need a C compiler (gcc), make, and perl installed.

You will need development libraries for MySQL. eg: libmysqlclient

You will need development libraries for expat. eg: libexpat1-dev

*** Ignore any warnings about AppConfig. ***

Please enter a perl binary to use (defaults to /usr/bin/perl)
This must be the same perl binary that you ran this program with -->
Please enter a directory to download files to --> /home/root/temp
Downloads will use lwp to fetch tarballs.

Downloading YAML-Syck-0.64.tar.gz to: /home/root/temp
/usr/bin/perl Makefile.PL
Library for YAML-Syck-0.64.tar.gz is OK!
All done!

root@slug:~/sandbox/RELEASE_6_5_4/server# ./slimserver.pl
The following modules failed to load: YAML::Syck

To download and compile them, please run: /home/root/sandbox/RELEASE_6_5_4/server/Bin/build-perl-modules.pl YAML::Syck


2007-11-03, 23:01
Indeed, this sub doesn't appear to be in this version of this module.

root@slug:~/temp/YAML-Syck-0.64# grep -i syck::dump *
Syck.c: Perl_croak(aTHX_ "Usage: YAML::Syck::DumpYAML(sv)");
Syck.c: Perl_croak(aTHX_ "Usage: YAML::Syck::DumpJSON(sv)");
Syck.c: newXS("YAML::Syck::DumpYAML", XS_YAML__Syck_DumpYAML, file);
Syck.c: newXS("YAML::Syck::DumpJSON", XS_YAML__Syck_DumpJSON, file);
Binary file Syck.o matches

Looks like this version of the module added the ability to dump two different things (or formats, or whatever) and added a qualifier to the end of the sub name.

Is there a bug here somewhere? Where is the mapping for each version of slimserver and the CPAN module versions required?

BTW, this is the first time I've ever messed with the slimserver source in any way, so please bear with me.


2007-11-03, 23:04
Ok. The mapping is in the obvious place of course (build-perl-modules.pl). What's going on here?

# The list of all the packages needed.
my %packages = (
'Compress::Zlib' => 'Compress-Zlib-1.41.tar.gz',
'DBI' => 'DBI-1.50.tar.gz',
'DBD::mysql' => 'DBD-mysql-3.0002.tar.gz',
'Digest::SHA1' => 'Digest-SHA1-2.11.tar.gz',
'HTML::Parser' => 'HTML-Parser-3.48.tar.gz',
'Template' => 'Template-Toolkit-2.15.tar.gz',
'Time::HiRes' => 'Time-HiRes-1.86.tar.gz',
'XML::Parser::Expat' => 'XML-Parser-2.34.tar.gz',
'YAML::Syck' => 'YAML-Syck-0.64.tar.gz',


2007-11-03, 23:22
So I checked here, http://svn.slimdevices.com/vendor/src/, and the only version of YAML::Syck there is 0.64 (though 0.99 is currently available from CPAN). Further proof that my compile went ok:

root@slug:~/temp/YAML-Syck-0.64# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
11/11 skipped: Devel::Leak not installed
All tests successful, 11 subtests skipped.

I'm mystefied.

2007-11-03, 23:59
Ah, I just found this in CPAN/YAML/Syck.pm:

*Dump = \&YAML::Syck::DumpYAML;

Is CPAN in @INC? The search goes on...

2007-11-04, 00:22
It's beginning to look like bootstrap isn't loading CPAN/YAML/Syck from my server/CPAN dir. I bet it has something to do with this code in bootstrap.pm:

if (Slim::Utils::OSDetect::isDebian() || slim::Utils::OSDetect::isRHELorFC()) {

@SlimINC = Slim::Utils::OSDetect::dirsFor('lib');

I'm willing to bet (not much) that this has something to do with Debian's slimserver package being stuck at 6.3. I think it's time to hit BugZilla.


2007-11-07, 23:58
I guess I lost the interest of anyone who cares.

I'm trying a different tach for now. Clearly the developers never thought a debian user would try to run slimserver from the svn.

I can't believe an app based on a scripting language has managed to be so hard to port. How'd that happen?

2007-11-08, 01:23
The developers can only support a limited number of platforms.

I've done a reasonable bit of work with ARM wrt AlienBBC and building an Slimserver distribution but it seems you have run into a Debian issue. I've had no problems with YAML::Syck on optware and my IPKG for 6.5.4 works on the NSLU2 as well as FSG3. It seems you have some Debian specific issue that could be answered on a Debian/NSLU2 forum. I can't replicate the issues.

Have you looked at this site - I don't understand Japanese and it is for 6.5.0 but he/she indicates the steps for an Slimserver on ARM/Debian.
What is interesting is they fetch a specific deb for yaml_syck.

You should also check makerelease.pl to see what happen to the svn checkout to make it into a deb distribution as you might have to apply some of those steps.

2007-12-13, 20:45
I tried building the perl modules using the trunk source. I got this message ad nauseum. My thanks go out to someone out there in OSS-land for this stellar error message.

Sorry! since you don't have any existing picks, you must make a
geographic selection.
Sorry! since you don't have any existing picks, you must make a
geographic selection.

I'm trying to install the 7.0 beta on my PPC Linkstation and am getting the same error. Any suggestions on how to work around it?