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.
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
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.
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…
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!
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.
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
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 tostatusbar.show
with the possible values beingalways
(hide = False
),never
(hide = True
) orin-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?