PDA

View Full Version : Announce: SBS 7.4.2 for Broadcom/MIPSEL



Steevee28
2010-02-28, 10:04
Hi all!

I packaged SBS 7.4.2 for my (Broadcom based) Asus RT-N16, running DD-WRT. Anyone else interested in this?

See here: http://www.load.to/BgKAtZ1for/squeezeboxserver_7.4.2-1_mipsel.ipk

It runs very well so far, only music library scanning sometimes doesn't start. I could not find out why... Sorry, see http://forums.slimdevices.com/showthread.php?t=75593.

Also keep in mind that at least 64MB RAM are required! (Asus RT-N16 has 128MB :))

I initially experimented with dynamic perl module linking, but that ended up in absurd "symbol not found" errors, so I decided to step back to static linking and packed both all the shared objects AND a statically linked perl binary into the installer package.
So it should run out-of-the-box and is currently completely independent from installed perl modules.
However, MySQL5 is required.

Please note that this is the first ipkg that I ever built, so do not expect it being perfect!

I hope you have fun with it!
Regards

szalik
2010-03-03, 11:34
Could you please tell us what is the performance of SBS on this device? I'm really thinking of buying it for the purpose of setting SBS on it (my alternative is sheevaplug).

Steevee28
2010-03-04, 12:59
SBS runs very well on the Asus RT-N16, so I'm completely happy with it :)

It needs approx 90 seconds for a full restart (but who cares...). In contrast, library scan is quite ok, 10 minutes for 2625 songs on an USB-ext3-harddisk. The web interface needs 10 seconds for coming up in the browser,usability is a bit slow, but ok.
Usage of my SB Classic is very smooth - it reacts on any button presses nearly immediately.
My SB Radio is a bit slower, this is obviously because any artwork or image needs about 3 seconds for being displayed (=rescaled on the server). But this is no problem for me, especially because cached artwork is a bit faster.

I learned that the bad performance of SBS on similar routers is caused by its huge memory footprint, thus endless swapping. So 64MB RAM is definitely a minimum requirement, RT-N16's 128MB come in handy.

But in addition, you have to keep in mind that this MIPS (don't know about others) doesn't seem to have a FPU, so all floating-point intensive operations should be avoided (e.g. transcoding at all, or smooth artwork rescaling).
My music library is completely in mp3, so transcoding is no issue for me, and thanks to some wise developers, smooth artwork rescaling can be turned off ;)

szalik
2010-03-08, 14:22
Thanks! I'm going to give it a try this week :-)

bsp
2010-03-10, 22:28
Steevee28,

Did you use ipkg to load Perl and MySQL on your RT-N16? I see microperl is available (I have my doubts that version would work) but I don't see an appropriate version of MySQL.

Steevee28
2010-03-15, 00:58
Hi bsp,
yes, I used mysql5_5.0.88-1_mipsel.ipk from http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable. I had to fix some minor problems with the postinst script, but basically, the installation worked.

Also, I got perl_5.8.8-23_mipsel.ipk from there.

szalik
2010-04-11, 09:43
Hi Steeve,

I noticed you successfully installed Squeezecenter on RT-N16. I'm now trying to do the same (actually with 7.6 version as it uses sqlite so I hope to have better performance).

Unfortunately, my native toolchain on the router doesn't work. It gives a really weird error and I suspect some problems with uclibc as the error message doesn't make sense, i.e.:

root@pszczolki:/tmp# cat foo.c
#include <stdio.h> int main () {}
root@pszczolki:/tmp# gcc foo.c
cc1: error: /opt/include: not a directory
cc1: error: /opt/lib/gcc/mipsel-linux-uclibc/4.1.1/include: not a directory
cc1: error: /usr/include: not a directory

Seems to me like a binary incompatibility.

So I was wondering if you could tell me what dd-writ firmware did you install and how did you get the optware? I'm pretty new to all this alternative router firmwares so all the builds of dd-wrt confuse me a bit ;-)

szalik
2010-04-11, 09:57
Oh my... I realized I should try to play with LD_LIBRARY_PATH just after I read my message ;-) Now that I have my compiler working I can start to play. Firstly I'll try compiling perl 5.10.1...

