RoonBridge need to be re-enabled on the server at each reboot

Just in case. I’ve made an archive of my logs and can send them to you if needed.
The archive is about 1MB compressed.

Hi @Pat ---- Thank you for touching base and sharing your feedback with me. It is very appreciated and my sincerest apologies for the slow response here.

Continuing forward, after having discussed this behavior with both our tech team and members of the DEV team there is some concern that you are running into this behavior because the RoonBridge folder is being saved somewhere that is being erased after each re-boot. As maniac had pointed out above.

Can you please verify where the RoonBridge folder is residing and additionally the team has asked if you could try reinstalling RoonBridge on the NanoPI Neo via the instructions listed in our knowledge base (i.e “the easy installer script).

Looking forward to your feedback, thanks again!

1 Like

Hi Eric,

@eric I’ve installed RoonBridge using the normal DietPi installation process as you ask me.
Here is the folder in which RoonBridge resides:
root@DietPi:/mnt/dietpi_userdata/roon/RoonBridge# pwd
This folder is in “userdata” part and I believe it is never removed by DietPI.
Logs a a symbolic links to /var/logs:root@DietPi:/mnt/dietpi_userdata/roon/RoonBridge# ls -l
total 8
drwxrwxr-x 3 dietpi dietpi 4096 Feb 17 15:35 Database
lrwxrwxrwx 1 dietpi dietpi 8 Feb 17 15:34 Logs -> /var/log
drwxrwxr-x 2 dietpi dietpi 4096 Feb 17 15:35 Settings

Nor Database or Settings contains other symbolic links.

/var/log seems unchanged for a while, I see some old files in it. So I guess, never deleted at reboot.

Ok. I uninstall RoonBridge from the DietPI software (dietpi-software) command.
Then I follow the procedure from your link and install the linuxarmv7hf version.
Once install (STATUS: SUCCESS), I go to the Roon GUI on my Mac Powerbook.
In Audio settings, I see the bridge. This time, my settings are lost (PCM max sample rate, volume preferences etc…).
==> Save
A noticeable point!!! The Bridge name/Zone name “NanoPat-XMOSU208” is already filled, not blank as usual after a reboot !??
Playing music, Stop and reboot. Reboot completed.
The zone disapeared, so I “Select an audio Zone”, but the NanoPat-XMOSU208 is not there as expected :frowning:
Ok, “Settings->Audio”. And now all is like previously. Settings are there, filled correctly, and the Audio zone name is blank. I save the dialog box set the audio zone.
DSP Engine settings revert back to default (None).

I’m I the only one having this issue with DietPI ??
Could you get some help from the DietPI support team instead of me ??

One last thing.
I believe the remark made by Maniac was related to a manual installation, without the dietpi-software command. This because the folders /var/roon have been created right after the moment I proceed to the installation on the Roon’s webpage.
The proof, the folders have the same date than the installer’s date, see below:
root@DietPi:/var/roon# ls -l /var/roon/
total 8
drwxr-xr-x 4 root root 4096 Mar 17 15:42 RAATServer
drwxr-xr-x 5 root root 4096 Mar 17 15:42 RoonBridge
root@DietPi:/var/roon# ls -la
total 16
drwxr-xr-x 4 root root 4096 Mar 17 15:42 .
drwxr-xr-x 13 root root 4096 Mar 17 15:42 …
drwxr-xr-x 4 root root 4096 Mar 17 15:42 RAATServer
drwxr-xr-x 5 root root 4096 Mar 17 15:42 RoonBridge
root@DietPi:/var/roon# cd
root@DietPi:~# cd manual-roon-install/
root@DietPi:~/manual-roon-install# ls -la
total 28
drwxr-xr-x 2 root root 4096 Mar 17 15:41 .
drwx------ 7 root root 4096 Mar 17 17:09 …
-rwxr-xr-x 1 root root 16689 Mar 17 15:41

I believe DietPI take care to keep the settings at a safe place in /mnt/dietpi_userdata.
Besides that this folder is recommended by DietPI to store your Music or other personal data.

The pb seems to be in the way Roon recognize the bridge, based on which ID (Mac adress, IP address, other ??).

