5
0
mirror of git://git.proxmox.com/git/qemu-server.git synced 2025-01-10 01:18:01 +03:00

audio dev: specify qemu audio backend

QEMU 4 adds the `-audiodev` parameter to explicitly specify the audio
backend. Setting it avoids occasional error messages when starting a
virtual machine with an audio device and qemu wants to connect it to the
physical audio device.

For now only SPICE is supported as it's also the biggest use case.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
This commit is contained in:
Aaron Lauterer 2019-07-19 15:15:44 +02:00 committed by Thomas Lamprecht
parent c30e80aba9
commit 1448547f44

View File

@ -267,6 +267,21 @@ my $ivshmem_fmt = {
},
};
my $audio_fmt = {
device => {
type => 'string',
enum => [qw(ich9-intel-hda intel-hda AC97)],
description => "Configure an audio device."
},
driver => {
type => 'string',
enum => ['spice'],
default => 'spice',
optional => 1,
description => "Driver backend for the audio device."
},
};
my $confdesc = {
onboot => {
optional => 1,
@ -640,7 +655,7 @@ EODESCR
},
audio0 => {
type => 'string',
enum => [qw(ich9-intel-hda intel-hda AC97)],
format => $audio_fmt,
description => "Configure a audio device, useful in combination with QXL/Spice.",
optional => 1
},
@ -3786,7 +3801,10 @@ sub config_to_command {
}
}
if (my $audiodevice = $conf->{audio0}) {
if ($conf->{audio0}) {
my $audioproperties = PVE::JSONSchema::parse_property_string($audio_fmt, $conf->{audio0});
my $audiodevice = $audioproperties->{device};
my $audiodriver = $audioproperties->{driver} // 'spice';
my $audiopciaddr = print_pci_addr("audio0", $bridges, $arch, $machine_type);
if ($audiodevice eq 'AC97') {
@ -3798,6 +3816,8 @@ sub config_to_command {
} else {
die "unkown audio device '$audiodevice', implement me!";
}
push @$devices, '-audiodev', "${audiodriver},id=${audiodriver}-driver";
}
my $sockets = 1;