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
- LinuxInstallationGuide
- SqueezeCenterRPM and repo
- AdditionalLinuxAudioFormats
- MusicMatchMixerHeadlessOnLinux
- https://projects.robinbowes.com/Net-UDAP/trac, getting started,
- SBRFrontButtonAndLED
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