SqueezeBoxServer

From SME Server
Revision as of 22:27, 2 November 2011 by Holck (talk | contribs)
Jump to navigationJump to search
Important.png Note:
This How-to is based on the forum discussion here, until this How-to gets converted in to a contrib and has a place in the Contribs.org Bugzilla bug tracking system, please report bugs in the original forum discussion.


Important.png Note:
8/12/2009 This how-to has been tested on SME8 beta 4 by omitting the sections 'Install Perl 5.10.0' and 'Patch Squeezebox server to use Perl5.10.0'.


Description

Squeezebox Server is the new name for SqueezeCenter. Squeezebox Server provides streaming music to Squeezebox audio players.

This How-to describes the installation and updating of Squeezebox Server on SME7 Server. Please refer to SqueezeCenter's product and help pages for operation.

If you already have SqueezeCenter installed it would be advisable to follow the original How-to instructions on how to remove it first.

Links

Logitech's Squeezebox home page

http://www.logitechsqueezebox.com/

Originating discussion leading to this wiki entry

http://forums.contribs.org/index.php/topic,45083.0.html

http://forums.slimdevices.com/showthread.php?t=69507

Michael Herger how-to page

http://www.herger.net/slim/detail.php?nr=1278

Credits

This How-to is based on the SqueezeCenter How-to http://wiki.contribs.org/SqueezeCenter and the original credits still apply:

Originator: bricknell - documented his struggles and successes for others

Procedure: william_syd - initially documenting a succinct procedure

Documenter: Christian - verified procedure and initiated wiki entry

In addition the method of installing Perl 5.10 was provided by Michael Herger (user mherger over on the slimdevices forum).

Testing and this how to: Mark Leman

Setup the Repository

Release

You should use this and only this for most installations. The other repositories are for experimentation or bleeding edge.

db yum_repositories set squeezecenter-release repository \
BaseURL 'http://repos.slimdevices.com/yum/squeezecenter/release/' \
EnableGroups no \
GPGCheck no \
GPGKey http://repos.slimdevices.com/yum/squeezecenter/RPM-GPG-KEY-SqueezeCenter \
Name 'SqueezeCenter Release Repository' \
Visible no \
status disabled

Testing

Normally you should not bother with this unless you want bleeding edge. You can safely omit this. It is provided for reference.

db yum_repositories set squeezecenter-testing repository \
BaseURL 'http://repos.slimdevices.com/yum/squeezecenter/testing/' \
EnableGroups no \
GPGCheck no \
GPGKey http://repos.slimdevices.com/yum/squeezecenter/RPM-GPG-KEY-SqueezeCenter \
Name 'SqueezeCenter Branch Repository' \
Visible no \
status disabled

Unstable

Normally you should not bother with this unless you want bleeding edge. You can safely omit this. It is provided for reference.

db yum_repositories set squeezecenter-unstable repository \
BaseURL 'http://repos.slimdevices.com/yum/squeezecenter/unstable/' \
EnableGroups no \
GPGCheck no \
GPGKey http://repos.slimdevices.com/yum/squeezecenter/RPM-GPG-KEY-SqueezeCenter \
Name 'SqueezeCenter Trunk Repository' \
Visible no \
status disabled

Inform Yum

Now ensure that yum's database is updated. This is needed after any db addition/change to the yum_repositories.

signal-event yum-modify

Installation

Lets install the star attraction.

yum --enablerepo=squeezecenter-release install squeezeboxserver


Better give ourselves some control and open the music to the world. You will need both TCP and UDP ports at least initially. If you are concerned about security there is info in the squeezebox forums (http://forums.slimdevices.com/) that tell you precisely when each port is required.

db configuration set squeezeboxserver service \
status enabled \
TCPPorts 9000,3483 \
UDPPorts 9000,3483 \
access private
Important.png Note:
By default the above enables the service, opens the ports, and sets the access to private (ie. your LAN. If you wish to open this to the internet you change private to public.


to change your install to public, either change private to public above or enter

db configuration setprop squeezeboxserver access public
Warning.png Warning:
If you choose to make Squeezebox server public then it is highly recommended that you configure Squeezebox server to require a username and password. This can be done from Squeezebox server's Settings->Advanced tab.



Tell SME what we have done.

signal-event remoteaccess-update

Create a File Structure

The following is a suggestion on how to create a file structure. You can alternatively create an ibay or user for these. In christian's config for example, he has an ibay with all of his media which points SqueezeCenter and Jinzora to. However he maintains Squeezebox servers's playlists per william_syd's suggestion below.

Lets make somewhere for music and playlists.

mkdir -p /opt/squeezeboxserver/playlists
mkdir -p /opt/squeezeboxserver/music

And give squeezey ownership of the above.

chown squeezeboxserver:squeezeboxserver /opt/squeezeboxserver/playlists
chown squeezeboxserver:squeezeboxserver /opt/squeezeboxserver/music


Important.png Note:
If you use an alternate directory entry, you will need to ensure squeezebox server has permissions for that directory. For example by including it in the appropriate group assigned to an ibay.


Install Perl 5.10.0

cd /usr/local
wget http://www.herger.net/slim/perl510.tgz
tar -xzf perl510.tgz

check perl has installed ok with:

/usr/local/perl510/bin/perl5.10.0 -v

Which should give the following

This is perl, v5.10.0 built for i386-linux-thread-multi
Copyright 1987-2007, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on 
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Patch Squeezebox server to use Perl5.10.0

ln -s /usr/local/perl510/bin/perl5.10.0 /usr/local/bin/
ln -s /usr/share/squeezeboxserver/CPAN/ /usr/libexec/CPAN

Edit first line of /usr/libexec/squeezeboxserver and /usr/libexec/squeezeboxserver-scanner from

#!/usr/bin/perl -w

to

#!/usr/local/bin/perl5.10.0 -w

Edit /usr/lib/perl5/vendor_perl/Slim/bootstrap.pm

Around line 148 find some code like

# prepend our directories to @INC so we look there first.
unshift @INC, @SlimINC;

Add a line to change this into

 # prepend our directories to @INC so we look there first.
 @INC = grep { $_ !~ /5\.8/ } @INC;
 unshift @INC, @SlimINC;

Initial Launch

To test the fist time start Squeezebox server manually (beware the very long command):

sudo -u squeezeboxserver /usr/libexec/squeezeboxserver --prefsdir=/var/lib/squeezeboxserver/prefs --logdir=/var/log/squeezeboxserver --cachedir=/var/lib/squeezeboxserver/cache --charset=utf8 --d_startup --s_stdout

The debug messages should help hi-light any problems, use Ctrl-C to stop.

If that all looked ok, start Squeezebox server as a service.

service squeezeboxserver start

Access the administration page:

http://your_SMEserver:9000/

Updating

If the administration page informs you that there is an update available then you can update. It may be advisable to stop Squeezebox Server first with

service squeezeboxserver stop

Then

yum --enablerepo=squeezecenter-release update squeezeboxserver

You will need to re-patch the three files detailed above after each update.

Once all is updated and re-patched, restart

service squeezeboxserver start