Thats great news
Iâve been eagerly awaiting native FreeNAS integration but might have to give this a try in the near future. Originally built a FreeNAS build several years ago for a Plex server to all the rooms in the home and having it be able to do Roon natively would be way better than my old MBP as a server. If youâre only getting 20% usage @pwright92 on an i3 and 8G of ram, hoping that my E3 1220 and 32G will do just as well.
I posted my installation steps if you are interested:
one small addition is to add a time service:
apt-get install ntpd
Enjoy!
+1 for requesting direct FreeBSD support for roon core.
FreeBSD also has a linux binary compatibility layer, with supposed 64 bit linux support since FreeBSD 10.3. Has anyone tried running the roon binaries directly in a jail using this instead of a full vm?
Hi @brian
I do not have deep details about Roon (of course) but you should not have any major problem to compile it on plain FreeBSD, almost certainly all dependencies are available in there already - you would just need to install the packages. I just do not know how the Mono support is on FreeBSD, I do not use Mono.
FreeNAS is a high customized version of FreeBSD, one time there is a FreeBSD Port it is quite easy to have it running on FreeNAS.
Indeed, it is often easier to support FreeBSDš than Linux, and you can always rely on FreeBSD support channels, specially the Mailing Lists where most devs hang.
Cheers!
EDIT: If you prefer to have a full desktop running right after the installation, you can install GhostBSD, what is exactly it - a pre-configured FreeBSD Desktop, using âMate Desktopâ.
EDIT_2: probably the only major difference rely on the fact FreeBSD use OSS (Open Sound Server) instead of Alsa as default sound server. Still, Alsa can be used on FreeBSD, it is on Ports system, but would be a less elegant solution².
šwhile there are some derivatives, do exist just one FreeBSD (what is a complete system), one Ports system, etc.
²basically all features you find in âAlsa + Pulse Audioâ are already present in OSS alone. Using Alsa instead OSS could be considered a downgrade.
Mono works fine on freebsd. Iâve used it with other apps.
Iâm trying to see how far I can get running roon server using 64 bit linux emulation in a jail. Iâve been able to get check.sh to pass, but the RoonServer program itself crashes inside of mono. Since it appears that mono is embedded in the binary, I donât see how I could try to get it to run under a different mono version.
Any ideas??
root@roon:~/RoonServer # ./start.sh
TYPE: 7
V: mono_create_corlib_exception_0
- Assertion at mini-amd64.c:203, condition `amd64_is_imm32 (disp)â not met
Stacktrace:
at <0xffffffff>
at System.DateTimeâŚcctor () <IL 0x00000, 0x00013>
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <IL 0x0001f, 0x00061>
at <0xffffffff>
at Base.UtilsâŚcctor () [0x00000] in /home/roon/roon/Base/utils.cs:37
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <IL 0x0001f, 0x00061>
at <0xffffffff>
at Sooloos.App.Main (string[]) [0x00000] in /home/roon/roon/Client/Server/main.cs:33
at (wrapper runtime-invoke) .runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00051, 0x000bf>
Native stacktrace:
/root/RoonServer/Mono/bin/RoonServer() [0x505132]
/root/RoonServer/Mono/bin/RoonServer() [0x5a330c]
[0x7ffffffff614]
/lib64/libc.so.6(gsignal+0x37) [0x8022351d7]
/lib64/libc.so.6(abort+0x148) [0x8022368c8]
/root/RoonServer/Mono/bin/RoonServer() [0x7a99bd]
/root/RoonServer/Mono/bin/RoonServer() [0x7a97a6]
/root/RoonServer/Mono/bin/RoonServer() [0x7a990b]
/root/RoonServer/Mono/bin/RoonServer() [0x54580e]
/root/RoonServer/Mono/bin/RoonServer() [0x586da5]
/root/RoonServer/Mono/bin/RoonServer() [0x5aaa7a]
/root/RoonServer/Mono/bin/RoonServer() [0x5aec68]
/root/RoonServer/Mono/bin/RoonServer() [0x5afab6]
/root/RoonServer/Mono/bin/RoonServer() [0x419bc9]
/root/RoonServer/Mono/bin/RoonServer() [0x419d62]
/root/RoonServer/Mono/bin/RoonServer() [0x5080b0]
/root/RoonServer/Mono/bin/RoonServer() [0x508642]
[0x800b1d28c]
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
./start.sh: line 52: 44318 Abort trap (core dumped) â$Pâ â$@â
./start.sh: line 34: kill: (44318) - No such process
I used bhyve with the following steps:
Add to System->Tunnels (rc.conf):
ng_ther_load=âYESâ
iohyve_enable="YES"
iohyve_flags="kmod=1 net=em0"
Setup pool âssdâ for virtual machine:
iohyve setup pool=ssd
Setup network bridge (check your interfaces with ifconfig):
iohyve setup net=em0
Load kernel modules:
iohyve setup kmod=1
Fetch Debian network install ISO
iohyve fetchiso http://cdimage.debian.org/debian-cd/8.4.0/amd64/iso-cd/debian-8.4.0-amd64-netinst.iso
Set up VM
iohyve create roonserver 50GB
iohyve set roonserver ram=2GB
iohyve set roonserver cpu=1
iohyve set roonserver loader=grub-bhyve
iohyve set roonserver boot=1
Start installation (boot the ISO):
iohyve install roonserver debian-8.4.0-amd64-netinst.iso
Connect to virtual serial console (login root, no pw, exit the console with ~~. ):
iohyve console roonserver
Follow the on screen GUI to install
When asked for packages, deselect the GUI and select SSH
Edit the network interface file
vi /etc/network/interfaces
In the interfaces file look for a line such as:
iface eth0 inet dhcp
Put a hash at the beginning of the line to disable it or delete it:
#iface eth0 inet dhcp
Add the following lines
# The loopback interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
#your static IP
address 192.168.0.225
#your gateway IP
gateway 192.168.0.1
netmask 255.255.255.0
#your network address "family"
network 192.168.0.0
broadcast 192.168.0.255
Enable root login via ssh:
cd /etc/ssh/
cp sshd_config sshd_config.org
vi sshd_config
Find the following line in /etc/ssh/sshd_config
Remove the # and change prohibit-password to yes from the line below:
#PermitRootLogin prohibit-password
becomes:
PermitRootLogin yes
Stop the system
init 0
And test with:
iohyve destroy roonserver
iohyve start roonserver
iohyve console roonserver
Make vertain your freenas has the NFS share set up
Enter:
mkdir /mnt/MusicStore
mount -t nfs NFSserver:/mnt/DataVault/MusicStore /mnt/MusicStore
Edit /etc/fstab to include the mount using a line:
mount -t nfs titan:/mnt/DataVault/MusicStore /mnt/MusicStore
Also add the following lines for SSDs:
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
##Save and test using the following commands:
umount /mnt/MusicStore
mount -av
IMPORTANT There should not any error messages!!!
RoonServer Installation
apt-get install cifs-utils
apt-get install curl
Make directories
cd /opt
curl -O http://download.roonlabs.com/builds/roonserver-installer-linuxx64.sh
chmod +x roonserver-installer-linuxx64.sh
./roonserver-installer-linuxx64.sh
Follow the prompts
Set up ntp
apt-get install ntp
I have migrated my FN 9.10 server to FN 10, and am using Docker for Plex Media Server and the FN10 VM wrapper (debian 8.40 template).
Roon is very easy to install with Debian Jess and seems stable, with backups and streaming working fine - same as pre-upgrade.
I would have migrated to Docker but there is no official Docker image and it doesnât appear in the âofficialâ parameterized Freenas list of Docker container images.
FYI, the VM system also supports FreeBSD vmâs, so if you ever port Roon to FreeBSD it would also be able to run with less virtualization overheadâŚBut maybe I would suggest an official Docker release now.
There is the official Debian Jessie docker image⌠You could go that route and install the core there instead of waiting for an âofficialâ image made by somebody elseâŚ
I have FN10 with RoonCore in a Ubuntu VM. I use 9P virtio to mount the NASs share instead of SAMBA. This is very fast and easy to set up. See: Suggested hardware
I will try the docker image being worked on as well. See: Docker images for Roon
+1 for native Core on FreeBSD please
A FreeNas plugin similar to what we see with pelxâs media server plugin would be fantastic. I am going to take a stab at trying the solutions that others have posted but I would love to see official support for FreeNas from Roon.
+1 too, for a native Core on FreeBSD or a FreeNas plugin
Thanks in advance
Would absolutely love this feature. Just setup FreeNas for use as a media hub and not looking forward to the complicated task of trying to get Roon running in a linux jail. Would be great to be able to just install a plugin.
Another +1 for a native FreeBSD Roon
+1 Roon Server plugin on FreeBSD please.
Is Peter Wrightâs solution the most up to date ?
Any other links please.
Hereâs a current update from Dave Hamby:
Daveâs instructions seem accurate, he uses iohyve instead of bhyve, which seems to be the current 11.1 default VM tool. Honestly, it is easier to buy an Intel NUC and install ROCK. I did that but I plan to run at my backup location with bhyve on my Freenas server (instead of buying another NUC). In order to use bhyve/iohyve, you need a fair amount of âextraâ RAM for virtual machines in addition to the RAM for the core OS (freenas) and ZFS use.
I missed using NFS with bhyve on Freenas for Roon Server. (SMB has more limitations on âedge caseâ file names etc).
I do like separating the file server from the application server. I may move in that direction in the future.
Thanks, at least I could do that myself. I have a 16TB FreeNAS Mini with 32G RAM and its only use is household backups, storage and serve media files. Needless to say I have an underutilized box in my closet. Would be nice to slap in a SSD and run Roon Server on a single appliance. I can do basic FreeNAS setup, but at this level I rely on a local kid to help me set it up.
Please, a FreeBSD version of Roon Core is hight wanted!!! All my media server is running on a FreeNAS!!!
Running latest FreeNAS with a good music collection. Any plans to support FreeNAS or FreeBSD?
Itâs a complete hassle to get it working through virtual machines.