Volumio is a really cool open source audio player project, meant for high quality playback and easy use with cheap devices. Basically, a plug-and-play network music appliance. I have a few already around the house – a Pi Zero W in the kitchen for streaming radio, a Pi 3 with nice DAC hooked up to the stereo for lossless file playing. At it’s base it is controllable by the standard mpd server, which allows it to be integrated into other audio solutions or controlled by software like Home Assistant.
I wanted to add a network controllable speaker to my NUC server, and it made sense to stick with Volumio. Here’s the steps for installing in a Proxmox virtual machine.
One annoying thing I have run into is that Proxmox only allows ISOs to be used as installation media. But for some projects meant for embedded devices – like OpenWRT or Volumio – only an IMG file is provided.
So even though Volumio supports Intel x86 devices, I couldn’t figure out a way to install it’s IMG file with Proxmox until I found Giles Orr’s netcat method. Many thanks to him for detailing this previously unknown to me Linux tool.
CREATE THE VM
In Proxmox I created a standard Linux VM with 1.5GB of RAM and an 8GB disk. Be sure to choose “IDE” as the disk type, I could not get a SCSI disk to boot with Volumio. On my NUC, passing through the on-board audio wasn’t an option (or at least, my tests along these lines didn’t work) so I simply used a cheap USB audio dongle and passed that through.
For installation media, boot a Knoppix Live CD ISO.
Boot up your VM and you’ll see Knoppix start up on your console, go to the shell.
Use the lsblk command to verify that your destination disk is at /dev/sda, and ifconfig to see your IP address.
Now, using netcat we are going to listen on this machine, and send the Volumio IMG file to it through another on the network. The file will be written directly to the disk.
On the VM, listen with netcat on port 1234 and write the incoming file to the disk at /dev/sda
nc -l -p 1234 > /dev/sda
On a different machine on the network, send the IMG file to your listening VM with:
nc -w 3 192.168.0.xxx 1234 < volumio-2.387-2018-03-23-x86.img
There’s no progress bar or indication it’s working, just wait for it to finish sending.
Reboot the VM and Volumio will start right up, accessible on the console or at it’s IP address in a web browser.
Now I just run through the installer and select the USB dongle as the audio output.
- Setting up Proxmox on an Intel NUC
- Using netcat for File Transfers
- netcat manual page
- Giles Orr Installing a Disk Image with Netcat
- Home Assistant mpd and Volumio support