My Perfect Roon Core/Bridge

Installing Ubuntu 18.10 and Roon core just takes a few minutes and works right away.
(All the other steps are just here for displaying Roon web page and use CEC.)

it has to be ubuntu server or can be also ubuntu desktop? As i have core somewhere else is Roon Bridge enough?

highly do not recommend ubuntu desktop, go for server.

Indeed.
Ubuntu Server is better because smaller.
And as far as I can recall, Ubuntu Desktop messed up with the audio configuration.

I have been using this NUC as a rooncore/bridge since I installed it without a single glitch. Never rebooted it. I installed the Roon updates (from the Roon client, just by clicking on the “Upgrade” button) without any problem. Even my CEC extension still works.

1 Like

yeah also had that issue with sound, with ubuntu server all is fine. How do u use CEC - to control what and with what controller?

thanks

My NUC computer is connected to my audio amplifier with HDMI cable. (My NUC is Roon Core and Roon Bridge.)
I am using my amplifier remote control to control Roon (Play, Pause, Prev, Next…) thanks to CEC.
It’s been working like a charm for months now.
Being able to pause with the amp remote control is very useful when the phone rings. Pressing “Next” when playing Roon automatic lists/radio is also really nice.
More info on this post: Roon CEC controller extension
And here: https://github.com/benjaminbellamy/roon-cec-controller-extension
roon-cec-controller-extension

2 Likes

Hi @Benjamin_Bellamy,

Very useful tutorial, thanks.

I additionally installed unclutter to make the mouse pointer disappear.

Also, I’ve expanded /opt/roonkiosk.sh a bit:

qutebrowser --override-restore :fullscreen

Thus, qutebrowser is started directly in full screen mode and no tabs have to be closed manually with the keyboard.

2 Likes

Hi @florib!

Thank you very much for your insight!

Best,
Ben.

Thanks, Ben, for the original post and thanks @florib for the additional tricks. I did have an additional issue that qutebrowser always started with its quickstart page, thinking it was always the first time. I checked that the qutebrowser was running as user “roon” and ~/.local/share/qutebrowser had the right permissions but still I never saw a “state” file created there. So, I created one manually and put this in it:

[general]
quickstart-done = 1

and got it all working. No need for an extra chromecast on the TV. Now if I could just get one of my random small displays around the house (Google Hub, Echo Show, etc.) to work as a display…

1 Like

Thanks for a great guide. I am listening to a freshly installed RoonServer on a UbuntuServer 20.04 LTS on a Bhyve VM in a TrueNAS 12.0-BETA2 calling a library on a FreenAS 11.3-U4.1. All installed in an Active Directory joined homelab environment. Worx great so far. I have given it 4 vCPUs of a pair of old Xeon 2620 v1 to crunch with, which it seems to do without sweat. Maybe not so fast as my ROCK on NUC i7 but fast enough. The only thing that caused me probem is the very erratic mapping of share from the Roon GUI. It gives me the creeps everytime trying a thousend combinations and then on 1001 it just decides to map up. I cant even remember if I had a user/pw or not and if I used \host\share or smb://. Do you know any way to get what path and credentials I used?

I assume you are taking about this:


I never encountered any problem with this.

All the network shares are usually stored on Roon server in /var/roon/RoonServer/Database/Registry/Storage, one file per shared folder.

Each file is named something like loc_29c333a035f442c98bed2051bcb8f582 and contains share mapping with encrypted password:

{
    "id": "29c333a0-35f4-42c9-8bed-2051bcb8f582",
    "version": 2,
    "rescandelay": 4,
    "location": {
        "drive": {
            "type": "Share",
            "volume": {
                "cifsconfig": {
                    "network_path": "\\\\Server\\folder",
                    "username": "login",
                    "password": "**encrypted***",
                    "workgroup": "WORKGROUP"
                }
            }
        },
        "isdir": true,
        "path": "\\"
    },
    "ignorepatterns": [
        "/tmp/",
        "/temp/",
        "/.",
        ".pmbmf/"
    ]
}

Hope this helps…
Ben.

It did thank you. I am in an Active Directory so it was:
“network_path”: “\\Server\folder”,
“username”: “login”,
“password”: “encrypted*”,
“workgroup”: “ad”
Just tried so many options I didnt remember which it was that worked. Thanks again!
/Staffan

Great write up thank you. I have the screen working great on an old laptop “Lenovo Y70-70 with 16gig ram” which also is my roon core.
I have one question. Is it possible to remove the roon logo when the display is disabled on the webpage, or to get even more funky, display a plain black web page when music is paused and re-activate it once the music has started again?

I have no idea (I do not see how that could be done as this is sent by the roon server so you’d need to tweak the server itself… Or you’d need a plugin that changes the browser url depending on whether music is currently played or not) and I love the roon logo! :wink:

Yeah I do love the logo myself. To be honest its just to prevent screen burn on the screen when roon is sitting idle. But I am especially proud how it is all starting to come together. :grinning:


