[Solved] Windows 7 HDMI Audio Issue


METDeath

Recommended Posts

Solution: DO NOT INSTALL CATALYST 15.7.1

I installed 13-9 and got audio no problem.

 

 

Problem:

 

Working on getting my second unRAID box online how I want it.

 

I have started trying to configure the Windows VM (Media Center w/Ceton). However, I've hit a snag... HDMI audio doesn't work.

 

Using a Biostar TA970 + FX 6300 + AMD 5450 (worked with my primary unRAID & OpenELEC/Kodibuntu)

 

The audio just doesn't work, I try to test the audio with the Sound control and get a "Device In Use" message "The device is being used by another application. Please close any devices that are playing audio to this device and then try again."

 

I've tested this with an OE VM and it plays audio without issue.

 

My append from syslinux.cfg

  append amd_iommu=on iommu=pt iommu=1 vfio_iommu_type1.allow_unsafe_interrupts=1 pcie_acs_override=downstream initrd=/bzroot

 

My current XML:

<domain type='kvm' id='5' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Media</name>
  <uuid>857f5c22-3b48-af8c-d59e-5c20bf39ba2b</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows7.png" os="windows7"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>3</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='3'/>
    <vcpupin vcpu='1' cpuset='4'/>
    <vcpupin vcpu='2' cpuset='5'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='3' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/VM/WinHTPC/Media/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/disk1/Applications/OS Installers/Windows7Ultimate/Windows7Ultimate.iso'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='2'/>
      <alias name='sata0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/disk1/Applications/OS Installers/virtio-win-drivers-20120712-1.iso'/>
      <backingStore/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <alias name='sata0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='90:fb:a6:df:11:5b'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Media.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x1784'/>
        <product id='0x0008'/>
        <address bus='9' device='3'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='9' device='2'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=pcie.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.1,bus=pcie.0'/>
  </qemu:commandline>
</domain>

Link to comment

So you're not the only one who has reported this. I've run into a few folks that have had similar challenges.  How are you going about loading the drivers?  Are you letting Windows do this automatically or are you downloading the catalyst drivers from the web directly?

 

Also, any reason you have to use Windows 7?

Link to comment

So you're not the only one who has reported this. I've run into a few folks that have had similar challenges.  How are you going about loading the drivers?  Are you letting Windows do this automatically or are you downloading the catalyst drivers from the web directly?

 

Also, any reason you have to use Windows 7?

 

I have to use Windows 7 due to Media Center support for Cable Card tuners and premium channels.

 

I am loading the latest Catalyst Drivers from AMD, should I try for the Windows drivers instead?

Link to comment

So you're not the only one who has reported this. I've run into a few folks that have had similar challenges.  How are you going about loading the drivers?  Are you letting Windows do this automatically or are you downloading the catalyst drivers from the web directly?

 

Also, any reason you have to use Windows 7?

 

I have to use Windows 7 due to Media Center support for Cable Card tuners and premium channels.

 

I am loading the latest Catalyst Drivers from AMD, should I try for the Windows drivers instead?

 

Have you tried Windows 8.1 since it still supports Media Center? At least it might be interesting to try to see if HDMI Audio works there. Gives you some more options if it does work better.

Link to comment

Yes, either that or perhaps maybe some older drivers.  You could also try passing the rom file for the card as indicated in the wiki.  Definitely want to assist with troubleshooting.

 

Well, trying the ROM (named rom.bin) caused it to BSOD on boot, and I couldn't get into the VM with USB pass through had to revert to VNC, told it to start normally, then stopped the VM.

 

I tried maintaining the extension .bin (file called 5450.bin), Windows Device Manager reported a bad HDMI Bus Audio Driver, uninstalled that. Attempted to install the AMD driver, same problem only worse, Windows says "Cannot start"

 

 

 

 

Have you tried Windows 8.1 since it still supports Media Center? At least it might be interesting to try to see if HDMI Audio works there. Gives you some more options if it does work better.

 

I did, and it had more detail saying "failed to start hardware"

Link to comment

Apparently this IS a driver issue... I went to a bare metal install and the problem persisted, change the driver out... and viola sound works fine. Getting my hands on an old driver package for Win7 x64 and it works fine in VM.

