[pve-devel] applied: [PATCH qemu-server] cfg2cmd: set audiodev parameter only on qemu>=4.2
Thomas Lamprecht
t.lamprecht at proxmox.com
Wed May 6 15:14:40 CEST 2020
On 5/6/20 2:51 PM, Aaron Lauterer wrote:
> fixes behavior introduced with commit
> 940e2a3a06b3ea47aae144519e2aaa881a80e437
>
> Qemu 4.1 will fail to start a guest with an audio device set with
> `Property '.audiodev' not found`.
>
> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
> ---
>
> Users reported this problem in the forum today [0].
>
> I was able to reproduce this problem which makes me somewhat dumbfounded
> how I missed that while testing the initial commit... :/
>
I even asked you about that specific case ;-)
https://pve.proxmox.com/pipermail/pve-devel/2020-March/042643.html
applied
> [0] https://forum.proxmox.com/threads/kein-kvm-start-mehr-nach-heutigem-update.69379
>
> PVE/QemuServer.pm | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index cb96b71..c50f102 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -2752,19 +2752,22 @@ sub conf_has_audio {
> }
>
> sub audio_devs {
> - my ($audio, $audiopciaddr) = @_;
> + my ($audio, $audiopciaddr, $machine_version) = @_;
>
> my $devs = [];
>
> my $id = $audio->{dev_id};
> - my $audiodev = "audiodev=$audio->{backend_id}";
> + my $audiodev = "";
> + if (min_version($machine_version, 4, 2)) {
> + $audiodev = ",audiodev=$audio->{backend_id}";
> + }
>
> if ($audio->{dev} eq 'AC97') {
> - push @$devs, '-device', "AC97,id=${id}${audiopciaddr},$audiodev";
> + push @$devs, '-device', "AC97,id=${id}${audiopciaddr}$audiodev";
> } elsif ($audio->{dev} =~ /intel\-hda$/) {
> push @$devs, '-device', "$audio->{dev},id=${id}${audiopciaddr}";
> - push @$devs, '-device', "hda-micro,id=${id}-codec0,bus=${id}.0,cad=0,$audiodev";
> - push @$devs, '-device', "hda-duplex,id=${id}-codec1,bus=${id}.0,cad=1,$audiodev";
> + push @$devs, '-device', "hda-micro,id=${id}-codec0,bus=${id}.0,cad=0$audiodev";
> + push @$devs, '-device', "hda-duplex,id=${id}-codec1,bus=${id}.0,cad=1$audiodev";
> } else {
> die "unkown audio device '$audio->{dev}', implement me!";
> }
> @@ -3275,7 +3278,7 @@ sub config_to_command {
>
> if (min_version($machine_version, 4, 0) && (my $audio = conf_has_audio($conf))) {
> my $audiopciaddr = print_pci_addr("audio0", $bridges, $arch, $machine_type);
> - my $audio_devs = audio_devs($audio, $audiopciaddr);
> + my $audio_devs = audio_devs($audio, $audiopciaddr, $machine_version);
> push @$devices, @$audio_devs;
> }
>
>
More information about the pve-devel
mailing list