Installation of RoonServer on a QNAP NAS?

Hi

Did anybody install RoonServer on a QNAP NAS?

If so would you be so kind to share the installation routine you used?

Regards Peter

1 Like

Hi Peter,

This will only work on NAS devices with a x64 CPU.

As I wrote in this Just installed Roon 1.2 on a Synology DS716+ NAS topic:

I have only tried it on a Synology, I just downloaded the package in the /tmp directory and decompressed it
tar xvjf RoonServer_linuxx64.tar.bz2

After that I just started the RoonServer manually by
cd RoonServer
sudo ./start.sh

and it seems to run on it.

This is of course not a permanent install (especially in the tmp directory) but it indicates that it is possible to do.

Hi Chris,

Thanks a lot. I will try this on my QNAP.

Regards Peter

Hi Peter,

Have a read of [How To] RoonServer on QNAP NAS in which Mark describes installing RoonServer into #1 Windows VM and #2 Linux.

Running it in a VM is not a problem. Based on Windows I do this with1.1 and now 1.2. The interesting part is running it directly on the QNAPā€™s core Linux OS without VM.

I am sure that we will see that soon. Hopefully Roon will offer an installation package. Could be a good selling argument.

An Installation package would be terrific. Especially for people like me who have no UNIX know how.

Hi Christopher,

Iā€™ve done this as well and it worked like a charm, up to the moment when my NAS stopped executing other packages!

See [Just installed Roon 1.2 on a Synology DS716+ NAS]
(Just installed Roon 1.2 on a Synology DS716+ NAS)

So be careful!

Cheers
NOA

You probably need to point Roon a different location for its datastore. This can be done whenever launching RoonServer from terminal until such time you figure out how to launch Roon during the NASā€™ boot process.

From terminal:ROON_DATAROOT=/point.to./custom/path ./start.sh

A limitation that I think youā€™re going to encounter with NASā€™ is suboptimal performance of Roonā€™s UI as a result of the database not being stored on a SSD.

Thanks Evan!

Thatā€™s a good hint especially I have no experience with Linux so far - since yesterday.
Will try and post how it went.

I was positively surprised to have RoonServer ā€œrunningā€ on QNAP TS-869PRO (latest QTS4.2.something) - i was afraid it would not be even binary compatible with this Intel Atom D2700 based QNAP.
I had to copy few 64bit libraries which were missing on QNAP and setting LD_LIBRARY_PATH in few Roon scripts. However although mono is running and Roon inside it, it is not able to DNS resolve anything (thus not even able to register with Roon login and password):

