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.
THE PROBLEM
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.
THE SOLUTION
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.
INSTALL VOLUMIO
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.
RESOURCES
- Volumio
- 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
[…] https://diyfuturism.com/index.php/2018/05/13/installing-volumio-proxmox-virtual-machine/ […]
Hi,
i found this article and it was too complicated after a few minutes of thinking i just DDed the image file into the proxmox logical volume
– create VM
– do not start
– go to proxmox CLI
– download volumio image file and unzip
– dd if=volumio-2.861-2020-12-22-x86.img of=/dev/pve/vm-102-disk-0 bs=1M
and off you go
cheers
soeren
Perfect. Easier. (Though, thanks for the original exploration, too!)
You can aslo import and attach .img
qm create 107 –memory 1024 –net0 virtio,bridge=vmbr0
qm importdisk 107 /home/bin/volumio-2.909-2021-09-08-x86.img local-lvm
qm set 107 –ide0 local-lvm:vm-107-disk-0
Set in vm options to boot from IDE
Dear Soeren, can you explain me where i need to put the unzip image, i have tryed to copy as image in a pve container but with the command ” dd if=volumio-xxxxxx.img of=/dev/pve/vm-10xXX-disk-0 bs=1M i have an error failed to open ‘volumio86.img’: No such file or directory”
best regards
🙁 its doesnt work anymore.. are there workarounds?
Same here, im getting UUID errors when booting.
Did you find a solution?
I tried these methods as well and was unsuccessful. However I am a ProxMox newb and only know a little Linux from when I used Slackware in the 90s.
My solution, which is only “a solution” was to DL the IMG from Volumio website, burn it to USB using Etcher (Windows) (I DLed Volumio 3.435 for reference)
Then in ProxMox create a VM, under “OS” select “Do Not use media.” Under “Disk” make sure “Bus/Device” is “IDE”.
Physically insert Volumio USB drive in server.
Once the VM is created then edit the hardware and add “USB Device” (USB device should be visible for correct port selection)
Boot VM, press “ESC” to enter ProxMox BIOS, select USB Device
Boot Volumio, use VNC or IP address and web to login to Volumio interface.
Select 3 horizontal bars in upper left-hand corner. Select “System.” About Half way down is “Install to Disk.” Should show something like “Install to Disk QEMU_XXX”
Complete setup. Shutdown Volumio VM.
Remove “USB Device” in Hardware of Volumio VM.
Take Snapshot, call it “base install”
Maybe run a backup like I did.
Then someone smarter than me, somehow upload the backup or qcow file somewhere so no-one has to do this again.
post a link! (mega-upload or somewhere like that?)
Hope this helps someone somewhere.
its doesnt work anymore, any help please.