Personal tools
You are here: Home Linux I/O SqueezeCenter v7.3.2-1 on a CentOS VM
 

SqueezeCenter v7.3.2-1 on a CentOS VM

Howto install Slim Devices SqueezeCenter server on a RHEL/CentOS VM

Start with a bare x86_64 CentOS v5.3 VM, with 512MB of RAM, an 8GB root device, and the latest updates. The VM has a hostname of teal.lucidsolutions.co.nz.

The hardware used is a Squeeze box duet, which consists of:

  • SqueezeBox Controller (SBC) - C-RL65
  • SqueezeBox Receiver (SBR) - C-RM66

Install the repo

Install the SqueezeCenter RPM repository, as per the instructions:

# rpm -Uvh http://repos.slimdevices.com/yum/squeezecenter/squeezecenter-repo-1-6.noarch.rpm
# rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

Install SqueezeCenter

Using the repo above, install squeezecenter. This pulls in the perl and mysql dependencies.

# yum install squeezecenter lame

Firewall

Allow tcp port 9000 for http access, and tcp & udp port 3483, and udp 5353 for the multicast DNS response started by the squeeze server package. (Note: 192.168.0.0/24 is the local trusted network)

# SqueezeCenter http
-A tcpIn  -p tcp -m tcp --dport 9000 --source 192.168.0.0/24 -m state --state NEW -j ACCEPT

# SqueezeCenter 
-A tcpIn  -p tcp -m tcp --dport 3483 --source 192.168.0.0/24 -m state --state NEW -j ACCEPT
-A tcpOut -p tcp -m tcp --dport 3483 --destination 192.168.0.0/24 -m state --state NEW -j ACCEPT
-A udpIn  -p udp -m udp --dport 3483 --source 192.168.0.0/24 -m state --state NEW -j ACCEPT
-A udpOut -p udp -m udp --dport 3483 --destination 192.168.0.0/24 -m state --state NEW -j ACCEPT

# SqueezeCenter mDNS
-A udpIn  -p udp -m udp --dport 5353 --source 192.168.0.0/24 -m state --state NEW -j ACCEPT

# SqueezeCenter UDAP
-A udpOut -p udp -m udp --dport 17784 --destination 192.168.0.0/24 -m state --state NEW -j ACCEPT
-A udpIn  -p udp -m udp --dport 17784 --source 192.168.0.0/24 -m state --state NEW -j ACCEPT

Note: Until the SqueezeBox Receiver (SBR) gets a valid IP address (static or DHCP), it will use an auto-configured link local address from the 169.254.0.0/16 network. The SqueezeBox receiver is required to configure the SBR via the wireless interface using UDAP (TODO: Find a reference that describes this process).

Music

Mount a lump of disk into the VM for the music. Add an entry to /etc/fstab:

LABEL=/mnt/music        /mnt/music              ext3    defaults        0 2

Create a directory for the music library (mp3), and for playlists. Change the ownership of playlists and mp3 directory and files to squeezecenter (uid 100). Copy music library into the the space (I chose the directory name 'mp3').

# mkdir /mnt/music/{library,playlists}
# chown -R squeezecenter.squeezecenter /mnt/music/{library,playlists}

Start the server (Note: SqueezeCenter runs mysqld directly, and NOT as a standalone service)

# service squeezecenter start

DNS

Add DJB dns records for the squeeze center sever:
=teal.lucidsolutions.co.nz:192.168.0.22:86400
+squeezecenter.lucidsolutions.co.nz:192.168.0.22:86400

Browse to the server

Point a browser at the server, configure:

http://squeezecenter.lucidsolutions.co.nz:9000/

Links

 

Appendices

/etc/yum.repos.d/squeezecenter.repo

## Only enable one repository in this list...

[squeezecenter-release]
name = SqueezeCenter Release Repository
baseurl = http://repos.slimdevices.com/yum/squeezecenter/release/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-SqueezeCenter

[squeezecenter-testing]
name = SqueezeCenter Branch Repository
baseurl = http://repos.slimdevices.com/yum/squeezecenter/testing/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-SqueezeCenter

[squeezecenter-unstable]
name = SqueezeCenter Trunk Repository
baseurl = http://repos.slimdevices.com/yum/squeezecenter/unstable/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-SqueezeCenter

yum install squeezecenter

Dependencies Resolved

==================================================================================================
 Package               Arch          Version                   Repository                    Size
==================================================================================================
Installing:
 squeezecenter         noarch        7.3.2-1                   squeezecenter-release         28 M
Installing for dependencies:
 mysql                 x86_64        5.0.45-7.el5              base                         4.2 M
 mysql-server          x86_64        5.0.45-7.el5              base                         9.7 M
 perl                  x86_64        4:5.8.8-18.el5_3.1        updates                       12 M
 perl-DBD-MySQL        x86_64        3.0007-2.el5              base                         148 k
 perl-DBI              x86_64        1.52-2.el5                base                         600 k

Transaction Summary
==================================================================================================
Install      6 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 55 M

/var/lib/squeezecenter/cache/my.cnf

# $Id$
#
# SqueezeCenter specific MySQL Server config.

[mysqld]
innodb
skip-locking

# If you want to have user permissions - you need to setup a valid user, and
# remove this line below.
skip-grant-tables

basedir               = /usr/share/squeezecenter/MySQL
datadir               = /var/lib/squeezecenter/cache/MySQL
language              = /usr/share/mysql/english
port                  = 9092
socket                = /var/lib/squeezecenter/cache/squeezecenter-mysql.sock
pid-file              = /var/lib/squeezecenter/cache/squeezecenter-mysql.pid
log-error             = /var/lib/squeezecenter/cache/mysql-error-log.txt
innodb_fast_shutdown  = 1
max_connections       = 4
thread_concurrency    = 4
log-warnings          = 0
bind-address          = 127.0.0.1
default-character-set = utf8
default-collation     = utf8_general_ci
key_buffer            = 2M
max_allowed_packet    = 1M
table_cache           = 64
sort_buffer_size      = 512K
net_buffer_length     = 8K
read_buffer_size      = 256K
read_rnd_buffer_size  = 512K

[client]
socket                = /var/lib/squeezecenter/cache/squeezecenter-mysql.sock
Document Actions