Roon had been running badly on the SuperMicro servers. Time to see if we could figure out why and what to do about it. A little tinkering around found that our POP_OS VM was paging out over night and when we resumed play, it would page fault back in. Not the best UX. So, time to come up with a fix.
- 2023-03-16 Original
- http://John revisits Roon ROCK and NUC
Roon is a music server application designed to run on Linux, MacOS, and Windows. Unlike most music servers, this one has a proper three tier architecture with bridges, controllers, and a core server that maintains your music library. Bridges deliver either analog or digital audio to listening locations. Controllers choose, start, and stop music playback and maintain your music library. Your Roon core stores local recordings, and titles that are Qobuz or Tidal favorites. Roon reflects changes to favorites made in Qobuz or Tidal apps.
Legacy Roon Environment
Dave discovered and trialed Roon when he retired. Our first Roon system ran on a 2009 Mac Mini. It worked mostly but the Mac had to remain logged in. Later we moved the Mac to Linux with music on a share on the primary FreeNAS 9 server (DW’s foggy recollection). This worked but badly as there were startup issues when recovering. Starting Roon Core before the share was ready resulted in endless fuss.
Later as FreeNAS stabilized and became TrueNAS, we moved Roon into a virtual machine running a Linux guest OS on the TrueNAS server. Music resided in the served TrueNAS filesystem. This worked mostly well and start-up races were a thing of the past.
But tinkering creating and abandoning virtual machines had nibbled away at the available memory. So, FreeBSD, the TrueNAS base OS and POP_OS Linux guest on our TrueNAS core system was slowly slipping the Roon Core into the deep background. Roon was running as if paging through a knothole.
Dropping in on the TrueNAS console, selecting the VM, and waking its VNC frame buffer would magically heal Roon. Roon would perk up for a day but it was still a bit of a slug.
Just for fun, I copied the Roon Library to a USB SSD, installed Roon Core on this Apple Silicon M1 iMac, transferred the license, and put Humpty Dumpty back together.
Holy Cow! What a difference. Roon ran for supper in this environment! Head down after the hare.
The iMac had similar resources to the TrueNAS boxes: 16 GB memory vs 32 GB, 8 cores, 1 GB NIC, etc. And it screamed. Reindexing the record library took only a minute or two. Controllers respond immediately. Deeply buried Qobuz titles start in a second or 2. Very much more responsive. But, again, putting the console to Sleep stopped Roon. To play evening music, I had to let the console run logged in.
Much to my amazement, the power management allows the machine to continue to serve Roon. Power Nap mode is on. Display sleep time is 15 minutes with authentication required to unlock. Power Nap mode is new since our original experiments. Power Nap puts the big cores to sleep but allows the efficiency cores to continue to schedule background daemons. So Roon Core could continue to support the controllers and bridges while the console was Power Napping.
Roon core comes in 2 forms, one to run on the host console of MacOS and Windows machines, and a second headless version to run on Linux systems. The Linux version comes in two forms, one to run on general Linux systems and a second (ROCK) to run on Intel NUC hardware.
NUC is Intel’s small form factor IA64 system built from low-power embedded system processors. Intel makes a broad spectrum of IA64 systems and puts a good many of them in NUC livery but we are most familiar with Intel’s offerings for notebook and desktop computers and the Xeon servers. But Atom, Celeron, Pentium, and others are still offered and Intel puts many of these into NUC for industrial service.
Basically, a NUC is a stripped down IA64 system with a PCI Express bus that supports a NIC, a WiFI controller, M.2 storage, and M.2 SATA storage. When customers add a disk and a SODIMM, install an OS and application, they have a working small form factor computer of significant capability or significant economy depending on the parts chosen.
John Darko is a Roon fan for the same reasons I am. Roon works! When combined with lossless streaming like Qobuz, Roon greatly expands your access to music you might (or might not) like. Roon makes streamed music playback as easy as LP playback, easier since LP cleaning ritual is not required. And no endless search to locate the title on the shelf.
Roon uses a music taxonomy to classify the titles in Qobuz and the titles you are playing and favoriting or have in your physical library. Roon uses characterization of a recently played title to search your library and Qobuz for recordings having similar characterization. It works amazingly well. Roon finds lots of new music for me to like (add to library). It works especially well at discovering European and Asian jazz artists who are unknown in the English language press! Roon makes the Jazz world much larger that it would be without Roon. It also works well at discovering alternative country, folk, and rock artists not getting airplay or critical attention in our market.
ROCK is Roon Labs Roon Optimized Core Kit. This is offered in two forms, an ISO image for DIY use and OEM evaluation, and OEM licensed customizable form for installation on music server products that OEMs assemble. DIY people may use the ISO image which is fully functional. OEMs get to add hardware and drivers, branding, etc to achieve some distinctive customer value proposition.
ROCK is interesting for the following reasons.
- It is no fuss. Burn the ISO on a USB nub, boot it, and install RICJ on the internal M.2 storage.
- Adjust BIOS settings as specified by Roon.
- Start the image.
- Browse to the built in web interface and complete system configuration.
- Bring up a controller and complete configuration. At this stage, you load a library backup and migrate your license to the NUC.
- Once configured, Roon ROCK looks after itself and will apply Roon Labs updates to Roon and to the supporting Linux distribution. No user mediation is required by the update process. It is no harder than looking after an AppleTV or ChannelsDVR.
ROCK is tailored to run on ROON-specified Intel NUC system groups. ROCK contains just the drivers required for the specified NUC boxes. Randomly picking a NUC with ATOM, Celeron, Pentium, etc may not run as needed drivers may not be present for the NIC or the processor cannot be initialized.
Dismal Wizard’s Plans
Dismal Wizard just ordered a System76 Meerkat small form factor computer. I ordered Meerkat because System76 curates what is in the box. The memory and disk will work with the chosen processor. The WiFi and Ethernet will have Linux drivers. There’s nothing strange in the box and System76 clearly identifies the processor, Ethernet, and NIC provided. And it comes with Linux running. Ready to ROCK.
Roon recommends Core i3 or Core i7 and supports 11th generation Intel parts. So that’s what I picked. Shortly after my order was logged, System76 introduced the 12 generation of Core series processors to its Meerkat offerings. Drat but the one I have coming will run.
I specifically chose to avoid the various Amazon and Alibaba NUC shops as they may not be authorized resellers. If you are lucky, they are selling something that fell off a truck or a container ship somewhere. If not, it is a complete counterfeit. I chose to spend a bit more for curated product from a Colorado company having skin in the game.
And That’s all for Now
So that’s where I am. Waiting for the express early next week. But we’ll have this thing up and running by April Fools Day. And have a second story with screen shots of the commissioning and web interface that John Darko mentioned but passed over. John is a smart guy but he’s not a DEVOPS bubba so I’m confident mere mortals can install ROCK on a NUC and have it work.