Manual Install of RoonBridge on Linux

Core Machine (Operating system/System info/Roon build number)
1.7 (build 571) stable on a QNAP TS-873

Network Details (Including networking gear model/manufacturer and if on WiFi/Ethernet)
Everything is wired through the network.

Audio Devices (Specify what device you’re using and its connection type - USB/HDMI/etc.)
Setting up RoonBridge manually on a Gentoo Linux box

Description Of Issue

I’m trying to set-up RoonBridge manually on my Linux box. When I start it I get this:

00:00:00.001 Warn:  get lock file path: /tmp/.rnbgem1000-
00:00:00.056 Trace: [childprocess] using unix child process
Initializing
00:00:00.095 Info:  Starting /opt/RoonBridge/Bridge/RoonBridgeHelper
00:00:00.101 Info:  ConnectOrStartAndWaitForExit RAATServer, path: /opt/RoonBridge/Bridge/RAATServer
Not Running (.o)
00:00:00.004 Warn:  get lock file path: /tmp/.rnbhgem1000-
Running

I have no idea if those warnings are critical or not but I don’t see the device in my settings on the Roon Remote. I followed the instructions to manually install but am I missing a step?

Thanks in advance.

What architeture is the Linux machine? What binary did you download? [run sh /opt/RoonBridge/check.sh to check if RoonBridge will run on your machine]

Also, what is the output from systemctl status roonbridge? (I assume Gentto uses systemd)

The Linux install instructions are here: https://kb.roonlabs.com/LinuxInstall. Logs can be found in /var/roon/RoonBridge/Logs.

1 Like

This is an AMD 64-bit machine. I’ve installed the RoonServer on here before and it worked fine but I have since moved the server to a NAS.

I ran the check.sh script and there were no problems as per below:

# ./check.sh 

Checking to see if RoonBridge can run on this machine 

    Checking for Binary Compatibility                            [   OK   ]
    Checking for ALSA Libraries                                  [   OK   ]

STATUS: SUCCESS

Also I don’t use systemd but rather openrc (Gentoo’s default). I’m not running the start.sh script in the runlevel though. And I have logs in a variation of that directory path but they are old logs from when I had the server running from this machine. So if there are new logs for RoonBridge, they are being saved somewhere else.

What is the output of rc-service roonbridge status?

I suspect no logs are being written by Roon Bridge … maybe the lock file was left by Roon Server, so first check the status of Roon Bridge and then, if it’s not running, remove the lock file and retry the install.

I’m not running RoonBridge as a service. It’s rather just a start-up script when I log into KDE as a user. If I start the script as root I get an error message:

# ./start.sh  
00:00:00.001 Warn:  get lock file path: /tmp/.rnbgem0-
00:00:00.047 Trace: [childprocess] using unix child process
Initializing
00:00:00.072 Info:  Starting /opt/RoonBridge/Bridge/RoonBridgeHelper
00:00:00.076 Info:  ConnectOrStartAndWaitForExit RAATServer, path: /opt/RoonBridge/Bridge/RAATServer
Not Running (.o)
00:00:00.004 Warn:  get lock file path: /tmp/.rnbhgem0-
Running
XDG_RUNTIME_DIR (/var/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)

I’m not sure that running as root was meant to happen for this script, but I could be wrong.

The environment variable $XDG_RUNTIME_DIR is inherited from your user shell not root (UID 0.) How is the script executed … using sudo? Either export the directory or acquire the root environment when running the script, i.e. sudo -i.

I’m running it either as root (per my previous message) or as a user (per the original message). I don’t really use sudo very often (and not in this case). The RoonBridge dir has user permissions.

The weird thing is that I removed those tmp files and I still get those warnings…

As mentioned in my post, you need to change the environment variable. Execute the following. What are the results?

echo $XDG_RUNTIME_DIR
sudo -s
echo $XDG_RUNTIME_DIR
exit

I do wonder why you’re not following a standard install and running Roon Bridge as a service.

I don’t have sudo installed; however, here is the output as a user:

> $ echo $XDG_RUNTIME_DIR
> /var/run/user/1000

As root it returns blank.

Standard install didn’t work. I’d run it as a service eventually but I gotta get it working first.

The script (owned by uid0) doesn’t have permission to access the folder in your home directory so you need to export the environment variable so it can write temporary files etc.

You’ll need something like this:

export XDG_RUNTIME_DIR="/run/user/$UID"

However, I’m not familiar with your flavour of Linux so can’t provide any specific help.

Is this to run the script as user or as root? It would be nice to run it as root but that isn’t working either. I tried setting that variable but it didn’t work.

What do the messages in the script mean? Like what does this mean:

ConnectOrStartAndWaitForExit RAATServer, path: /opt/RoonBridge/Bridge/RAATServer
Not Running (.o)

It it not finding the server on the network?

From the original logs you posted it is evident that the script is running under uid0 (root) but it cannot write to uid1000 user space. That’s the issue you need to resolve.

However, I think you should be looking to install this as a service rather than a startup script with your window manager.

Maybe install a mainstream Linux distribution that has sudo and systemd?

1 Like

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