04/19 08:05:15 Info: Starting RoonServer v1.2 (build 123) stable on linuxx64
04/19 08:05:15 Trace: Checking if we are already running
04/19 08:05:15 Trace: Nope, we are the only one running
04/19 08:05:15 Info: Is 64 bit? True
04/19 08:05:15 Info: Command Line Argument: -watchdogport=44021
04/19 08:05:15 Info: [media] resolved oop decoder to /usr/bin/ffmpeg
04/19 08:05:15 Trace: [realtime] fetching time from NTP server
04/19 08:05:16 Warn: [realtime] failed to get time: System.Net.Sockets.SocketException: Could not resolve host ā€˜pool.ntp.orgā€™
at System.Net.Dns.Error_11001 (System.String hostName) <0x40bc13b0 + 0x0005f> in :0
at System.Net.Dns.GetHostByName (System.String hostName) <0x40b45f50 + 0x0005f> in :0
at System.Net.Dns.GetHostEntry (System.String hostNameOrAddress) <0x40b41470 + 0x00087> in :0
at Sooloos.RealTime._FetchTimeFromServer (Base.ResultCallback`1 cb) [0x00044] in /home/roon/roon/RoonApp/realtime.cs:216
04/19 08:05:16 Info: [broker] starting 254e6b05-7131-418d-aeae-48cd480a0806
04/19 08:05:16 Info: [broker/locations] added location ā€˜Internet Mediaā€™ (Type=Internet) [e268f098-04c4-4e65-af3f-38ba3c3fcecb]
04/19 08:05:16 Info: [broker/locations] Status changed: ā€˜Internet Mediaā€™ (Type=Internet) [e268f098-04c4-4e65-af3f-38ba3c3fcecb] is online
04/19 08:05:16 Info: [broker/locations] added location ā€˜Metadata Serviceā€™ (Type=MetadataService) [13769258-b70b-4243-b1d6-bd46e8257ba8]
04/19 08:05:16 Info: [broker/locations] Status changed: ā€˜Metadata Serviceā€™ (Type=MetadataService) [13769258-b70b-4243-b1d6-bd46e8257ba8] is online
04/19 08:05:16 Info: [broker/locations] added location ā€˜Offlineā€™ (Type=Offline) [f1e4b43f-f643-47ba-b875-fd93b32a6006]
04/19 08:05:16 Info: [broker/locations] location ā€˜Offlineā€™ (Type=Offline) [f1e4b43f-f643-47ba-b875-fd93b32a6006] is offline
04/19 08:05:16 Trace: [broker/backups] initializing
04/19 08:05:16 Trace: [broker/accounts] file not found
04/19 08:05:16 Info: [broker/accounts] Data updated. AccountStatus=NoAccountConfigured MachineStatus=NeedsAccount
04/19 08:05:17 Info: [libraryapi] loaded first run time 4/18/2016 10:12:31 PM
04/19 08:05:17 Info: [transport/raatserver] [runner] Start or Connectā€¦
04/19 08:05:17 Info: ConnectOrStartAndWaitForExit RAATServer
04/19 08:05:17 Info: [remoting] loaded protocol hash 2eddc8021dc28a66b04dbc666ee4a702fa604f7e from /share/MD0_DATA/Web/Roon/RoonServer/Appliance/Roon.Broker.Api.Remote.dll
04/19 08:05:17 Info: connected to watchdogport: 44021
04/19 08:05:17 Info: [transport/raatserver] [runner] Status: Started
04/19 08:05:17 Debug: [SOOD] Setting up unicast connection
04/19 08:05:17 Trace: [brokerserver] Enabling broker server
04/19 08:05:17 Debug: [SOOD] Setting up multicast connection 127.0.0.1
04/19 08:05:17 Info: [broker/distributed] HTTP server listening on port 9100
04/19 08:05:17 Debug: [SOOD] Setting up multicast SEND connection 127.0.0.1
04/19 08:05:17 Info: [broker/distributed] Remoting server listening on port 9101
04/19 08:05:17 Debug: [SOOD] Setting up multicast connection 192.168.0.42
04/19 08:05:17 Debug: [SOOD] Setting up multicast SEND connection 192.168.0.42
04/19 08:05:17 Trace: [httpcache] loaded 0 cache entries from /root/.RoonServer/Cache/httpcache_2.db, current: 0mb / 128mb
04/19 08:05:17 Trace: [geoip] GET https://accounts5.roonlabs.com/geoip/1/lookup
04/19 08:05:17 Trace: [library] endmutation in 21ms
04/19 08:05:17 Info: [music] first pass through media thread is done
04/19 08:05:17 Info: [loadstatus] IsLibraryLoading True => False
04/19 08:05:17 Info: [transport] initializing
04/19 08:05:17 Info: [loadstatus] IsTransportLoading True => False
04/19 08:05:17 Info: [loadstatus] IsStartup True => False
04/19 08:05:17 Warn: Error in web request https://accounts5.roonlabs.com/geoip/1/lookup: NetworkError (Error: NameResolutionFailure)
04/19 08:05:49 Info: watchdogport GOT GOER-PING#7
04/19 08:05:55 Info: watchdogport GOT GOER-PING#8
.
.

From Qnap command line the DNS resolution works OK:
[/share/MD0_DATA/Web/Roon/RoonServer] # nslookup accounts5.roonlabs.com
Server: tdns2.orange.sk
Address: 213.151.208.162

Name: accounts5.roonlabs.com
Address: 54.225.178.93
[/share/MD0_DATA/Web/Roon/RoonServer] #

I seems this is very close to have it running, however I am now stuck with this DNS resolution issue (i guess it is some incompatibility on library level) and really hope this can be fixed by the RoonLabs folks

Did you try etc/hosts to solve it. Just to test.

thanks Kai-Uwe, yep I have tried this one too, no success:

[/share/MD0_DATA/Web/Roon/RoonServer] # grep roon /etc/hosts
54.225.178.93 accounts5.roonlabs.com
54.243.40.61 updates.roonlabs.com
[/share/MD0_DATA/Web/Roon/RoonServer] #

I also cannot see anything (any DNS/http/other requests) happening from qnap in tcpdump when connecting to RoonServerā€¦ it seems like library do not even try to do the DNS lookup :unamused:

very dangerous to leave that in the /etc/hosts as we change the ips once in a while ā€“ why is your DNS not working?

Our DNS is working, but you canā€™t even resolve pool.ntp.org:

04/19 08:05:16 Warn: [realtime] failed to get time: System.Net.Sockets.SocketException: Could not resolve host 'pool.ntp.org'`

on my machine:

% host accounts5.roonlabs.com
accounts5.roonlabs.com has address 54.235.210.140
accounts5.roonlabs.com has address 54.225.178.93
% host pool.ntp.org
pool.ntp.org has address 198.58.105.63
pool.ntp.org has address 104.156.99.226
pool.ntp.org has address 45.79.111.114
pool.ntp.org has address 52.0.56.137

check your network settings on the NAS ā€“ you probably dont have DNS servers set up

Danny DNS resolving itself works fine on the Qnap, it just does not work for the mono. Therefore I guess it is some library incompatibility. Qnap has some strange mix of 32/64 bit libraries where I think the problem might exist.

Ok, the problem is that the QNAPā€™s libnss resolver is 32bit only :frowning:

WTF QNAPā€¦ why provide a 64bit kernel and only half the 64bit system libraries?

Others are having the same issue here: https://github.com/syncthing/syncthing/issues/1260

The suggestion in that thread is to build statically, which wonā€™t help because you canā€™t build libnss statically.

1 Like

@danny thank you for your investigation. I suspected the issue would be somewhere like you said. I hope Qnap will wake up and fix this 32/64 mess soon (without obsoleting D2700 CPU based series :wink: )

@maniac: @crieke is working on a qpkgā€¦ the answer will be to augment qnapā€™s pkg with the proper 64bit binaries in the qpkg

As you mentioned it is easy to make Roon work on a VM. I use it right now on a ts-251+ And a fedora 23 VM : it works like a charm on this qnap with 8Go of ram.

Tried the package and moved the contents of my Windows Roon folder over to that of RoonServer on the NAS. It canā€™t see my music anymore though. The Samba path doesnā€™t work for sure but also locally it canā€™t find any of my music. Any ideas?

smb://blah/blah/blah seems to work. Will I now miss all my metadata overrides? Any way I can keep them?