@Pat i believe you would need to find a way how to tell dietpi to permanently save RoonBridge package (contents of /var/Roon* and /var/RAAT*) only after you enable it and configure in RoonServer as this configuration is stored on the client side (on nanopi) in contrary to save it immediately after RoonBridge installation)

@maniac I don’t catch your point. On the client side (nanopi), i.e the bridge, Roon installation and all data are managed at a stable location (/mnt/dietpi_userdata/roon) and permanently.
The data are in this stable location from the beginning, I only made a test because Eric asked me to test the official installation (not driven by DietPI). This last test resulted to have effectively Roon installation in /var/roon.
Anyway, it didn’t changed anything to the problem.

Hi Pat, maybe I misunderstood , but can you please check following:

  1. reboot nanopi and run this:

ls -d /var/roon
ls -lR /var/roon
ls -ld /mnt/dietpi_userdata/roon
ls -ld /mnt/dietpi_userdata/roon/RoonBridge
ls -lR /mnt/dietpi_userdata/roon/RoonBridge

  1. then configure nanopi in RoonServer so it’s enabled and works fine and run the same commands again:

ls -d /var/roon
ls -lR /var/roon
ls -ld /mnt/dietpi_userdata/roon
ls -ld /mnt/dietpi_userdata/roon/RoonBridge
ls -lR /mnt/dietpi_userdata/roon/RoonBridge

  1. reboot nanopi and run this again:

ls -d /var/roon
ls -lR /var/roon
ls -ld /mnt/dietpi_userdata/roon
ls -ld /mnt/dietpi_userdata/roon/RoonBridge
ls -lR /mnt/dietpi_userdata/roon/RoonBridge

my intention here is to try to find out where (if) are there symlinks and if contents of configuration folders keep preserved after reboot (which i think are not)

i guess that /var/roon should be symlink to /mnt/dietpi_userdata/roon (before RoonBridge starts) but let’s see

It’s something I already checked, but I’ll redo it. The only links are the “Logs” folders in both RoonBridge and RAATServer folders.
Just in case I even checked the content of the file “unique_id” in RoonBridge/Settings, before and after a reboot. The key value in this file is exactly the same (compared with “diff” command).
EDIT: “Logs” is a symbolic link toward “/var/log”. Can’t believe that Roon uses the Log files to recognize the device or collect some settings…

ok, deeper investigation looking at what is changing on the RoonBridge before and after a reboot.
My understanding is that the problem is on the server (RoonServer) not the device with RoonBridge.

To sum up, the only difference I see on the device (bridge) an information order in the device_xxx.json file.
See below.

