Roon Bridge not working on BeagleBone Black

I just looked into it a bit further the last message RAATServer returns according to the log:

11/17 17:54:26 Debug: [easyhttp] [1] POST to https://bits.roonlabs.net/1/q/roon.base.,roon.internet_discovery. returned after 6768 ms, status code: 200

When I enter this to get the JSON on the web:

{"roon.base.machine_id_blacklist":{"blacklist":[{"machine_id":"afa8b371-1d6e-e13e-69ff-16895e83526a","reason":"Touchbar:AC-DE-48-00-11-22"},{"machine_id":"4997afdc-9efa-92d5-bfdd-2426858873f2","reason":"Cisco VPN SSL:00-05-9A-3C-78-00"},{"machine_id":"c2845621 -28b2-68ed-39c4-cfc58ea1a939","reason":"Cisco VPN IPSEC:00-05-9A-3C-7A-00"},{"machine_id":"4d4b8709-f1e1-e7bc-2618-84369959e32c","reason":"Palo Alto Networks GlobalProtect Virtual Ethernet Adapter:02-50-41-00-00-01"},{"machine_id":"70c186ad-d200-ebb7-8fd8-2e4671593c1f","reason":"CMOS failure:88-88-88-88-87-88"},{"machine_id":"d50b0b88-1484-18b0-79a2-d735c9a1de44","reason":"Fortinet VPN:00-09-0F-FE-00-01"},{"machine_id":"9cdd21f0-17e5-f63e-1bbd-14a4 24ed13a9","reason":"Fortinet VPN SSL:00-09-0F-AA-00-01"},{"machine_id":"8f716840-e19f-aa74-a237-60031719a6e2","reason":"Checkpoint VPN:54-AE-D3-F5-86-0F"},{"machine_id":"e7f6b22b-c3b1-999c-7a97-53f143d33178","reason":"mu:54-B2 -03-12-19-CE"},{"machine_id":"a64758ff-51ec-6d1b-8361-e31c056d030e","reason":"12345:00-01-02-03-04-05"},{"machine_id":"c96b75bc-c2dc-57ee-91ac-23c61ce1206a","reason":"virtualbox"}]},"roon.internet_discovery.enabled":true}

Could it be that my Device is getting denied because it might think it has one of these circumstances? Would be helpful if support could respond.?

I have now managed to fix this issue. The issue is with mono/mono-sgen which is delivered in the RoonBridge package. You can fix it by doing the following: 1 Either build a mono/mono-sgen from source, or 2 install it with a package manager from whatever unix you are on.

Now:

In my case the mono-sgen is installed in /usr/bin/mono-sgen. You change the /usr/bin/mono-sgen with your location.

In /RoonBridge/Bridge/RAATServer you do the following:

cd "$ROOTPATH/Bridge"
if [ -x /bin/bash ]; then
    exec /bin/bash -c "exec -a RAATServer /usr/bin/mono-sgen --debug --gc=sgen --server RAATServer.exe $@"
else
    exec  /usr/bin/mono-sgen --debug --gc=sgen --server RAATServer.exe "$@"
fi

Secondly please, please, please someone from Roon Support team tell this your Dev team, because it is a really easy fix which only takes 5 minutes.

It now works even better than before. On the 1.7 version of Roon it would first try to connect 4 times and give this error before being able to connect to the core. Now it does not give any error and connects immediatly.

2 Likes

Are you able to call in any support collaborator, and look at the above message? I have a fix.

I will request @support look into this. I am a fellow user but this should alert them.

Ok, thank you, I am not an advanced user of this forum and saw you were a moderator.

1 Like

For whoever needs it: GitHub - LarsGrootkarzijn/RoonBridge-BeagleBone. I am not certain if I am allowed to distribute like this. let me know if it is not allowed, then I will put it on private.

This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.

Hi @Lars_Grootkarzijn ,

Thanks for the report here. I’ve re-opened this issue so that we can look into this further.

I brought up your findings with our dev team, but we would need to see the Beaglebone RoonBridge logs from when the issue occurred, do you by any chance have the logs from that occurrence? If so, can you please upload the full RoonBridge log set here and let us know once uploaded?

https://workdrive.zohoexternal.com/collection/8i5239cc05950ac07456889838d9319545a82/external

I’m checking with the team regarding this aspect and will revert to you once I know for sure. Thank you.

2 Likes

I provided a ZIP. I added a README with what I did.

I’m having a similar issue. Did you try HifiberryOS? I can’t seem to find an image for BBB.

The following one will work if you are on BBB: GitHub - LarsGrootkarzijn/RoonBridge-BeagleBone

So:

wget https://github.com/LarsGrootkarzijn/RoonBridge-BeagleBone/archive/refs/heads/master.zip

unzip master.zip

rm master.zip

cd RoonBridge-BeagleBone-master

./start.sh

It might give the connection error once before connecting to your core. Also: you are technically not allowed to use the HifiberryOS version, as it is not distributed like that.

1 Like

Got it. I misunderstood and thought you had installed hifiberryOS on BBB. This makes much more sense. Thank you.

You are welcome!

Hi @Lars_Grootkarzijn ,

I have spoken to the team about the legality of the RoonBridge you have uploaded and unfortunately, we have to ask that you make the repro private, as it does violate the Roon Terms & Conditions.

Instead, can we kindly ask that you provide instructions on the steps you took to generate the mono/mono-sgen build that resolves this issue?