Whoa!!!  That's actually good news!  We have another customer who has had similar issues so I'm going to make the same recommendation to them. I say its good news because at least it's not a virtualization issue!

Link to comment

Apparently this IS a driver issue... I went to a bare metal install and the problem persisted, change the driver out... and viola sound works fine. Getting my hands on an old driver package for Win7 x64 and it works fine in VM.

Whoa!!!  That's actually good news!  We have another customer who has had similar issues so I'm going to make the same recommendation to them. I say its good news because at least it's not a virtualization issue!

 

Yeah, too bad I had to "hack" the Digital Cable Advisor test. Passing my Ceton through now and installing it. Which will leave me with only a few hurdles left on this build... aside from a DOA drive (one of three, so not a show stopper).

Link to comment

METDeath => Not related to this issue, but a question r.e. your setup ...

 

Are you using the 6-tuner Ceton?    And regardless, what are you using for a recording drive?    i.e. a virtual drive or a passed through controller?    Just curious about the recording bandwidth  you're getting in a VM ... and how many simultaneous recordings you can do without any bandwidth issues.

 

Link to comment

I have had up to 7 ATSC and QAM recordings from passed through PCIe cards and HDHR boxes on my SageTV VM (Win7x64) with no recording problems.  I was using a XEN VM for this with 6beta5 and have since switched back to ESXi to get unRAID 6beta15+ (was easier than learning how to use KVM - until 6.0.1 came out anyway).  But I hope to be able to get the same thing with KVM and unRAID bare metal just haven't had the time to re-arange the recording schedule and the time off from work to switch yet.

Link to comment

... I have had up to 7 ATSC and QAM recordings from passed through PCIe cards and HDHR boxes on my SageTV VM (Win7x64) with no recording problems.

 

Same question I asked earlier -- what are you recording to?  Virtual disk?  physical disk attached to a passed through controller?  etc.

 

Your experience is very encouraging ... I'm very much inclined to move to a virtual PC as my primary WMC box -- but my reason may be flawed.    My goal is to be able to recover from a failed PC without losing all of my copy protected recordings.    I'm assuming that a VM moved to another host will still have the same attributes, so will be able to playback CCF flagged recordings on the new host that were made on the old host.  Have you by chance tried this?  (If you don't have a cablecard tuner you probably can't confirm it)

 

Later this fall I'll set something up to test this --- but just curious if you have by chance already done so.

 

 

Link to comment

METDeath => Not related to this issue, but a question r.e. your setup ...

 

Are you using the 6-tuner Ceton?    And regardless, what are you using for a recording drive?    i.e. a virtual drive or a passed through controller?    Just curious about the recording bandwidth  you're getting in a VM ... and how many simultaneous recordings you can do without any bandwidth issues.

 

I haven't been able to get it to pass the Digital Cable Advisor, even after disabling the VMWare VGA driver. I am currently using ESXi 5.5, the Ceton shows up in the Diagnostic software, but that's it. I can also watch the GPU not attempt a HDCP handshake with the HDMI switcher (Crestron 8x2 HDMI switcher, yay for work). I'm thinking I may make this machine an unRAID/OE/pfSense build and just set up my AM1 build that is currently pfSense as my Media Center install for tuner sharing to the 360s and not have it actually route to anywhere.

 

I've read of others have success with ESXI 6 and Xen. Heck, someone has gotten it working (I think) using unRAID as the hypervisor... which I failed to get it to even detect in the card in the Ceton software despite installing drivers for it. If it had passed I was going to have it record to Virtual disk and pass unRAID a controller to allow it to write to physical disks since I can't RDM in ESXi for some reason.

Link to comment

... I have had up to 7 ATSC and QAM recordings from passed through PCIe cards and HDHR boxes on my SageTV VM (Win7x64) with no recording problems.

 

Same question I asked earlier -- what are you recording to?  Virtual disk?  physical disk attached to a passed through controller?  etc.

