Logitech Media Server on Ubuntu on bhyve VM on FreeBSD

2 January 2020

I have a few Squeezebox devices and I can only describe this and the related ecosystem, as an elite — if somewhat oldschool — multi-room audio solution.

The below sets out running Logitech Media Server on Ubuntu on bhyve VM on FreeBSD and may be useful to anyone wedded to LMS and FreeBSD. Of course, it would be easier to just install LMS on linux natively, but the virtual machine solution seems to work well.

Versions referred to are FreeBSD 12.0-RELEASE-p9 and Ubuntu 18.04.

First: set up vm on FreeBSD with vm-bhyve

Instructions on how to set up virtual machines on FreeBSD with bhyve can be found here: https://github.com/churchers/vm-bhyve . A fantastic job has been done here; vm-bhyve really simplifies the use of bhyve and brings its use into the realm of mere mortals.

I followed these instructions, and installed Ubuntu server 18.04, calling the vm ubuntuvm.

Second: boot the virtual machine

The first challenge I had was actually booting the vm as for some reason the default grub menu did not come up

The key here is that in grub you can use ls (hd0,gpt2)/ etc or just ls / once you have set the root.

First I booted without the root argument is the linux line; this failed to fully boot, but in the busybox environment I could at least interrogate the filesystem and work out, for instance, what is is available in /dev. As there was only one entry in /dev/disk/by-uuid/, I knew that was the one to use as the root argument.

set root=(hd0,gpt2)
linux /boot/vmlinuz-4.15.0-72-generic root=/dev/disk/by-uuid/ae074f80-55a7-49a1-a806-828702e7dbbc
initrd /boot/initrd.img-4.15.0-72-generic

Third: set up NFS

The next challenge was to get the music data off the host. The easiest way to do this seemed to be via NFS. This was pretty straightforward for me as I already had the NFS set up on the host in /etc/exports; I just had to add this to /etc/fstab in ubuntuvm and I was off to the races.

sudo apt update
sudo apt install nfs-common

# Edit /etc/fstab so we can mount
mount /mnt/platinum

Fourth: set up LMS

Setting up Logitech Media Server seems to be remarkably simple on Ubuntu 18.04.

Note that the dpkg command needs to be run twice — the two commands between fix the dependencies in a clean way.

# links can be found at
# http://downloads.slimdevices.com/nightly/index.php?ver=7.9

wget 'http://downloads.slimdevices.com/nightly/7.9/sc/8d85ddd2e710d3c2a54d5308d01ff14a439deaee/logitechmediaserver_7.9.2~1577548976_amd64.deb'
sudo dpkg -i ./logitechmediaserver_7.9.2~1577548976_amd64.deb
sudo apt-get install libio-socket-ssl-perl
sudo apt --fix-broken install
sudo dpkg -i ./logitechmediaserver_7.9.2~1577548976_amd64.deb
sudo systemctl start logitechmediaserver.service

http://ubuntuvm:9000/ then yields the familiar LMS interface, where ubuntuvm is either an IP address or has been added to /etc/hosts

References: gamsjager.nl; forums.slimdevices.com