Bug 739100

Summary: Add configuration support for Intel HDA Audio
Product: [Fedora] Fedora Reporter: Michael Hampton <error>
Component: libvirtAssignee: Fedora Virtualization Maintainers <virt-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 15CC: berrange, clalance, crobinso, dougsland, itamar, jforbes, laine, Michael.Johnson, veillard, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-29 15:36:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michael Hampton 2011-09-16 15:00:59 UTC
This is a request for enhancement.

Description of problem:
qemu 0.14 added support for virtualized Intel HDA Audio; but libvirt does not support using it in its XML configuration files.

Version-Release number of selected component (if applicable):
libvirt-0.8.8-7.fc15.x86_64
qemu-0.14.0-7.fc15.x86_64
qemu-kvm-0.14.0-7.fc15.x86_64

How reproducible:
Always

Steps to Reproduce:
1. $ qemu-kvm -soundhw ?
2. Create a virtual machine in virt-manager.
3. Edit virtual machine configuration in virt-manager and add a "Sound" device.
  
Actual results:
All supported sound devices except 'hda' can be configured.

Expected results:
All supported sound devices including 'hda' should be configurable.

Additional info:
$ qemu-kvm -soundhw ?
Valid sound card names (comma separated):
pcspk       PC speaker
sb16        Creative Sound Blaster 16
ac97        Intel 82801AA AC97 Audio
es1370      ENSONIQ AudioPCI ES1370
hda         Intel HD Audio

-soundhw all will enable all of the above

Intel HDA Audio cannot be configured in libvirt's XML files. Using virt-manager above to "reproduce" was solely for convenience.

At the moment Intel HDA Audio is the only available virtualized sound hardware for which 64-bit Windows guests have reasonably functional drivers available.

Comment 1 Fedora Admin XMLRPC Client 2011-09-22 17:53:21 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 2 Fedora Admin XMLRPC Client 2011-09-22 17:57:11 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 3 Michael K Johnson (@SAS) 2011-11-29 15:02:54 UTC
This is supported, but within libvirt the model is called "ich6" not "hda".
(It is named after the chipset name, not the marketing name.)

Comment 4 Laine Stump 2011-11-29 15:36:21 UTC
In particular, here is the upstream commit that added support for 'ich6' sound:

commit 6cabc0b0d0fbc35a68bf1c0646898ac148d2fa3f
Author: Cole Robinson <crobinso>
Date:   Thu Jan 13 09:15:11 2011 -0500

    qemu: sound: Support intel 'ich6' model
    
    In QEMU, the card itself is a PCI device, but it requires a codec
    (either -device hda-output or -device hda-duplex) to actually output
    sound. Specifying <sound model='ich6'/> gives us -device intel-hda
    -device hda-duplex I think it's important that a simple <sound model='ich6'/>
    sets up a useful codec, to have consistent behavior with all other sound cards.
    
    This is basically Dan's proposal of
    
        <sound model='ich6'>
            <codec type='output' slot='0'/>
            <codec type='duplex' slot='3'/>
        </sound>
    
    without the codec bits implemented.
    
    The important thing is to keep a consistent API here, we don't want some
    <sound> devs require tweaking codecs but not others. Steps I see to
    accomplishing this:
    
        - every <sound> device has a <codec type='default'/> (unless codecs are
            manually specified)
        - <codec type='none'/> is required to specify 'no codecs'
        - new audio settings like mic=on|off could then be exposed in
            <sound> or <codec> in a consistent manner for all sound models
    
    v2:
        Use model='ich6'
    
    v3:
        Use feature detection, from eblake
        Set codec id, bus, and cad values
    
    v4:
        intel-hda isn't supported if -device isn't available
    
    v5:
        Comment spelling fixes