Installation of RoonServer on a QNAP NAS?

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?

Could you provide a screenshot of your storage settings in Roon?
Also, If you add your files as local folders you need to click on the “local folder” button at the bottom of the “add-storage-window” when adding it in roon.

Thanks, Christopher. Somehow the top works, the bottom entry never sees files. I had to chance the capitalization of the top folder on my Windows to make it work on the QNAP

If “media” is your shared folder and “Music” is a subdirectory containing your music collection, your local path on QNAP should be:

/share/media/Music

Aha! Thanks, Christopher. Brilliant. That did the trick!