[pve-devel] [PATCH v2 qemu-server] cfg2cmd: Add the audiodev property to audio devs

Aaron Lauterer a.lauterer at proxmox.com
Wed Apr 15 16:06:15 CEST 2020


Any news here? I'm asking because I just saw the deprecation warning in 
some testing :)

On 3/27/20 1:24 PM, Aaron Lauterer wrote:
> 
> 
> On 3/27/20 12:22 PM, Thomas Lamprecht wrote:
>> On 3/16/20 11:02 AM, Aaron Lauterer wrote:
>>> With Qemu 4.2 a new `audiodev` property was introduced [0] to explicitly
>>> specify the backend to be used for the audio device. This is accompanied
>>> with a warning that the fallback to the default audio backend is
>>> deprecated.
>>>
>>> [0] https://wiki.qemu.org/ChangeLog/4.2#Audio
>>>
>>> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
>>> ---
>>> v1 [1]->v2:
>>> the audiodev property is always set, omitting the machine version check.
>>
>> Why is that OK, doesn't that breaks using a 4.1 QEMU?
> 
> Interestingly enough not in my tests.
> 
> In the v1 version of this code I did have a version check to only add it 
> with qemu >=4.2. Live migration from qemu 4.2 (with the parameter set) 
> to 4.1 did not show any problems in my tests.
> 
> The same goes with this code now. Starting a VM in qemu 4.1 works as 
> well as migrating between 4.2 and 4.1.
> 
> My guess is that qemu 4.1 just ignores the audiodev property and falls 
> back to the only audiodev that we define just below the area the patch 
> touches (-audiodev spice,id=...)
> 
> If I am not mistaken, the audiodev backend seems to be a qemu backend 
> thing that does not affect the hardware of the VM.
> 
> The following blog post [0] by one of the qemu devs explains the new 
> property and what can be done with it quite nicely. At the bottom is an 
> example that is similar to our use case.
> 
> [0] https://www.kraxel.org/blog/2020/01/qemu-sound-audiodev/
> 
>>
>>>
>>> tested live migration with all 3 audio devs in both directions.
>>>
>>>
>>> [1] https://pve.proxmox.com/pipermail/pve-devel/2020-March/042381.html
>>>
>>>   PVE/QemuServer.pm | 6 +++---
>>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
>>> index b2ff515..0905e04 100644
>>> --- a/PVE/QemuServer.pm
>>> +++ b/PVE/QemuServer.pm
>>> @@ -3221,11 +3221,11 @@ sub config_to_command {
>>>       my $id = $audio->{dev_id};
>>>       if ($audio->{dev} eq 'AC97') {
>>> -        push @$devices, '-device', "AC97,id=${id}${audiopciaddr}";
>>> +        push @$devices, '-device', 
>>> "AC97,id=${id}${audiopciaddr},audiodev=$audio->{backend_id}";
>>>       } elsif ($audio->{dev} =~ /intel\-hda$/) {
>>>           push @$devices, '-device', 
>>> "$audio->{dev},id=${id}${audiopciaddr}";
>>> -        push @$devices, '-device', 
>>> "hda-micro,id=${id}-codec0,bus=${id}.0,cad=0";
>>> -        push @$devices, '-device', 
>>> "hda-duplex,id=${id}-codec1,bus=${id}.0,cad=1";
>>> +        push @$devices, '-device', 
>>> "hda-micro,id=${id}-codec0,bus=${id}.0,cad=0,audiodev=$audio->{backend_id}"; 
>>>
>>> +        push @$devices, '-device', 
>>> "hda-duplex,id=${id}-codec1,bus=${id}.0,cad=1,audiodev=$audio->{backend_id}"; 
>>>
>>>       } else {
>>>           die "unkown audio device '$audio->{dev}', implement me!";
>>>       }
>>>
>>
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 




More information about the pve-devel mailing list