Roon Take 2

Abstract

Over the past several months, I fell in love with Roon, its ability to stream my digital music collection in pristine full definition audio, the Allmusic artist and album commentary, and Roon Radio, the ability to play other things from my library like what I had been listening too. Nothing offers this combination of features. Nothing appears to have the commercial traction of Roon.

This article serves several purposes. First, it is my working notes from rebuilding my Roon environment, an iohyve managed FreeNAS behave VM. Second, I offer this in the hopes that it might inspire others to home brew. This article is a bit advanced. You really need to have a year or two of Unix system integration experience to pull this off. It is not a character by character, click by click recipe to build a Roon Server.

Those who don’t have system integrator chops but want a quality music server should consider the Roon Nucleus described in Reference [4]. Roon has developed these robust system specifically for the music serving task. They have adequate storage and computing resources to run Roon Server and are designed not to sneak crud into your audio system over the USB ground. If you’d like a fancy panel with that, Bryston, Linn, Naim, and others, will make pretty metal for you.

References

  1. https://community.roonlabs.com/t/howto-debian-installation-on-frenas-bhyve/10591
  2. https://wiki.ubuntu.com/MountWindowsSharesPermanently
  3. http://kb.roonlabs.com/LinuxInstall
  4. https://www.paragonsns.com/product/roon-nucleus/

My environment

My environment is a bit different than that in Reference 1 so, once Debian is restarted, my installation departs in detail from Reference 1.

  • I prefer to use sudo to take root actions as a regular user so I install sudo and configure the first user as a SUDOER.
  • I prefer to use DHCP to configure static addresses so I add a static map for the roonserver in my DHCP server
  • I currently use iTunes as my music librarian in a mixed Apple and Linux/FreeBSD environment so a CIFS share provides the media to iTunes and Roon.
  • I prefer to use zeroconf and MDNS to handle host names so I configure nss-mdns as described in the manual. The apt-get installer does this for you. You just have to install the package.
  • My host is a FreeNAS 11 server with bryce support. The instructions that follow use iohyve to create the virtual machine. Iohyve created virtual machines are not visible in the FreeNAS GUI.
  • I prefer that my services run as a daemon user so I edited the Roon SYSTEMD configuration to move the user and changed file ownership to the room daemon user.

Procedure

Basically, do what Reference 1 says but locate the current Debian ISO at debian.org.

Reference 1’s author is old school. So I departed a bit from the original instructions.

On Debian Setup Restart

Once Debian installer completes pulling packages, it will do a VM restart. Coming out of this reboot, it has an init script to run before it opens for logins.

  1. Install sudo: apt-get install sudo
  2. Configure root privileges for the primary user
  3. Install gifs-utils: apt-get install cifs-utils
  4. Configure nsswitch per the nss-mdns manual page

Network Setup

I opted to allow the network to configure via DHCP. Life is so much easier. But I did use a trick that may be unique to my environment. Once the VM NIC address is available, I created a static mapping for it in my EdgeRouter’s DHCP server. So the VM network configures with the latest DNS and other policies pulled from the DHCP server.

Root Login

I disabled root login on the VM. It’s not needed. Debian has you set up a regular user and supports SUDO so confirm that the installer gave admin SUDO privileges to that user. If needed, add them by editing /etc/sudoers. There are example lines in the file.

Roon runs as a service as root unless you modify it. I prefer to add a user for this purpose

Mount the media shares

Fiddle around with the mount command until you get the spell right. then update FSTAB. Alternately, you can let Roon Core mount the share.