BTW, I used the 'big' firmware from "Downloads others eko V24-K26 svn14205" and followed the instructions to install the optware as in this wiki page http://www.dd-wrt.com/wiki/index.php/Optware,_the_Right_Way

Steevee28
2010-04-11, 11:16
Oh my... I realized I should try to play with LD_LIBRARY_PATH just after I read my message ;-) Now that I have my compiler working I can start to play. Firstly I'll try compiling perl 5.10.1...

BTW, I used the 'big' firmware from "Downloads others eko V24-K26 svn14205" and followed the instructions to install the optware as in this wiki page http://www.dd-wrt.com/wiki/index.php/Optware,_the_Right_Way

I did the same, but used SVN 13575 (was the newest at that time). So you're on the right way...

I guess that you'll have to patch some CPAN packages. I had multiple problems in compiling/linking them.

Btw, can you please tell me whether 14205 supports swap again? In 13575, it was disabled.

Finally, when you're done I would appreciate you sharing your work :-)

Good luck!

pounce
2010-04-11, 19:13
I was looking into this same hardware. Nice to find your post.

Have you considered sqlite and dropping the MySql?

szalik
2010-04-11, 22:46
Btw, can you please tell me whether 14205 supports swap again? In 13575, it was disabled.


As far as I know, there are two builds that can be used on RT-N16; the latest builds are:

http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/BrainSlayer-V24-preSP2/03-24-10-r14144/broadcom_K26/dd-wrt.v24-14144_NEWD-2_K2.6_big.bin

and

http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/V24-K26/svn14205/dd-wrt.v24-14205_NEWD-2_K2.6_big.bin

I tried them both (after using the initial mini build as stated on the DD-WRT wiki page for RT-N16). It's true swap doesn't work in 14205, but the BrainSlayers build (a bit older revision) works OK. That's what I'm using now.

I left perl to compile at night, will try playing with CPAN modules today. I just need to take a closer look at Squeezebox Server build infrastructure.

Steevee28
2010-04-13, 09:32
I was looking into this same hardware. Nice to find your post.

Have you considered sqlite and dropping the MySql?

Hi.
Now, I stuck to 7.4.2, thus I used MySQL instead of SQLite. This was because I started to work on it before 7.5.0 (embedded) was released.

Ventus
2010-04-28, 12:22
Hi,
I am trying to get Squeezeboxserver running on my Linux Sat Receiver (VU+ DUO, Broadcom Mips CPU, 385 MB RAM) and found this thread.
Unfortunately the link http://www.load.to/BgKAtZ1for/squeezeboxserver_7.4.2-1_mipsel.ipk to your package is not working anymore.
Would it be possible to make your package available again?
Thanks!
-Markus

Steevee28
2010-04-29, 23:38
...Would it be possible to make your package available again?...
Here is the updated link:
http://www.load.to/rlkqCctIM5/squeezeboxserver_7.4.2-1_mipsel.ipk

Best Regards

tvoil
2010-06-25, 12:15
I know I am a little late to this thread, but I just picked up one of these routers and the thought of replacing my server with this router is really interesting, if possible could you post the link for the ipk again? The one in this thread doesn't work.

Thanks

Steevee28
2010-06-26, 01:48
Here is the updated link:
http://www.load.to/uhl22iXcOZ/squeezeboxserver_7.4.2-1_mipsel.ipk

Please let me know whether this works for you.

mandarinen
2011-01-07, 15:10
Ventus,

I have a VU+ and would like to use it for SBS as well.

Did you ever get it to work?

metronet
2011-04-12, 10:31
http://www.load.to/uhl22iXcOZ/squeezeboxserver_7.4.2-1_mipsel.ipk

link is not working any more... anyone has an updated link?

Steevee28
2011-05-23, 15:03
http://dl.dropbox.com/u/13563883/squeezeboxserver_7.4.2-1_mipsel.ipk

tadc
2012-06-29, 21:13
squeezeboxserver_7.4.2-1_mipsel.ipk

a little late to the party here, but I also have an Asus RT-N16 and a couple of Squeezeboxes. I would love to run the server on my RT-N16.

Unfortunately I'm a bit of a newbie with dd-wrt and although i work as a Windows Systems Engineer I'm ashamed to say my Unix skills are about 13 years rusty.

