[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