[SOLVED] Compile pve-qemu to support jack audio

markjf

New Member
May 11, 2025
3
0
1
Hi, I'm new to proxmox so please bear with me :D

I'm trying to enable jack audio as an audiodev for qemu.
However it's not listed under the supported devices:

Code:
# qemu-system-x86_64 -audiodev help
Available audio drivers:
none
alsa
dbus
oss
pa
spice
wav

I've followed a few bits from my googling the subject:
- https://forum.proxmox.com/threads/guest-sound-on-host.26510/ - this seemed to imply it was part of the base install
- https://bbs.archlinux.org/viewtopic.php?id=165545 - to get jack running as a service, which works
- https://github.com/bung69/Proxmox-qemu-audio - for the documentation on getting jack compiled into qemu - following this because it's not listed above

The last one is the one i'm currently banking my hopes on.
I installed proxmox based on this youtube guide:
- https://www.youtube.com/watch?v=-OlzEmI0BP8

At one point, the advice was to change the repos to the community edition, not knowing any better I did, and upgraded etc.

However, when I come to compile qemu to enable jack, I get:

Code:
# apt build-dep .
Note, using directory '.' to get the build dependencies
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 librbd-dev : Depends: librados-dev but it is not going to be installed
              Depends: librbd1 (= 16.2.15+ds-0+deb12u1) but 17.2.8-pve2 is to be installed

I guess there's a version clash between 16 and 17 possibly due to using community repos.

Can anyone help me fix either the compilation of qemu with jack, or provide me with a way to enable that.
I've got the service up and running fine, I just need qemu to recognise it.

I'm using qemu 9.2.0 on a fresh install of proxmox 8.4.1

Many thanks if you can help.
 
Alternatively, is there a better way to share my usb audio DAC between host and client?
I tried direct usb passthrough but the audio is completely broken, crackling, and barely recognisable.

I have used jack extensively on windows and linux over the years, hence I'm keen to stay with it and it has such excellent routing options, and integration with VSTs
 
Last edited:
I've managed to get this compiling by creating a minimal debian 12 VM, and installed all the packages from:
- https://github.com/Chocrates/qemu-build/blob/main/Dockerfile

Additionally added:
Bash:
sudo apt install jackd2 libjack-jackd2-dev

Then I had the following entries in /etc/apt/sources.list:
Code:
# proxmox development
deb http://security.debian.org/debian-security stable-security main
deb http://security.debian.org/debian-security bookworm-security main contrib
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

I needed the following signatures added:
Bash:
sudo wget -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg "https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg"

Usual apt update, upgrade, and then proceeded with:

Code:
git clone --recursive git://git.proxmox.com/git/pve-qemu.git;a=summary

After this, I edited the file `debian/rules` in the repo:
  1. removed the line "--disable-download"
  2. set the audio-drv-list to: '--audio-drv-list="alsa, jack"' (note the comma, another guide I read used spaces)
I ensured everything else for the build process was available with:
Bash:
sudo apt build-dep .

and finally built with:
Bash:
make deb

This created the file "pve-qemu-kvm_9.2.0-5_amd64.deb", which I copied to my pve installation, and installed after shutting down all the vms first.

The audiodev list now includes jack.
Bash:
# qemu-system-x86_64 -audiodev help
Available audio drivers:
none
alsa
dbus
jack
oss
pa
spice
wav

I've yet to confirm if I can use this, but it at least is compiled into my qemu