Escay

LG N2R1 Installing Squeezebox server manual

For those interested: Squeezebox server installation on LG N2R1 manual.
... means shortened to save space.
Used: firmware Firmware 2569t Rev 1.0.0 van http://lg.threnor.de/
Based on post: http://forum.nas-portal.org/showthread.php?9035-SqueezeBox-installieren&highlight=squeeze
where I added these steps as well.

Enable MySQL database, MySQL is required for Squeezeboxserver

In the LG ADMIN WEBINTERFACE you select Service -> Web service click edit. Enable Mysql, select a password or leave it as root select apply. Admin interface becomes a bit unresponsive, after 30 seconds you can reload the webpage. Mysql is now running.

To test:

LG-NAS:~$ sudo /etc/init.d/mysql start
[sudo] password for admin: 
 * Starting MySQL database server: mysqld already running.
LG-NAS:~$
To see the MySQL version:
LG-NAS:~$ mysqladmin -u root -p version
Enter password: 
mysqladmin  Ver 8.41 Distrib 5.0.51a, for debian-linux-gnu on arm
Copyright (C) 2000-2006 MySQL AB
...
Server version          5.0.51a-24+lenny2+spu1

Install required packages

SSH to the LG NAS, with user: admin
LG-NAS:~$ sudo apt-get update
LG-NAS:~$ sudo apt-get install nano
LG-NAS:~$ sudo apt-get install gcc make perl libperl-dev mysql-server libdbd-mysql-perl libexpat1-dev
...
The following packages will be upgraded:
 libc6 libexpat1 perl-base
3 upgraded, 30 newly installed, 0 to remove and 35 not upgraded.
Need to get 47.9MB/63.6MB of archives.
After this operation, 175MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Mysql password question popups: I entered the same password as in the previous step.
The libc6 installation fails. After a long wait I press CTRL+C and see:
Setting up libc6 (2.7-18lenny1) ...
BusyBox v1.12.4 (2009-01-02 13:15:21 KST) multi-call binary
Usage: init
Init is the parent of all processes
dpkg: error processing libc6 (--configure):
 subprocess post-installation script killed by signal (Interrupt)
Errors were encountered while processing:
 libc6