I do have dd-wrt running already but I'm a bit unclear on all the requirements to load/run this package. Anybody who knows what their doing willing to do a little hand holding?

Thanks!

Mnyb
2012-06-29, 23:02
a little late to the party here, but I also have an Asus RT-N16 and a couple of Squeezeboxes. I would love to run the server on my RT-N16.

Unfortunately I'm a bit of a newbie with dd-wrt and although i work as a Windows Systems Engineer I'm ashamed to say my Unix skills are about 13 years rusty.

I do have dd-wrt running already but I'm a bit unclear on all the requirements to load/run this package. Anybody who knows what their doing willing to do a little hand holding?

Thanks!

What kind of squeezeboxes ? The 7.4.2 is an old version it does not work with a Touch for example .
http://wiki.slimdevices.com/index.php/Hardware_comparison .
Can also get a bit problematic if you switch between local server and mysqueezebox.com as you have to upgrade and downgrade player fw to match .

The whole idea would have more appeal if the OP updated the never versions now and then .

tadc
2012-06-30, 16:50
What kind of squeezeboxes ? The 7.4.2 is an old version it does not work with a Touch for example .
http://wiki.slimdevices.com/index.php/Hardware_comparison .
Can also get a bit problematic if you switch between local server and mysqueezebox.com as you have to upgrade and downgrade player fw to match .

The whole idea would have more appeal if the OP updated the never versions now and then .
I have a Boom and a Radio.

Yes, updating the version would be appealing. If I could get some guidance on the ins and outs of the process I'd be willing to take on creating an updated package.

As for switching between mysqueezebox.com and the server, well.. if I could get the server to work on my router, I wouldn't have reason to switch anymore. :) The whole point of this exercise is to avoid having to either keep my desktop powered all the time or switch my SB's to mysqueezebox.com when my desktop is powered off.

Mnyb
2012-06-30, 17:38
I have a Boom and a Radio.

Yes, updating the version would be appealing. If I could get some guidance on the ins and outs of the process I'd be willing to take on creating an updated package.

As for switching between mysqueezebox.com and the server, well.. if I could get the server to work on my router, I wouldn't have reason to switch anymore. :) The whole point of this exercise is to avoid having to either keep my desktop powered all the time or switch my SB's to mysqueezebox.com when my desktop is powered off.

Ok then good luck with it, 7.4.2 will support your players

Steevee28
2012-07-02, 01:49
Anybody who knows what their doing willing to do a little hand holding?

I had Optware up and running on my RT-N16. I believe that this will be a good starting point, see here: http://www.dd-wrt.com/wiki/index.php/Optware,_the_Right_Way.
Then, installing the SBS package should be as easy as installing any other optware package

ipkg install squeezeboxserver_7.4.2-1_mipsel.ipk
Regards,
Stefan

Steevee28
2012-07-02, 01:59
Yes, updating the version would be appealing. If I could get some guidance on the ins and outs of the process I'd be willing to take on creating an updated package.
Hi,
I would highly appreciate a newer build, unfortunately I don't have the time to do it on my own.

But updating the actual SBS server code shouldn't be a problem at all, because it is all Perl and thus needs no re-compile. But as far as I remember, when I built the 7.4.2 package, I seriously struggled with getting some dependent Perl modules from CPAN to work.
In the end, my solution was to link all required Perl modules statically into the Perl executable, instead of linking them dynamically, because this solved some really strange run-time errors...

Hope this helps!
Regards,
Stefan

anonymous247
2012-07-22, 20:20
Hi Stefan,

I've been poking around at trying to make a Logitech Media Server 7.7.2 ipk for mipsel architecture, but it's a significant challenge to take on from scratch. When you built 7.4.2, did you use the nslu2 optware templated build system? if not, what did you use? Could you provide an archive of your build environment (makefile and buildme.sh with any modificaitons) to help people looking to make new builds?

Anonymous247

Steevee28
2012-07-23, 00:25
When you built 7.4.2, did you use the nslu2 optware templated build system? if not, what did you use?
Anonymous247
I built it on my Router itself from practically unmodified sources using the buildroot optware package, so downloading the CPAN module packages and compiling them out-of-the-box worked quite well for me.
But as mentioned above, in the end, I finally struggled with building dynamic modules for the perl executable, so I decided to include them statically linked, but I hope that this problem is solved today by up-to-date CPAN modules.

