RFE: Add support for QEMU's pipewire audio backend
Goal
Use QEMU's pipewire backend (-device pipewire) which was added to QEMU in 8.1
Technical details
sudo virsh -version 9.8.0 sudo qemu-kvm -version QEMU emulator version 8.1.2 (openSUSE Tumbleweed) Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers
Additional information
I have confirmed that support exists in QEMU after installing the appropriate backend package:
> qemu-kvm -audiodev help
Available audio drivers:
none
pipewire
spice
I attempted to add the appropriate parameters to the domain XML but they are not recognised by libvirt's XML schema:
sudo virsh edit Tumbleweed-Live-CD
error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element devices in interleave
Element domain failed to validate content
Grepping the schema, the entire -audiodev parameter is missing, only the deprecated -audio parameters are supported - and no mention of the pipewire driver.
This seems strange as looking at my logs I can see that the -audiodev parameter is in use when starting the guest:
-audiodev '{"id":"audio1","driver":"spice"}' \
And I see it in tests here, and there are commits to use it directly... So I guess the schema is out of date and is converting commands to use up-to-date arguments?
Is there some way to use the new backend? Perhaps by means of qemu:override? Should the libvirt XML schema be updated to reflect the QEMU API mentioned in the above commit? I'm very new to libvirt so please forgive any misunderstandings on my part.