E: Sub-process /usr/bin/dpkg returned an error code (1)
The solution based on:
http://forum.nas-portal.org/showthread.php?9282-Performance-Problem-mit-ntfs-3g-Treiber-neue-Version-2010.1.16/page2&s=705a53b2b2dd8f2e9b97368f35beb254
LG-NAS:~$ sudo mv /sbin/init /sbin/init.mv
LG-NAS:~$ sudo touch /sbin/init
LG-NAS:~$ sudo chmod 755 /sbin/init
LG-NAS:~$ sudo /sbin/init
LG-NAS:~$ sudo dpkg --configure libc6
Setting up libc6 (2.7-18lenny1) ...
LG-NAS:~$ sudo rm /sbin/init
LG-NAS:~$ sudo mv /sbin/init.mv /sbin/init
Now you can continue the installation
LG-NAS:~$ sudo apt-get install perl
LG-NAS:~$ sudo apt-get install gcc
LG-NAS:~$ sudo apt-get install make
LG-NAS:~$ sudo apt-get install libperl-dev mysql-server
...
Setting up mysql-server-5.0 (5.0.51a-24+lenny4) ...
Configuration file `/etc/logrotate.d/mysql-server'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
  What would you like to do about it ?  Your options are:
   Y or I  : install the package maintainer's version
   N or O  : keep your currently-installed version
     D     : show the differences between the versions
     Z     : background this process to examine the situation
 The default action is to keep your current version.
*** mysql-server (Y/I/N/O/D/Z) [default=N] ? N
 * Stopping MySQL database server: mysqld.
 * Starting MySQL database server: mysqld.
...
Everything is now installed, although probably the mysql step was not required because it was already installed and running..

Add new squeezeboxserver user

LG-NAS:~$ sudo adduser squeezeboxserver
Adding user `squeezeboxserver' ...
Adding new group `squeezeboxserver' (1001) ...
Adding new user `squeezeboxserver' (1002) with group `squeezeboxserver' ...
Creating home directory `/home/squeezeboxserver' ...

Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for squeezeboxserver
Enter the new value, or press ENTER for the default
       Full Name []:
       Room Number []:
       Work Phone []:
       Home Phone []:
       Other []:
Is the information correct? [Y/n] Y
Change user:group of a directory and all subdirectories to squeezeboxserver:users
LG-NAS:~$ sudo chown -R squeezeboxserver:users /home/squeezeboxserver

Download and install squeezeboxserver

Software can be found at: http://downloads.slimdevices.com/
You will download the code for arm: http://downloads.slimdevices.com/SqueezeboxServer_v7.5.2/squeezeboxserver-7.5.2-arm-linux.tgz
Why arm? Because the LG runs on a ARM processor.
LG-NAS:~$ cat /proc/cpuinfo
Processor       : ARM926EJ-S rev 1 (v5l)
...
Login as squeezeboxserver:
$ ssh squeezeboxserver@192.168.1.10
squeezeboxserver@LG-NAS:~$ wget http://downloads.slimdevices.com/SqueezeboxServer_v7.5.2/squeezeboxserver-7.5.2-arm-linux.tgz
squeezeboxserver@LG-NAS:~$ tar -xvf squeezeboxserver-7.5.2-arm-linux.tgz
squeezeboxserver@LG-NAS:~$ cd squeezeboxserver-7.5.2-31632-arm-linux/

Create squeezebox database in MySQL

See: http://wiki.slimdevices.com/index.php/Using_an_existing_MySQL_instance#Creating_the_SlimServer_Database_and_User
squeezeboxserver@LG-NAS:~$ mysql -u root -p
Enter password: 
mysql> create database slimserver;
Query OK, 1 row affected (0.03 sec)
mysql> grant all on slimserver.* to slimserver identified by
'slimserver_password';
Query OK, 0 rows affected (0.63 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye

Run squeezeboxserver (it will fail)

squeezeboxserver@LG-NAS:~/squeezeboxserver-7.5.2-31632-arm-linux$./slimserver.pl
Your locale was detected as C, you may have problems with non-Latin filenames.  Consider changing your LANG variable to the correct locale, i.e. en_US.utf8
NOTE: Class::XSAccessor 1.05+ not found, install it for better performance
[11-01-15 20:15:47.3312] main::init (323) Starting Squeezebox Server (v7.5.2, r31632, Sat Jan 15 03:10:50 MST 2011) perl 5.010000
110115 20:15:54 [ERROR] Error message file '/home/squeezeboxserver/squeezeboxserver-7.5.2-31632-arm-linux/MySQL/errmsg.sys' had only 463 error messages, but it should contain at least 475 error messages.
Check that the above file is the right version for this program!
110115 20:15:54 [ERROR] Aborting
press CTRL+C to stop it
~/squeezeboxserver-7.5.2-31632-arm-linux/prefs/server.conf is now generated, change it:
squeezeboxserver@LG-NAS:~/squeezeboxserver-7.5.2-31632-arm-linux$ nano ./prefs/server.prefs
Change the following lines, "slimserver_password" depends on what you entered in the mysql table setup in a previous step:
dbpassword: slimserver_password
dbsource: dbi:mysql:hostname=127.0.0.1;port=3306;database=%s
dbusername: slimserver

Start squeezebox server

This should now succeed:
squeezeboxserver@LG-NAS:~/squeezeboxserver-7.5.2-31632-arm-linux$
./slimserver.pl
Your locale was detected as C, you may have problems with non-Latin filenames.  Consider changing your LANG variable to the correct locale, i.e. en_US.utf8
NOTE: Class::XSAccessor 1.05+ not found, install it for better performance
[11-01-14 14:09:38.5915] main::init (323) Starting Squeezebox Server (v7.5.2, r31632, Mon Dec 13 14:08:58 MST 2010) perl 5.010000
[11-01-14 14:09:46.2654] Slim::Plugin::CLI::Plugin::cli_socket_open (166) Can't setup the listening port 9090: Address already in use
[11-01-14 14:09:46.2715] Slim::Utils::PluginManager::load (330) Warning: Couldn't call Slim::Plugin::CLI::Plugin->initPlugin: Can't setup the listening port 9090: Address already in use at /home/squeezeboxserver/squeezeboxserver-7.5.2-31632-arm-linux/lib/Log/Log4perl/Logger.pmline 900

Test squeezebox server

Create a mysqueezebox account:
http://www.mysqueezebox.com

Open url to your nas:
http://192.168.1.10:9000/

Enter the new user email address and password as entered on mysqueezebox.com. Click next button.

Time to configure your music collection.
Tip: add it on /mnt/disk/volume1/service/
because of hard disk sizes.

Create directory for squeezebox

As admin create a folder on the large file share
LG-NAS:~$ cd /mnt/disk/volume1/service/
LG-NAS:service$ sudo mkdir squeezebox
[sudo] password for admin:
LG-NAS:service$ sudo chown -R squeezeboxserver:users ./squeezebox/
LG-NAS:service$ cd squeezebox
LG-NAS:service$ sudo chmod 777 .
The last step I did to ease adding files via a windows share, this should be more restricted.

In Squeezecenter:
Set music folder
Set playlist folder
Finished. Squeezecenter now analyzes all your tracks.
For the non squeezebox users: the play buttons on the server do not start a player in the browser, they are meant to control your squeezebox clients.

Test client

I installed Squeezeplay on a Windows machine: http://downloads.slimdevices.com/nightly/?ver=7.5 Or buy a squeezebox ;)
After installation Squeezeplay directly finds my LG nas. I can browse songs. browsing is not very quick, but usable. Sound is streaming ok from the NAS (tested 320kbps CBR songs, play fine from the NAS over wifi)
Nice thing now is I can control the Squeezeplay from the squeezebox software on my nas.

TODO

Change squeezeboxserver command line interface (CLI) port number. The default is 9090 but it seems to be in use by the LG already.
This prohibits me from controlling the server from my Android phone.