More of my “in progress” work here

Phenomenal minimal ubuntu server write-up that should prove useful for a variety of systems and use cases. I’m running RoonServer in a ubuntu server 20.04 VM with a passed-through AMD 7770 GPU on unRAID. For archival sake, here are the additions that suited my use case.

Additional Packages

I needed drivers for my video card plus alsa-utils as the GPU was muted by default. I also appreciated @florib’s suggestion of unclutter
sudo apt install --no-install-recommends xserver-xorg-video-ati alsa-utils unclutter

Delay Roon Display

I had an issue with RoonServer not recognizing the local Roon display as qutebrowser was opening before RoonServer was loaded. Adding a 30 second delay before launching qutebrowser solved that issue.
/opt/roonkiosk.sh

#!/bin/bash
xset -dpms
xset s off
openbox-session &
sleep 30s
qutebrowser --override-restore :fullscreen

Qutebrowser Quickstart Supression

@Zulu’s solution, which prevents qutebrowser from opening the quickstart page at launch, can be accomplished by first creating the necessary directory
sudo mkdir -p /home/roon/.local/share/qutebrowser

Then create the file /home/roon/.local/share/qutebrowser/state with the following contents

[general]
quickstart-done = 1

Finally, set the proper permissions
sudo chown -R roon:roon /home/roon/.local

Remove cloud-init

By default, ubuntu server 20.04 installs cloud-init. It can be removed by removing it’s datasource
echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg

Uninstalling all it’s packages
sudo apt-get purge cloud-init

Deleting all it’s configuration files
sudo rm -rf /etc/cloud/; sudo rm -rf /var/lib/cloud/

Finally, removing open-iscsi as the iSCSI daemon will wait indefinitely and hang the boot process if it’s not removed when cloud-init is removed
sudo apt remove open-iscsi

Deep Harmony

Additionally, I am a Harmony Hub user and found the Deep Harmony Extension to be quite useful. I installed it via docker-compose on my server.

  deepharmony:      
    image: khazul/roon-extension-deep-harmony                                            
    container_name: deepharmony                                                 
    restart: always                                            
    network_mode: host                                       
    environment:
      PGID: 100                                                                           
      PUID: 99
      TZ: America/New_York
4 Likes

If you are experiencing problem with your display after upgrading to 1.8, check your display URL: it seems that IP port moved from 9100 to 9330.

Updated /home/roon/.config/qutebrowser/config.py content:

# QuteBrowser Config file for Kiosk mode

## Hide the statusbar unless a message is shown.
## Type: Bool
c.statusbar.hide = True

## When to show the tab bar.
## Type: String
## Valid values:
##   - always: Always show the tab bar.
##   - never: Always hide the tab bar.
##   - multiple: Hide the tab bar if only one tab is open.
##   - switching: Show the tab bar when switching tabs.
c.tabs.show = 'multiple'

## Page to open if :open -t/-b/-w is used without URL. Use `about:blank`
## for a blank page.
## Type: FuzzyUrl
c.url.default_page = 'http://127.0.0.1:9330/display'

## Page(s) to open at the start.
## Type: List of FuzzyUrl, or FuzzyUrl
c.url.start_pages = ['http://127.0.0.1:9330/display']

## Always restore open sites when qutebrowser is reopened.
## Type: Bool
c.auto_save.session = False

QuteBrowser parameters were updated:

statusbar.hide has been renamed to statusbar.show with the possible values being always (hide = False), never (hide = True) or in-mode

So you need to update /home/roon/.config/qutebrowser/config.py to:

# QuteBrowser Config file for Kiosk mode

config.load_autoconfig(False)

## Hide the statusbar unless a message is shown.
## Type: Bool
#c.statusbar.hide = True
c.statusbar.show = 'never'


## When to show the tab bar.
## Type: String
## Valid values:
##   - always: Always show the tab bar.
##   - never: Always hide the tab bar.
##   - multiple: Hide the tab bar if only one tab is open.
##   - switching: Show the tab bar when switching tabs.
c.tabs.show = 'multiple'

## Page to open if :open -t/-b/-w is used without URL. Use `about:blank`
## for a blank page.
## Type: FuzzyUrl
c.url.default_page = 'http://rooncore_ip:9330/display'

## Page(s) to open at the start.
## Type: List of FuzzyUrl, or FuzzyUrl
c.url.start_pages = ['http://rooncore_ip:9330/display']

## Always restore open sites when qutebrowser is reopened.
## Type: Bool
c.auto_save.session = False

After almost 5 years without a glitch, I’m starting to encounter some troubles.

I update my Roon Core on a regular basis (apt-upgrade, now running Ubuntu 22.04.2 LTS, Roon Core version 2 build 1277).

Latest updates are consuming much more CPU than before.

So much CPU that the music eventually stops in the middle of a song (then skips to the next one).
I am using the same Intel i3 as Roon Core and Roon Bridge with a web browser (Qutebrowser) as display.

Has anybody had similar issues?

Is that build still using MONO?