[CentOS-virt] Assigning a PCI sound device to a VM

Thu Sep 3 01:29:32 UTC 2015
Robert Nichols <rnicholsNOSPAM at comcast.net>

I have a PCI sound card that I would like to assign to a VM, but
when I try to do so the VM fails to start and displays this message:

Error starting domain: Unable to read from monitor: Connection reset by peer

Traceback (most recent call last):
   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 44, in 
     callback(asyncjob, *args, **kwargs)
   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 65, in tmpcb
     callback(*args, **kwargs)
   File "/usr/share/virt-manager/virtManager/domain.py", line 1125, in 
   File "/usr/lib64/python2.6/site-packages/libvirt.py", line 686, in create
     if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Unable to read from monitor: Connection reset by peer

The XML generated by virt-manager for the device is

     <hostdev mode='subsystem' type='pci' managed='yes'>
         <address domain='0x0000' bus='0x07' slot='0x04' function='0x0'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x06' 

The sound card is an Asus Xonar DGX PCIe 5.1, and identifies itself
as "07:04.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 
[Oxygen HD Audio]".

I see the same problem if I try to assign the motherboard's Intel
Xeon E3-1200 HD Audio Controller to the VM.  Both of these devices
are supported by the host kernel (3.18.17-13.el6.x86_64).

I have no problem assigning a USB sound device, but those have very
limited capability.

Bob Nichols     "NOSPAM" is really part of my email address.
                 Do NOT delete it.