I passed a Highpoint 622, 1722?, SuperMicro SASLP-MV8, SAT2-MV8 or IBM M1015 controller (I've used all depending on MB) to the VM and used 4-5 drives on it as recording drives.  I've never done a virtual recording drive.  Last year (or maybe the year before) I had 1TB set to record in a 360 hour (technically was only 288 since the guide data only goes out ~12 days) period of time (season start in late Aug-Sep) so a virtual drive just wouldn't cut it for me. The 622 and 1722 were to a port multiplying eSata drive cage and mostly worked.  I switch to the straight controllers because I did get some drop outs with the port multiplier.  Technically I started with drives internal on a SAT2-MV8 then switched to the high point controllers with port multipliers then to the SASLP-MV8 and IBM M1015 with raw cables sticking out of the case.  Wanted space in unRAID for 22 drives (the most my Lian Li V2000 will hold without mods).  Although I probably could have just left them internal and just replaced drives with bigger sizes to increase capacity.

 

Your experience is very encouraging ... I'm very much inclined to move to a virtual PC as my primary WMC box -- but my reason may be flawed.    My goal is to be able to recover from a failed PC without losing all of my copy protected recordings.    I'm assuming that a VM moved to another host will still have the same attributes, so will be able to playback CCF flagged recordings on the new host that were made on the old host.  Have you by chance tried this?  (If you don't have a cablecard tuner you probably can't confirm it)

 

Later this fall I'll set something up to test this --- but just curious if you have by chance already done so.

I have seen on the SageTV forum users that were recording directly to a unRAID cache drive before - but I don't think they were recording 1TB in 360 hours.  Didn't think WMC allowed recording to a network drive?  If it does maybe you could try it out now from your WMC box to the unRAID cache drive user share.  Then at night unRAID moves it to the array and you have essentially an unlimited storage box.  I'm sure it could be done (moving it to another VM) just have to make the machine and disk signatures the same when you move them and use the same type of VM.  And no I use SageTV because it isn't DRM compliant and I can move the recordings anywhere I want even if I have to use Component or HDCP stripping splitter to get access to a recording.  I got into it as a VCR replacement and I'm not about to let the Cable Co/Content providers dictate what I watch and when.  I would even go so far as to just watch what I currently have recorded and cut all cables if I had to.  Why I also got PlayLater so that I can record any videos I might want to stream to my PC.  Not as good a quality picture or sound as streaming but for those series and movies that are not worth me purchasing it is good enough.
Link to comment

METDeath => Not related to this issue, but a question r.e. your setup ...

 

Are you using the 6-tuner Ceton?    And regardless, what are you using for a recording drive?    i.e. a virtual drive or a passed through controller?    Just curious about the recording bandwidth  you're getting in a VM ... and how many simultaneous recordings you can do without any bandwidth issues.

 

I haven't been able to get it to pass the Digital Cable Advisor, even after disabling the VMWare VGA driver. I am currently using ESXi 5.5, the Ceton shows up in the Diagnostic software, but that's it. I can also watch the GPU not attempt a HDCP handshake with the HDMI switcher (Crestron 8x2 HDMI switcher, yay for work). I'm thinking I may make this machine an unRAID/OE/pfSense build and just set up my AM1 build that is currently pfSense as my Media Center install for tuner sharing to the 360s and not have it actually route to anywhere.

 

I've read of others have success with ESXI 6 and Xen. Heck, someone has gotten it working (I think) using unRAID as the hypervisor... which I failed to get it to even detect in the card in the Ceton software despite installing drivers for it. If it had passed I was going to have it record to Virtual disk and pass unRAID a controller to allow it to write to physical disks since I can't RDM in ESXi for some reason.

With my ESXi setups I got a SAS expander so that I could just have two HDD controllers passed through one for unRAID and one for my Windows VM.  Never really liked RDM'ing a drive to a VM.  It works and works well but didn't provide enough info to the OS to give you smart access and I couldn't check the health of the drive - the way I did it anyway - so I switched to my method.  I wanted to go to a Ceton when they first came out but I had already started the switch to DirecTV and dropped my Cable Co when they came out.  Now I think I would go to a HDHRPrime and have been thinking about that since my Cable Co still has non premium channels with copy (always?) and I can record them in SageTV - don't need DRM capable WMC.  I use HD-PVR (component) and Colossus (HDMI) to record from my DirecTV STBs - so far my DirecTV HR21 box hasn't implemented any DRM.
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.