anonymous247
2012-07-23, 13:51
I built it on my Router itself from practically unmodified sources using the buildroot optware package, so downloading the CPAN module packages and compiling them out-of-the-box worked quite well for me.
But as mentioned above, in the end, I finally struggled with building dynamic modules for the perl executable, so I decided to include them statically linked, but I hope that this problem is solved today by up-to-date CPAN modules.

What about packaging? What changes to the .mk file were necessary to package the results correctly? You must have altered the existing 'sed' command to change the first line of slimserver.pl and scanner.pl to refer to the custom build of perl. What other changes were made to that make file, and could you post it somewhere for others to look at? I've started with the existing squeezecenter.mk file in the nslu2 svn depot, and rebranded everything to logitechmediaserver, and I can get to the point where I can produce a valid IPK that installs correctly, but of course when I try to run slimserver after installation, it notes the missing modules.

I've seen the discussion here:

http://forums.slimdevices.com/showthread.php?75214-SBS-7-4-1-fails-to-run-missing-symbol-boot_Class__C3__XS

and that looks like it might be helpful in my attempts.

Steevee28
2012-07-24, 00:19
What about packaging? What changes to the .mk file were necessary to package the results correctly? You must have altered the existing 'sed' command to change the first line of slimserver.pl and scanner.pl to refer to the custom build of perl. What other changes were made to that make file, and could you post it somewhere for others to look at? I've started with the existing squeezecenter.mk file in the nslu2 svn depot, and rebranded everything to logitechmediaserver, and I can get to the point where I can produce a valid IPK that installs correctly, but of course when I try to run slimserver after installation, it notes the missing modules.

I've seen the discussion here:

http://forums.slimdevices.com/showthread.php?75214-SBS-7-4-1-fails-to-run-missing-symbol-boot_Class__C3__XS

and that looks like it might be helpful in my attempts.

Sorry, I already forgot about that thread. Yes, it really might help you, because it documents my struggling very well ;-).

But since this is two years ago, I do not have any helpful build scripts anymore for you. But anyways, I did not start off using the squeezecenter package from optware / nslu2, but used the original sources from logitech and from CPAN archives thus I do not know about the 'sed' command line from the nslu2 svn depot.
But I believe that different steps may be necessary today with up-to-date sources.
Good luck!

bpa
2012-07-24, 01:12
When optware was started with NSLU2 and other - cross compiling was the only practical way to build a package and so the scripts on the optware svn are all aimed at cross compiling a package on a more powerful server. The cross compile system will build centrally an ipk for each optware supported device.

With more powerful processors and more memory on device it is more practical and more reliable to build packages natively unless you really want to create an ipk package.

If you are not cross compiling, I think you should follow Steevee288's advice - start with LMS sources on your device (e.g. router) ensure you have all the necessary optware packages loaded (e.g. perl, gcc, ld ) and running on your device and then build natively on the device - do not go near the Squeezecenter optware build system.

tadc
2012-07-26, 22:41
Well... I got Optware running, and attempted the Squeezeserver package tonight. Following is the output, that mySQL error seems concerning. Any comments whether this is fatal?

I do have the SqueezeboxServer showing as running when I do a service command, also shows under ps... but the log shows "Squeezebox server died" over and over... and it occurred to me that I don't know how to configure this thing. :) Any hints?

Thanks!

squeezeboxserver_7.4.2-1_mipsel.ipk
Installing squeezeboxserver (7.4.2-1) to /opt/...
package squeezeboxserver suggests installing flac
Installing adduser (1.10.3-1) to /opt/...
Downloading

http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/add

user
_1.10.3-1_mipsel.ipk
Installing mysql5 (5.0.88-1) to /opt/...
Downloading

http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/mys

ql5_
5.0.88-1_mipsel.ipk
Configuring adduser
update-alternatives: Linking //opt/bin/su to coreutils-su
Configuring mysql5
Installing MySQL system tables...
120726 21:58:46 [Warning] option

'myisam_max_extra_sort_file_size': unsigned val
ue 2147483648 adjusted to 2147483647
120726 21:58:46 [Warning] option 'thread_stack': unsigned value