I uninstalled Roon unsing the official Roon’s installer (arm7h version with "uninstall’ as parameter), then re-installed Roon through dietpi-software command.
=> /opt/roon cleaned and removed .
=> Installation of Roon in /mnt/dietpi_userdata/roon

/var/roon renamed in /var/roon.old
Reboot the bridge device.

Enable the device in Roon application on my MacBook
Check all id files (id, and 2 unique_id) in RoonBridge/Settings and RAATServer/Settings, store values un a file for a later “diff” command purpose.
Recursive diff in roon installation folder, save it in a file for a later “diff” command purpose

Save content of device_xxxx.json files (2 files) in a file for a later “diff” command purpose.

Reboot again and as usual, the device need to be re-enabled.
Generate again all files with recursive folder content, all ‘id’, ‘unique_id’ files, the content off devices_xxx*.json files, and so on…

Result of the difference.
Only the date of the device JSON file in /mnt/dietpi_userdata/roon/RAATServer/Settings is changed + the content that looks the same but in a different order.

root@DietPi:~/dbg# diff mnt-dietpi_userdata-roon-before-reboot.txt mnt-dietpi_userdata-roon-after-reboot-enabled.txt
< -rwxrwxr-x 1 dietpi dietpi 380 **Mar 19 00:03** device_91495e40b85a12db4afdf7aa60c22664.json
> -rwxrwxr-x 1 dietpi dietpi 380 **Mar 19 00:31** device_91495e40b85a12db4afdf7aa60c22664.json

Diff on content:
root@DietPi:~/dbg# diff cat-3274.txt cat-2427.txt
< -rwxrwxr-x 1 dietpi dietpi 380 Mar 19 00:03 device_91495e40b85a12db4afdf7aa60c22664.json

> -rwxrwxr-x 1 dietpi dietpi 380 Mar 19 00:31 device_91495e40b85a12db4afdf7aa60c22664.json
< {“unique_id”: “5f2770d1-e1b0-47f1-4bcd-fd738c804b5b”, “external_config”: {“max_sample_rate_multiplier”: 4, “resync_delay”: 0.050000000000000003, “max_dsd_sample_rate_multiplier”: 128, “max_bits_per_sample”: 32}, “output”: {“max_bits_per_sample”: 32, “force_max_volume”: true, “type”: “alsa”, “dsd_mode”: “native”, “name”: “TREXO”, “device”: “hw:CARD=TREXO,DEV=0”}, “volume”: null}
\ No newline at end of file

> {“unique_id”: “5f2770d1-e1b0-47f1-4bcd-fd738c804b5b”, “output”: {“max_bits_per_sample”: 32, “force_max_volume”: true, “type”: “alsa”, “dsd_mode”: “native”, “name”: “TREXO”, “device”: “hw:CARD=TREXO,DEV=0”}, “external_config”: {“max_sample_rate_multiplier”: 4, “resync_delay”: 0.050000000000000003, “max_bits_per_sample”: 32, “max_dsd_sample_rate_multiplier”: 128}, “volume”: null}
\ No newline at end of file

@eric Hi, is there some progress with the latest outputs provided ?
As a matter of fact, I’ve just updated Roon Core (build 310) on Server PC and my MacBook Pro (only used to browse music, not as server), and after the update, I had to enter my login credentials, then Roon asked me if I want to add a music folder, then asked me if I have a Tidal account, something I already set under the previous version, then I had to set again the Audio zone and the DSP configuration.

Seems during the upgrade, I lost some settings…

Hi @Pat —— Thank you again for the continued feedback and more importantly, thank you for patience here. My sincerest apologies for the wait .

Continuing forward, upon seeing your most recent updates I scheduled some testing with our tech team to see what we could come up with in house using a similar setup to yours. The team setup DietPi on VM to host RoonServer and then loaded DietPi on an RPI for Roonbridge. This test environment remained stable no matter what stress the team put it under (i.e multiple reboots, etc). The RoonBridge remained enabled in all instances with the settings remaining in tact as well.

Our technician visited our kB article page on how to perform a linux based install here, downloaded the “easy install script” for both RoonServer (x64) and RoonBridge. Then he manually installed all need dependencies on both platforms according to the script. We did notice in your feedback you had mentioned the following:

“then re-installed Roon through dietpi-software command.”

This is the only part of the install process that differs between our test scenario and your setup. Our tech did note that DietPi gives you the option to install RoonSevrer/Bridge using their command during the above process. By chance, at any point of troubleshooting, did you try bypassing this option to verify what the experience is like?

Additionally, I also wanted to check in with you about this latest observation you made where you had to login after the update to build310. It sounds like you had to configure a new install (i.e adding TIDAL and watch folders, etc). What sate was the application in after this process? Were all of your edits present?


Hi @eric,

Yes I installed RoonServer on my x86 PC with the diet-software command. I did not tried to install Roon with the “easy install script” on this machine. I tested the “easy install script" on the SBC (NanoPI) to install Roon Bridge.
At this point I understood that it is better to use the dietpi-software command because DietPI use RamLog for logs, tmp, …
What I observed is that dietpi-software command will install Roon application in /mnt/dietpi_userdata/roon that is Not in Ram. So that sounds to a better choice if I want to ensure that all data (config, logs) are in a safe location.
So I did the same for the installation of RoonServer on the x86 PC (dietpi-software command and no installation with “easy install script”).

Would it be possible you test on your end the installation through dietpi-software instead of the “easy install script” ?

Regarding the login after Roon (build 310) installation, you’re may be right (don’t remember at 100%) but I had to restore my library from a previous backup. However, the upgrade to build310 is still located in DIetPI’s location:
root@DietPi:/mnt/dietpi_userdata/roonserver# ls -l
total 44
drwxr-xr-x 2 pat pat 12288 Mar 27 05:42 Appliance
-rwxr-xr-x 1 pat pat 2376 Mar 27 05:42
drwxr-xr-x 4 root root 4096 Mar 27 22:30 RAATServer
drwxr-xr-x 3 root root 4096 Mar 27 22:30 RoonGoer
drwxr-xr-x 5 pat pat 4096 Mar 27 05:42 RoonMono
drwxr-xr-x 7 root root 4096 Mar 27 22:30 RoonServer
drwxr-xr-x 2 pat pat 4096 Mar 27 05:42 Server
-rwxr-xr-x 1 pat pat 1311 Mar 27 05:42
-rw-r–r-- 1 pat pat 39 Mar 27 05:42 VERSION
root@DietPi:/mnt/dietpi_userdata/roonserver# cat /mnt/dietpi_userdata/roonserver/VERSION
1.4 (build 310) stable

Hey @Pat – sorry for the trouble here. The easy install scripts are provided so that people have an easy way to install Roon on Linux the “standard” way.

You can also follow the instructions on our Knowledge Base and manually install by hand, and many users have chosen to go that route. People have generally been able to get Roon running using those instructions, and if you don’t want to use the scripts we can definitely move this thread over to the Tinkering section to see if someone from the Community can help out.

That said, if you’re unsure how to proceed here my advice would be to use the easy install script. We’re always willing to look into issues that arise when using the script, but our Support and QA team can’t really help if you’re doing this another way.

Thanks for your understanding. Let us know if there’s anything else we can do for you!

Hi @mike , thank you for your feedback.

I fully understand the support team position regarding the respect of installation procedures. However, it is only about several weeks spent on this problem that someone expose this requirement to expect the technical support involvment. I’ve spent a lot of hours to provide accurate and precise information (you can check above). I do not speak natively English, so It’s also an overhead for me.

I would appreciate if the technician who reproduced a similar setup to mine on a VM and an RPI, could take 5 minutes more to proceed with Roon Core installation through the DietPI’s command line interface. It is really fast to do and conversely to me there’s no library to backup/restore and so on.

Besides that, I’ve others Roon bridges, with the same Core, on my network which are allways recognized (one is on an Asus Android tablet, and another end-point on an old iMac in other room). The problem arises always with the Roon Bridge on my NanoPI.
I believe that the JSON files I traced above, are relevant in the fact that some informations seems inverted after a reboot. Could it be not the root cause ?
Don’t know if this can help, but, what is different with this end point that let the Core believe that the bridge is a new one even if JSON description is “almost” the same ? (see above or the extract below)

< -rwxrwxr-x 1 dietpi dietpi 380 Mar 19 00:03 device_91495e40b85a12db4afdf7aa60c22664.json
> -rwxrwxr-x 1 dietpi dietpi 380 Mar 19 00:31 device_91495e40b85a12db4afdf7aa60c22664.json
< {“unique_id”: “5f2770d1-e1b0-47f1-4bcd-fd738c804b5b”, “external_config”: {“max_sample_rate_multiplier”: 4, “resync_delay”: 0.050000000000000003, “max_dsd_sample_rate_multiplier”: 128, “max_bits_per_sample”: 32}, “output”: {“max_bits_per_sample”: 32, “force_max_volume”: true, “type”: “alsa”, “dsd_mode”: “native”, “name”: “TREXO”, “device”: “hw:CARD=TREXO,DEV=0”}, “volume”: null}
\ No newline at end of file
> {“unique_id”: “5f2770d1-e1b0-47f1-4bcd-fd738c804b5b”, “output”: {“max_bits_per_sample”: 32, “force_max_volume”: true, “type”: “alsa”, “dsd_mode”: “native”, “name”: “TREXO”, “device”: “hw:CARD=TREXO,DEV=0”}, “external_config”: {“max_sample_rate_multiplier”: 4, “resync_delay”: 0.050000000000000003, “max_bits_per_sample”: 32, “max_dsd_sample_rate_multiplier”: 128}, “volume”: null}
\ No newline at end of file

Anyway, please don’t put righ now this ticket in the tickering section. If the support team does not want to spend the additional 5-10minutes to check with the Dietpi command line installation, I’ll do what they want, but I need some time (and patience).