SqueezeBoxServer

From SME Server
Jump to navigation Jump to search


Important.png Note:
8/12/2009 This How-to is under heavy edit and my be wrong. There is great risk that it will change before your very eyes until this note is removed



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 te 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 SqueezeCenter forums that tell you precisely when each port is required.

db configuration set squeezeboxserver service \
status enabled \
TCPPorts 9000,3483 \
UDPPorts 9000,3483 \
access private
  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 squeezecenter access public
  Warning:
If you choose to make SqueezeCenter public then it is highly recommened that you configure SqueezeCenter to require a username and password. This can be done from SqueezeCenter'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


  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

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

Next 3 stages need to be repeated after any upgrade.

edit first line of /usr/libexecsqueezeboxserver and /usr/libexecsqueezeboxserver-scanner from

#!/usr/bin/perl -w

to

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

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

At line 142 add

@INC = grep { $_ !~ /5\.8/ } @INC;

Initial Launch

To test the fist time start Squeezebox server manually

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.

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.