I am also curious to know if this would also fix similar reports and I see that you have also commented on the related thread, so it would be good to check if your instructions fix these reports as well:

Thank you!

OK, that’s unfortunate to hear, but I understand. I made it private now. I hope it will be fixed in the next update of RoonBridge.

Yes, that is indeed the exact same problem. The custom board which is refered to there is the exact same board as I fixed this issue on. The custom board is based on a BeagleBone black and is almost identical. I also tested it on a BeagleBone black develop board, it worked there as well.

Basically as you can read from the post this is a custom board, where the company pulled the plug from. The kernel was at 3.8.13 when plugged.

I have now developed a new kernel on 5.10 and updated OS to Debian 11. At first I was pretty sure this was a Kernel issue regarding TLS and Internet standards. Although later when going back from Roon 1.8 to the latest 1.7 version I saw that the connection issue earlier stated showed on 1.7 aswell, exactly four times. Always four times.

I have been in embedded software engineering for some time now, and that immediatly excluded the kernel issues/options for me. If it was a kernel related issue it would either give the error, or it would not, but not give that error four times before connecting. That’s unexpected behaviour, and not an feature that is not enabled.

So, that pretty much told me it must be in the RoonBridge. After comparing these files for some time I came to the conclusion that the mono-sgen has at least changed (I don’t know anymore if it was a version change, or just compiled a different way.)

Furthermore, I found out that this issue is purely in RAATServer, Roonbridge and RoonBridgeHelper are working as expected. After this findings I installed mono runtime on Debian 11:

apt install mono-runtime-sgen

This provides only the runtime utilitys of mono, a bit like the RoonMono folder of the RoonBridge. I then changed the RAATServer script of the RoonBridge, I downloaded and extracted RoonBridge in my /root folder:

cd /root/RoonBridge/Bridge
vi ./RAATServer

Now change $MONO_DIR/bin/mono-sgen to your installation path of mono-sgen for me /usr/bin/mono-sgen:

cd "$ROOTPATH/Bridge"
if [ -x /bin/bash ]; then
    exec /bin/bash -c "exec -a RAATServer /usr/bin/mono-sgen --debug --gc=sgen --server RAATServer.exe $@"
else
    exec  /usr/bin/mono-sgen --debug --gc=sgen --server RAATServer.exe "$@"
fi

Save the file and you can now start and connect to the Core.

What I finally did in the repo I just made private is strip the mono-sgen from Debian 11. This is the armhf version of Debian. So, you revert the earlier made changes in RAATServer:

rm /root/RoonBridge/Bridge/bin/mono-sgen
cp /usr/bin/mono-sgen /root/RoonBridge/Bridge/bin/

Because there is a different version /root/RoonBridge/RoonMono/lib/mono/4.5/mscorlib.dll might has to change as well, same for other dependencies of mono-sgen, for me those dependencies are in /usr/lib/mono/4.5 and …/gac:

rm /root/RoonBridge/RoonMono/lib/mono/4.5/mscorlib.dll
find / -name mscorlib.dll
cp /your/path/to/mscorlib.dll /root/RoonBridge/RoonMono/lib/mono/4.5/mscorlib.dll
find / -name gac
find / -name 4.5
cp -r /usr/lib/mono/4.5/* /root/RoonBridge/RoonMono/lib/mono/4.5/
cp -r /usr/lib/mono/gac/* /root/RoonBridge/RoonMono/lib/mono/gac/

You will now be able to start the RoonBridge with the start.sh, it will now only use the mono-sgen in the RoonBridge folder itself.

What I do think might have happened regarding the mono version, since it seems like everyone with a armv7 except RPI does seem to have this issue, BBB or not. Is that stripped from for example Raspbian or heavily build (from source) on Raspbian, which causes some incompatabilities. However I do not know exactly how the mono-sgen was build (I think from source?). I checked versions of mono, and if I recall correctly the version where the same, so that would indicate different build

Might be something with the timing and making calls within the program as well. I have not yet had to time to build mono-sgen from source yet and test with that, but I might do so this week.

I provided a README as you, or your developer team might have seen with some pointers which I might think are worth looking at.

So to make clear: The problem you are refering to I am sure is fixed with the above method. As I am on exactly the same board. I am also sure this solution works for BeagleBone, there seem to be a lot of support requests about BeagleBone as well. I cannot say for sure about other custom boards with armv7, but I would expect this works, as the problem seems to be exactly the same from what I read on the support forum as on BeagleBone.

Feel free to respond, if you have any more questions.

edit: I should also add that the first solution where you only change the RAATServer script, does not provide the error once when the start.sh script is started, it immediatly connects.

The second solution, where you change the mono-sgen in RoonMono provides the error exactly once before connecting to the server. That is why I referred to some timing issues, or dependencies.

I stated this in the README, but I think it is something important so repeat it here once again.

3 Likes

Hi @Lars_Grootkarzijn ,

Thank you very much for the detailed instructions and the files you sent over, I have forwarded the ticket to the dev team for further review. We really appreciate you putting this together!

1 Like

Hi Noris, I forgot one thing in my edited version, I now added these lines to the instructions.

3 Likes

Hi Noris,

Since the last time of posting there has not been yet an update for RoonBridge. Out of curiosity I was wondering if the cause of this issue has been resolved.

Hi @Lars_Grootkarzijn ,

I see that the ticket is still in the queue but it hasn’t reached the top of the queue yet. I’ve bumped the ticket to be reviewed by the team, but I am unable to comment on a timeline.