65536 adjusted t
o 131072
OK
Filling help tables...
120726 21:58:47 [Warning] option

'myisam_max_extra_sort_file_size': unsigned val
ue 2147483648 adjusted to 2147483647
120726 21:58:47 [Warning] option 'thread_stack': unsigned value

65536 adjusted t
o 131072
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/opt/bin/mysqladmin -u root password 'new-password'
/opt/bin/mysqladmin -u root -h router password 'new-password'

Alternatively you can run:
/opt/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt ; /opt/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at

http://shop.mysql.com
Starting MySQL. ERROR! Manager of pid-file quit without updating

file.
postinst script returned status 1
ERROR: mysql5.postinst returned 1
Configuring squeezeboxserver
Enter SQUEEZEBOXSERVER_HOME location [/home/squeezeboxserver]:

anonymous247
2012-07-26, 23:32
FYI: I've been plugging away at this approach - natively compiling the modules on the hardware. Wow, it is quite the ordeal, they have added MANY modules in the transition from 7.4 to 7.7, and many of them have problems compiling in that environment. It doesn't help that the MakeMaker module that comes with Perl 5.8.8 is so out-of-date. I've made some progress, but I really don't know if I'll end up with a work-able end product or not. My hastily scribbled notes on the progress so far are below.

Presuming I get to the end of all these library builds. What's the procedure for taking them and making a self-contained static perl build from them?



./buildme.sh Audio::Scan
-Had to force linking of zlib ('EXTRALIBS="-L/opt/lib -lz" LDFLAGS="-L/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath,/opt/lib/perl5/5.8.8/mipsel-linux/CORE"')
./buildme.sh Class::C3::XS
./buildme.sh Class::XSAccessor
./buildme.sh Compress::Raw::Zlib
SKIPPED./buildme.sh build DBI
SKIPPED./buildme.sh DBD::mysql
SKIPPED./buildme.sh DBD::SQLite
./buildme.sh Digest::SHA1
./buildme.sh EV
-Had to force linking of pthread library (EXTRALIBS="-L/opt/lib -lpthread")
./buildme.sh Encode::Detect
-Had to build as shared. Maybe would have worked if just linked to libperl.a. ('extra_linker_flags="-lstdc++ -shared"')
./buildme.sh Font::FreeType
./buildme.sh HTML::Parser
FAILED./buildme.sh Image::Scale
-Compilation fails due to handling of MYEXTLIB parameter by MakeMaker.
./buildme.sh IO::AIO
./buildme.sh IO::Interface
./buildme.sh JSON::XS
FAILED./buildme.sh Linux::Inotify2
FAILED./buildme.sh Locale::Hebrew
SKIPPED ./buildme.sh Mac::FSEvents
./buildme.sh Media::Scan
-Fixes to ffmpeg (HAVE_ROUND, HAVE_TRUC needed to be defined)
-Fixes to bdb (fix for assembly issue in src/dbinc/mutex_int.h, needed to use .set mips2 in MUTEX_UNSET code)
PENDING./buildme.sh MP3::Cut::Gapless
PENDING./buildme.sh Sub::Name
PENDING./buildme.sh Template
PENDING./buildme.sh XML::Parser
PENDING./buildme.sh YAML::LibYAML

Steevee28
2012-07-27, 00:41
Wow, it is quite the ordeal, they have added MANY modules in the transition from 7.4 to 7.7, and many of them have problems compiling in that environment. It doesn't help that the MakeMaker module that comes with Perl 5.8.8 is so out-of-date. I've made some progress, but I really don't know if I'll end up with a work-able end product or not. My hastily scribbled notes on the progress so far are below.

Presuming I get to the end of all these library builds. What's the procedure for taking them and making a self-contained static perl build from them?



SKIPPED./buildme.sh DBD::mysql
FAILED./buildme.sh Linux::Inotify2
FAILED./buildme.sh Locale::Hebrew


I'll keep my fingers crossed...
Note that Inotify cannot work because of missing Inotify support of dd-wrt => just ignore.
Hebrew => ignore (sorry hebrews...)
Mysql/Sqlite: take the ones from optware (others as well if possible)

statically linking perl in the end: see http://perldoc.perl.org/ExtUtils/MakeMaker.html#Static-Linking-of-a-new-Perl-Binary as a start.

