I’ve been attempting to get audio to work across all guests in Proxmox. While I can probably physically attach a soundcard to each guest, I’d need multiple and I’d need to keep fiddling each time I started a guest.
Apparently with a command line argument, qemu can provide audio support through the host, so I figured that using pipewire to co-ordinate this would be the easiest way forward, except it turns out that it’s a (GUI) user space process, which doesn’t make sense on a server with no GUI users.
There’s a Debian server package apparently specifically for this, but it doesn’t appear to work and my (linked) bug report doesn’t seem to have been noticed, let alone fixed.
How do you do audio across multiple guests?
Note, new Proxmox user, ancient Debian user. Use case: single user virtual workstation environment to replace the VMware system I’ve been using since 2009. (The hardware failed and VMware is now owned by people who are not interested in me as a customer.)
Edit:
Just to be explicit, any working audio would be great, preferably a system that doesn’t require special drivers in the guest, since I’m also running ancient operating systems on this host, not to mention, experimental ones alongside my main virtual workstation.
Spice may be your best bet. I think it supports audio.
*Might be a good starting point https://forum.proxmox.com/threads/noob-guide-to-getting-audio-to-work-in-linux-guests.127369/
In my adventures I did look at this, but it appears to require that you install support for this inside the guest, which is possible for modern guests, but not for ancient ones like say Debian Wheezy or Win98se.
Ancient yeah, haha. Glaces at win311 and slackware 2.3 VMs. But yeah it does require guest addons but is probably going to be the closest to built in support you’re going to find. I think there is a novnc audio project but have no idea what state that’s in and what you’d have to do to roll it into the Proxmox novpn version.
so I figured that using pipewire to co-ordinate this would be the easiest way forward, except it turns out that it’s a (GUI) user space process, which doesn’t make sense on a server with no GUI users.
I’m not entirely sure what you mean by “(GUI) user space process”, but if it’s that it’s a systemd user process (e.g. it shows up when you run
$ systemctl --user status pipewirerather than$ systemctl status pipewire, which appears to be the case on my system, where there’s one instance running per user session), then you probably can run it as a systemwide process, where there’s just one always-running process for the whole system. IIRC, PulseAudio could run in both modes. I don’t know if you have concerns about security on access to your mic or something, but that could be something to look into.searches
Sounds like it’s doable. Not endorsing this particular project, which I’ve never seen before, but it looks like it’s possible:
https://github.com/iddo/pipewire-system
PipeWire System-wide Daemon Package (Arch Linux)
This package configures PipeWire, WirePlumber, and PipeWire-Pulse to run as a single system-wide daemon as the root user. This setup is optimized for headless media servers, HTPCs, or multi-user audio environments.
Not sure how, or if, I’d want to install an Arch package under Debian, but it’s my understanding that the package I’ve raised a bug for under Debian implements, or is supposed to at least, the functionality you’re describing.
What I haven’t found is a recipe that documents exactly how it’s supposed to work (not to mention, in a Debian way).
I’d love to discover something that doesn’t start with instructions to remove all pipewire packages and install from source, since that completely defeats the purpose of running Debian Stable as the host.
The arch package has to be built somehow. You could look at that packages source and/or content to figure out how to manually do it on your system, or wait/hope the deb is being maintained and gets fixed.
It’s likely mostly some plumbing, like a systemd service with it’s configuration, to get the audio routed properly.
Tah. I’ll have a look see.