Oh, one more note: I wrote some little keep-alive script on my own (see squeezeboxserver_safe in my ipkg), which is required to restart sbs in case mysql is restarted which obviously happened from time to time for some reason. So I believe that you want to include this script in your ipkg too.

anonymous247
2012-07-27, 08:10
Both Media::Scan and Image::Scale are having problems compiling due to the way MakeMaker seems to handle the MYEXTLIB parameter. This is the segment of the makefile that it generates:



MYEXTLIB = /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libmediascan$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libavformat$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libavcodec$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libswscale$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libavutil$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libexif$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libjpeg$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libpng$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libgif$(LIB_EXT) /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libdb$(LIB_EXT)

...

# --- MakeMaker static_lib section:

$(INST_STATIC) : $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
$(RM_RF) $@
$(CP) $(MYEXTLIB) $@
$(AR) $(AR_STATIC_ARGS) $@ $(OBJECT) && $(RANLIB) $@
$(CHMOD) $(PERM_RWX) $@
$(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)/extralibs.ld


And this is an example of what happens when it tries to run:



rm -rf blib/arch/auto/Media/Scan/Scan.a
cp /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libmediascan.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libavformat.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libavcodec.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libswscale.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libavutil.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libexif.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libjpeg.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libpng.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libgif.a /opt/tmp/lmsbuild/vendor/CPAN/build/include/../lib/libdb.a blib/arch/auto/Media/Scan/Scan.a
target `blib/arch/auto/Media/Scan/Scan.a' is not a directory
make: *** [blib/arch/auto/Media/Scan/Scan.a] Error 1


So it fails because it is trying to copy a bunch of static libs to a destination named "blib/arch/auto/Media/Scan/Scan.a". Why is it trying to do this? That destination is not a directory. Looking at the code for MakeMaker itself, it says:



# If this extension has it's own library (eg SDBM_File)
# then copy that to $(INST_STATIC) and add $(OBJECT) into it.
$m .= <<'END' if $self->{MYEXTLIB};
$self->{CP} $(MYEXTLIB) $@


But that's no help. MYEXTLIB is a list of libs, how can it try and copy it to a single, non-directory location? Shouldn't it just include them in the subsequent AR command? Someone else must have built these modules (andyg seems to be the author for both). Any advice on the right way to resolve the problem?

tadc
2012-07-27, 21:42
HI again. I have Optware installed now and attempted installing the SBS package but seem to have run into an issue.

First problem, I realized I don't know how to configure the server! During the package install, I get prompted for the home location, but then the install "terminates successfully".

At that point I can see the Squeezebox Service is running according to the service command, but in the server.log, all I see is a whole lot of
2012-07-26 22:13:34 Squeezebox Server died. Restarting. over and over again.
Also, during the install I got the following during the MySQL install. Is this fatal? Any clues on what went wrong or troubleshooting tips?


Starting MySQL. ERROR! Manager of pid-file quit without updating

file.
postinst script returned status 1
ERROR: mysql5.postinst returned 1
Thanks!

Steevee28
2012-08-03, 06:10
At that point I can see the Squeezebox Service is running according to the service command, but in the server.log, all I see is a whole lot of
2012-07-26 22:13:34 Squeezebox Server died. Restarting. over and over again.
Also, during the install I got the following during the MySQL install. Is this fatal? Any clues on what went wrong or troubleshooting tips?


Hi, I believe that MySQL causes SBS to crash. I barely remember that there was some problem with the SQL databases initially created/deployed with SBS.
Some time ago, I wrote a little startup script /opt/etc/init.d/S69initMysqlDB that helps in situations when /opt/var points to /tmp (ramfs).



#!/bin/sh

# this script creates some basic system databases for mysqld if not already present in /opt/var/mysql.
# this is especially useful when /opt/var is moved to ramfs and thus empty after reboot

# NOTE: this script assumes that the MySQL datadir is set to /opt/var/mysql

if [ ! -d /opt/var/mysql ] && [ -x /opt/bin/mysql_install_db ]; then
mkdir /opt/var/mysql
/opt/bin/mysql_install_db --basedir=/opt --datadir=/opt/var/mysql --user=mysql
fi


Actually, this should not influence SBS, because it creates its own server with own settings, but perhaps this helps tracking down the issue.
Regards,
Stefan

anonymous247
2012-08-05, 21:56
Regarding the update to Logitech Media Server 7.7.2. I have good news and bad news.

The good:
-I got the perl binary libs compiled
-I got a static perl binary compiled
-I got the perl binary bundled using nslu2 packaging templates from squeezecenter
-It installs & runs, and I can access the webserver and go through the initial config wizard.

The bad:
-It freezes/crashes shortly after that (believe while running scanner.pl).
-It consumes more memory than 7.4.2 (96MB for slimserver.pl alone)

Logs (even when using all the debug command-line params) do not give a clear indication as to what is going wrong. I have posted the IPK here:

http://www.sendspace.com/file/x739ae

If anyone has an interest in debugging further to get it working, that's great, but I've reached the limits of what my tinkering curiosity will allow me to do. I've run out of free evenings and sacrificial chickens to fuel this endeavour. Which sucks, because it does feel close to functioning. At this point, I just want a working build and 7.4.2 should be enough for that. If anyone wants more info (eg: the build directory used to produce the custom perl binary, or the packaging directory used to build the IPK), I'd be happy to post it.

Steevee28
2012-12-11, 01:43
At that point I can see the Squeezebox Service is running according to the service command, but in the server.log, all I see is a whole lot of
2012-07-26 22:13:34 Squeezebox Server died. Restarting. over and over again.


Hi tadc,
I'm just curious: did you finally get it working?

tadc
2012-12-11, 11:20
Hi tadc,
I'm just curious: did you finally get it working?

I'm afraid not. My time (and Linux skills) are pretty limited for troubleshooting.

I ended up taking the easy way out - I coincidentally had an old netbook with a failed battery, so I decided to make that a dedicated SB server.

Steevee28
2013-07-22, 23:24
Don't know if anyone is still interested in this, but yesterday, I re-installed my original 7.4.2 package onto an almost clean OTRW2 installation. There were installation errors that I didn't expect, but I was finally able to solve them. Perhaps this info also helps someone else:

first of all:

addition of the squeezeboxserver user and group was not permanent, so after a reboot, squeezeboxserver won't be able to start. So you need to add appropriate code into some script like /opt/etc/init.d/S06fixusers. It may look like


grep -q squeezeboxserver /etc/passwd || echo "squeezeboxserver:x:5:5:Linux User,,,:/opt/home/squeezeboxserver:/dev/null" >> /etc/passwd
grep -q squeezeboxserver /etc/group || echo "squeezeboxserver:x:5:" >> /etc/group

Note that you can select the user/group SBS runs at in /opt/etc/squeezeboxserver.conf, and check wheter the selected user has write access in SBS's home directory.

2.

To my surprise: Although I packaged all required CPAN-modules statically into Perl (because of compilation errors otherwise), there are still dependencies to some lib packages, which I did not know previously, so these dependencies are missing from the IPKG!
I had to additionally install:
- libgd,
- libiconv.
Note that libiconv is NOT part of the Optware feed, so I used the package found here: http://tomatousb.org/forum/t-336545.

There may be more packages missing, you can check this by manually executing /opt/share/squeezeboxserver/Bin/perl5.8.8-all-static. It should start up without errors. If it doen's use 'ldd' for checking further dependecies.

3.

MySql5 installation errors are not a problem at all. Ignore them.

4.

My /opt/etc/init.d/S99squeezeboxserver startup script is buggy and will no longer run on OTRW2.
Add the following lines to the script almost at the beginning:


export PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin:/mmc/sbin:/mmc/bin:/mmc/usr/sbin:/mmc/usr/bin
export LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:${LD_LIBRARY_PATH}

if [ -z "$1" ] ; then
case `echo "$0" | sed 's:^.*/\(.*\):\1:g'` in
S??*) rc="start" ;;
K??*) rc="stop" ;;
*) rc="usage" ;;
esac
else
rc="$1"
fi

and in the end, change


case "$1" in
start)

into


case "$rc" in
start)



5.

You NEED swap!!! SBS's memory footprint is too high for running it without swap!

6.

As a hint, if further things go wrong, look at /var/log/squeezeboxserver/


...I hope I did not forget any further changes required.
Good luck!