No/Crackling Audio in 10.3.6 VM


Recommended Posts

Hey All! Glad to be a part of the unRAID forums, best OS ever. Anyway, was hoping one of the experts over here could help me out. I managed to get an OSX virtual machine running really well with GPU acceleration and everything seemed to be working well until I tried to play audio. Using voodooHDA, my bluetooth and onboard audio devices have this really horrible crackling and distortion, it's totally unlistenable. 

 

Here's my build: 

 

Asrock X399 Taichi ultimate + TR4 1950x +16GB G. Skill Ripjaws (I know, not enough RAM) + gtx 1080/960.

 

My windows vms work great, as do the limited linux vms I've tried. I've followed numerous guides to fix this issue, starting with Gridrunner/Spaceinvader's latest guide to build a Mojave/HS vm. 

 

From there, I tried: 

 

https://www.tonymacx86.com/threads/audio-realtek-alc-applehda-guide.143757/ - This didn't work, as I couldn't figure out how to make any of the applicable fixes work on my x399. Didn't seem compatible. 

 

I tried - https://forum.amd-osx.com/viewtopic.php?f=24&t=4880 - made a post on this thread but didn't get a response. 

 

also tried - https://forum.amd-osx.com/viewtopic.php?f=23&t=4642 - basically the same thing but without a script to potentially break things.


When following the second guide, I receive the following error in terminal: 

 

Quote

Daves-Mac-Pro:Script+config davecorley$ sudo sh AMD_audio_cloverALC-130.sh

Agreement

The audio_cloverALC script is for personal use only. Do not distribute

the patch, any or all of the files or the resulting patched AppleHDA.kext

for any reason without permission. The audio_cloverALC script is

provided as is and without any kind of warranty.

File: audio_cloverALC-130.command_v0.5

Release Mode

EFI partition is mounted

System Integrity Protection status: disabled.

 

OK to patch

Error: no IOReg/HDEF; BIOS/.../HD Audio/disabled or ACPI problem

No system files were changed

To save a Copy of this Terminal session: Terminal/Shell/Export Text As ...

Daves-Mac-Pro:Script+config davecorley$

 

Also here is my XML:

 

Quote

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='3' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>High Sierra-Prime-2</name>
  <uuid>3af649ac-12e4-65a2-499e-8b26aeea830c</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>6815744</memory>
  <currentMemory unit='KiB'>6815744</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>16</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='17'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='18'/>
    <vcpupin vcpu='4' cpuset='3'/>
    <vcpupin vcpu='5' cpuset='19'/>
    <vcpupin vcpu='6' cpuset='4'/>
    <vcpupin vcpu='7' cpuset='20'/>
    <vcpupin vcpu='8' cpuset='5'/>
    <vcpupin vcpu='9' cpuset='21'/>
    <vcpupin vcpu='10' cpuset='6'/>
    <vcpupin vcpu='11' cpuset='22'/>
    <vcpupin vcpu='12' cpuset='7'/>
    <vcpupin vcpu='13' cpuset='23'/>
    <vcpupin vcpu='14' cpuset='8'/>
    <vcpupin vcpu='15' cpuset='24'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-3.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/3af649ac-12e4-65a2-499e-8b26aeea830c_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='16' threads='1'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/High Sierra-PRIME/vdisk3.img'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <alias name='sata0-0-2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </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='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <alias name='pci.3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <alias name='pci.4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x8'/>
      <alias name='pci.5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x9'/>
      <alias name='pci.6'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='7' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <alias name='pci.7'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:6d:12:f2'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='e1000-82545em'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <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/domain-3-High Sierra-Prime-2/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>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <rom file='/mnt/disk2/isos/10801211.rom'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x04ca'/>
        <product id='0x004b'/>
        <address bus='3' device='2'/>
      </source>
      <alias name='hostdev3'/>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x093a'/>
        <product id='0x2521'/>
        <address bus='1' device='8'/>
      </source>
      <alias name='hostdev4'/>
      <address type='usb' bus='0' port='3'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1532'/>
        <product id='0x0208'/>
        <address bus='1' device='2'/>
      </source>
      <alias name='hostdev5'/>
      <address type='usb' bus='0' port='4'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x8087'/>
        <product id='0x0aa7'/>
        <address bus='1' device='3'/>
      </source>
      <alias name='hostdev6'/>
      <address type='usb' bus='0' port='5'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
  <qemu:commandline>
    <qemu:arg value='-usb'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse,bus=usb-bus.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd,bus=usb-bus.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk='/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel,kvm=on,+invtsc,+avx,+avx2,+aes,+xsave,+xsaveopt,vmware-cpuid-freq=on,'/>
  </qemu:commandline>
</domain>

 

 

And my IOMMU groups just in case it's relevant for some reason:

 

Quote

IOMMU group 0:[1022:1452] 00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 1:[1022:1453] 00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge

IOMMU group 2:[1022:1452] 00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 3:[1022:1452] 00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 4:[1022:1453] 00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge

IOMMU group 5:[1022:1452] 00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 6:[1022:1452] 00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 7:[1022:1454] 00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B

IOMMU group 8:[1022:1452] 00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 9:[1022:1454] 00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B

IOMMU group 10:[1022:790b] 00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 59)

[1022:790e] 00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)

IOMMU group 11:[1022:1460] 00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0

[1022:1461] 00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1

[1022:1462] 00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 2

[1022:1463] 00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 3

[1022:1464] 00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 4

[1022:1465] 00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 5

[1022:1466] 00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 6

[1022:1467] 00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 7

IOMMU group 12:[1022:1460] 00:19.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0

[1022:1461] 00:19.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1

[1022:1462] 00:19.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 2

[1022:1463] 00:19.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 3

[1022:1464] 00:19.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 4

[1022:1465] 00:19.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 5

[1022:1466] 00:19.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 6

[1022:1467] 00:19.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 7

IOMMU group 13:[1022:43ba] 01:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset USB 3.1 xHCI Controller (rev 02)

[1022:43b6] 01:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset SATA Controller (rev 02)

[1022:43b1] 01:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset PCIe Bridge (rev 02)

[1022:43b4] 02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)

[1022:43b4] 02:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)

[1022:43b4] 02:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)

[1022:43b4] 02:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)

[1022:43b4] 02:07.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)

[8086:1539] 04:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)

[8086:24fb] 05:00.0 Network controller: Intel Corporation Dual Band Wireless-AC 3168NGW [Stone Peak] (rev 10)

[8086:1539] 06:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)

IOMMU group 14:[10de:1b80] 08:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)

[10de:10f0] 08:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

IOMMU group 15:[1022:145a] 09:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Device 145a

IOMMU group 16:[1022:1456] 09:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor

IOMMU group 17:[1022:145c] 09:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller

IOMMU group 18:[1022:1455] 0a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Device 1455

IOMMU group 19:[1022:7901] 0a:00.2 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)

IOMMU group 20:[1022:1457] 0a:00.3 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller

IOMMU group 21:[1022:1452] 40:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 22:[1022:1453] 40:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge

IOMMU group 23:[1022:1452] 40:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 24:[1022:1452] 40:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 25:[1022:1453] 40:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge

IOMMU group 26:[1022:1452] 40:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 27:[1022:1452] 40:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 28:[1022:1454] 40:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B

IOMMU group 29:[1022:1452] 40:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge

IOMMU group 30:[1022:1454] 40:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B

IOMMU group 31:[144d:a808] 41:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981

IOMMU group 32:[10de:1401] 42:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)

[10de:0fba] 42:00.1 Audio device: NVIDIA Corporation GM206 High Definition Audio Controller (rev a1)

IOMMU group 33:[1022:145a] 43:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Device 145a

IOMMU group 34:[1022:1456] 43:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor

IOMMU group 35:[1022:145c] 43:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller

IOMMU group 36:[1022:1455] 44:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Device 1455

IOMMU group 37:[1022:7901] 44:00.2 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)

 

 

I'd really appreciate any help that the members of unRAID's forum here could provide. I've been screwing around with this for the better part of a week now on the audio alone and I'm feeling pretty clueless at this point. Surely there's a config issue I'm missing somewhere here, as I've seen others with similar systems that have been met with much success. Also, I've attached the files that were requested for problem reporting in the second thread I mentioned. Hopefully someone can provide more info than I was able to glean from them myself.  Cheers!

config.plist

Dave’s Mac Pro.ioreg

Terminal Saved Output

Link to comment
43 minutes ago, bastl said:

@Magicaldave please remove the part after

from your xml in the first post. This key is publicly available, sure, but apple sued people for puplishing this key. If you watched the videos from Spaceinvaders you should already know this. 

I have edited his post.

 

Also @Magicaldave, I don't know what those attachments are and I am not inclined to find out. If that information can be rendered as plain text or an image then please do so in the future.

Link to comment

Jeez, sorry guys, I really should've done better on that. Was really late when I drafted this post so I missed a couple things. 

 

What I attached is pretty simple.

 

Config.plist, minus serials: 

 

Quote

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ACPI</key>
    <dict>
        <key>DSDT</key>
        <dict>
            <key>Name</key>
            <string>q35-acpi-dsdt.aml</string>
            <key>Patches</key>
            <array>
                <dict>
                    <key>Comment</key>
                    <string>AZAL to HDEF</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    QVpBTA==
                    </data>
                    <key>Replace</key>
                    <data>
                    SERFRg==
                    </data>
                </dict>
            </array>
        </dict>
    </dict>
    <key>Boot</key>
    <dict>
        <key>Arguments</key>
        <string>nvda_drv=1</string>
        <key>DefaultVolume</key>
        <string>LastBootedVolume</string>
        <key>Log</key>
        <true/>
        <key>Secure</key>
        <false/>
        <key>Timeout</key>
        <integer>3</integer>
    </dict>
    <key>Devices</key>
    <dict>
        <key>Audio</key>
        <dict>
            <key>Inject</key>
            <integer>1</integer>
            <key>ResetHDA</key>
            <true/>
        </dict>
        <key>USB</key>
        <dict>
            <key>AddClockID</key>
            <true/>
            <key>FixOwnership</key>
            <true/>
            <key>HighCurrent</key>
            <true/>
            <key>Inject</key>
            <true/>
        </dict>
    </dict>
    <key>GUI</key>
    <dict>
        <key>Scan</key>
        <dict>
            <key>Entries</key>
            <true/>
            <key>Legacy</key>
            <false/>
            <key>Linux</key>
            <false/>
            <key>Tool</key>
            <true/>
        </dict>
        <key>ScreenResolution</key>
        <string>1920x1080</string>
        <key>Theme</key>
        <string>embedded</string>
    </dict>
    <key>Graphics</key>
    <dict>
        <key>Inject</key>
        <dict>
            <key>NVidia</key>
            <false/>
        </dict>
    </dict>
    <key>KernelAndKextPatches</key>
    <dict>
        <key>KextsToPatch</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>Zeroing 11d4198A codec</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                ihnUEQ==
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleHDA</string>
                <key>Replace</key>
                <data>
                AAAAAA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Zeroing 11d41984 codec</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                hBnUEQ==
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleHDA</string>
                <key>Replace</key>
                <data>
                AAAAAA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>10.12-AppleHDA/ALC1220</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                ixnUEQ==
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleHDA</string>
                <key>Replace</key>
                <data>
                IBLsEA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>add 1022 vendor id</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                PQIQAAB0ez3eEAAAD4VTAQAA
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleHDAController</string>
                <key>Replace</key>
                <data>
                PSIQAAB0ez0CEAAAD4RwAAAA
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>hardcoding 1022 1457 </string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                hoAbgQAADwA=
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleHDAController</string>
                <key>Replace</key>
                <data>
                IhBXFAAADwA=
                </data>
            </dict>
        </array>
    </dict>
    <key>RtVariables</key>
    <dict>
        <key>BooterConfig</key>
        <string>0x28</string>
        <key>CsrActiveConfig</key>
        <string>0x67</string>
        <key>ROM</key>
        <string>UseMacAddr0</string>
    </dict>
    <key>SMBIOS</key>
    <dict>
        <key>BiosReleaseDate</key>
        <string>04/09/2018</string>
        <key>BiosVendor</key>
        <string>Apple Inc.</string>
        <key>BiosVersion</key>
        <string>IM142.88Z.0130.B00.1804091831</string>
        <key>BoardManufacturer</key>
        <string>Apple Inc.</string>
        <key>BoardType</key>
        <integer>10</integer>
        <key>BoardVersion</key>
        <string>1.0</string>
        <key>ChassisAssetTag</key>
        <string>iMac-Aluminum</string>
        <key>ChassisManufacturer</key>
        <string>Apple Inc.</string>
        <key>ChassisType</key>
        <string>0x0D</string>
        <key>Family</key>
        <string>iMac</string>
        <key>FirmwareFeatures</key>
        <string>0xE00FE137</string>
        <key>FirmwareFeaturesMask</key>
        <string>0xFF1FFF3F</string>
        <key>LocationInChassis</key>
        <string>Part Component</string>
        <key>Manufacturer</key>
        <string>Apple Inc.</string>
        <key>Mobile</key>
        <false/>
        <key>PlatformFeature</key>
        <string>0x01</string>
        <key>ProductName</key>
        <string>iMac14,2</string>
        <key>Version</key>
        <string>1.0</string>
    </dict>
    <key>SystemParameters</key>
    <dict>
        <key>InjectKexts</key>
        <string>Yes</string>
        <key>InjectSystemID</key>
        <true/>
        <key>NvidiaWeb</key>
        <true/>
    </dict>
</dict>
</plist>
 

 

 

The third file is basically just a copy of the terminal output in my first post, nothing super important.

 

What I think might be useful here is my ioReg dump which shows my audio device connected, but not as HDEF or HDAU as (I think?) it should be. macOS has got it.. just confused about what to do with it?

 

 

 

 

 

Screen Shot 2019-01-11 at 9.21.37 PM.png

Link to comment
12 minutes ago, Warrentheo said:

This sounds like Message Signaled Interrupts (MSI) issues to me, there is a tool for that fixes the Windows registry for these issues, but I don't know if OSx VM's have an equivalent or if it is even necessary...

I was looking into this in particular, it didn’t get me far. MSI seems to be a driver-level thing in macOS, so perhaps an alteration to applehda.kext or realtekalc.kext could allow MSI to be enabled, but I actually have the crackling audio issue with usb AND Bluetooth headphones even if I use a vanilla Applehda.kext and completely remove voodoo or realtekalc. 

 

I think I may have mentioned this previously, but I can’t reproduce the audio issues on other OSes, and my audio codec is running in LSI mode in windows. As for whether is OS X needs it? Got me there. 

Link to comment

Something else to consider, try changeing the CPU's passed through to the VM, especially leaving CPU-0 and its hyper-thread out if it has one, just to test...  If that changes anything, consider adding:

<emulatorpin cpuset='0,4'/>

so it looks something like this:

 

  <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='5'/>
    <vcpupin vcpu='3' cpuset='2'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='3'/>
    <vcpupin vcpu='6' cpuset='7'/>
    <emulatorpin cpuset='0,4'/>
  </cputune>

Make sure to edit the line so it matches the 2 CPU's for CPU-0 and its Hyper-thread if it has one...

Edited by Warrentheo
Link to comment

Did some CPU tweaking, but after rolling back to stock CPU and RAM clocks in BIOS/clover and setting the VM to cores 0-3, 4-7, 8-11, and 12-15 did nothing to fix audio on VoodooHDA. I tried adjusting the bitrate through Audio midi devices, but usually testing with System Preferences just made the whole VM crash and require a full reboot of the system since I can't properly reset my audio device.

 

As for native audio, I did manage to make some tweaks and get my audio device recognized as HDEF: 

 

Screen Shot 2019-01-14 at 7.40.03 PM.png

 

Doesn't seem to have done much, I now just get a different error when running the install script: 

 

Quote

Daves-Mac-Pro:Script+config davecorley$ sudo sh AMD_audio_cloverALC-130.sh

Agreement
The audio_cloverALC script is for personal use only. Do not distribute
the patch, any or all of the files or the resulting patched AppleHDA.kext
for any reason without permission. The audio_cloverALC script is
provided as is and without any kind of warranty.
 
File: audio_cloverALC-130.command_v0.5
Release Mode
EFI partition is mounted
System Integrity Protection status: disabled.

OK to patch
Error: Something is wrong with your HDEF patch, please report issue. Save output (CMD + A) to a text file. Also, dump IOReg and attach config.plist.
Daves-Mac-Pro:Script+config davecorley$ ]

 

Edited by Magicaldave
Link to comment
7 hours ago, 1812 said:

I got tired of playing/fighting with this stuff a year ago and instead use a usb audio adapter. Best time saving choice I ever made.

I like your thinking here, but I’m a little hesitant to try this as I’ve had issues with not just onboard audio, but usb and Bluetooth as well. In fact that’s where the audio is worst. 

 

What’re you using? Think an add-in card could achieve the same effect, or does it *have* to be usb-attached?

Link to comment
3 hours ago, Magicaldave said:

I like your thinking here, but I’m a little hesitant to try this as I’ve had issues with not just onboard audio, but usb and Bluetooth as well. In fact that’s where the audio is worst. 

 

What’re you using? Think an add-in card could achieve the same effect, or does it *have* to be usb-attached?

Add on usb card would probably be fine too, but I don’t have space to dedicate to just that.

 

i use a cheap 10 dollar usb “7.1 channel” adapter from microcenter, says it’s osx compatible.  

 

https://www.microcenter.com/product/340583/usb-20-(type-a)-male-to-35mm-female-stereo-audio-adapter

 

https://www.microcenter.com/product/364947/3d-audio-sound-card-usb-adapter

 

i havent read this thread closely, but if you are sharing OS X vm cores with anything else (non-isolated, including unRaid) that can introduce audio issues. I’ve had audio issues because of that before.

 

Link to comment
10 hours ago, 1812 said:

Add on usb card would probably be fine too, but I don’t have space to dedicate to just that.

 

i use a cheap 10 dollar usb “7.1 channel” adapter from microcenter, says it’s osx compatible.  

 

https://www.microcenter.com/product/340583/usb-20-(type-a)-male-to-35mm-female-stereo-audio-adapter

 

https://www.microcenter.com/product/364947/3d-audio-sound-card-usb-adapter

 

i havent read this thread closely, but if you are sharing OS X vm cores with anything else (non-isolated, including unRaid) that can introduce audio issues. I’ve had audio issues because of that before.

 

to;dr I’ve done a tone of cpu and clover tuning, nothing seems to fix it - although as far as native audio goes, I’ve made enough headway to fairly confidently say I could fix it with the right DSDT edits - no clue what edits to make though. Maybe I’ll try and compare the q35 dsdt to one I get from a baremetal install. Does “duel-booting” work with OS X?

 

I guess I’ll try again with usb audio, try to get Voodoohda in reasonable shape, and if I can make that happen I’ll just order a DAC for my 3.5 kit. 

 

What about Bluetooth, though?

Link to comment
6 hours ago, Magicaldave said:

Does “duel-booting” work with OS X?

I've never dual booted osx in a vm, but it works on bare metal. Boot camp or something....

 

 

6 hours ago, Magicaldave said:

I’ve done a tone of cpu and clover tuning, nothing seems to fix it

Are you currently sharing osx vm cores with anything else or are they isolated in unRaid? If you haven't done this, you should. OSX vm's are very finicky about audio and sharing cores, even with the host.

 

6 hours ago, Magicaldave said:

What about Bluetooth, though?

I've only used bluetooth a handful of times via an adapter on my usb card and haven't had issues.

Link to comment
On 1/16/2019 at 9:35 AM, 1812 said:

I've never dual booted osx in a vm, but it works on bare metal. Boot camp or something....

 

 

Are you currently sharing osx vm cores with anything else or are they isolated in unRaid? If you haven't done this, you should. OSX vm's are very finicky about audio and sharing cores, even with the host.

 

I've only used bluetooth a handful of times via an adapter on my usb card and haven't had issues.

Welp, didn’t originally have my CPU cores isolated. Doing this helped quite a bit, after isolating cores 4-7 I managed to combine Some tweaks with Audio Midi Devices and clover config to get my 3.5 audio in a *workable* state. I even ran lstopo to ensure I had the cores closest to my GPU and RAM and minimize latency. 

 

Still tweaking FSB speeds, as there’s a measurable loss in quality when leaving it blank.  Seems to be a sweet spot somewhere between 99.44MHz and 99.99MHZ. That’s a LOT of reboots and EFI mounts to work out, but sounds better than bare metal installing Windows just to run CPU-Z for FSB speed. 

 

USB and Bluetooth devices are still completely unlistenable. Over USB the audio skips so bad, you can’t even tell there’s anything playing save for a crackle or pop every few seconds. 

 

Bluetooth plays but crackles so bad you can’t even tell what’s playing. 

 

Any further tips for these? 

 

Also, in reference to my question about Duel-booting, I was referring to the practice of bare metal installing an is, then running that same boot drive as a VM with pass through. Since I’ve sort of worked out rear 3.5 audio, I don’t see this as being worth the trouble. 

Link to comment
4 hours ago, Magicaldave said:

Bluetooth plays but crackles so bad you can’t even tell what’s playing. 

 

Any further tips for these? 

Are you passing through a bluetooth usb device or a usb card? (looks like usb device from the previous xml) if only the device, might try looking into passing through a usb card, or passing through a part of your usb bus. there are  several usb cards that work with macos and are pretty cheap.

Link to comment
8 hours ago, Magicaldave said:

Still tweaking FSB speeds, as there’s a measurable loss in quality when leaving it blank.  Seems to be a sweet spot somewhere between 99.44MHz and 99.99MHZ. That’s a LOT of reboots and EFI mounts to work out, but sounds better than bare metal installing Windows just to run CPU-Z for FSB speed. 

 

That information is available in the clover boot menu under options>cpu tuning. this image shows 2 different ones I run on 2 different servers. I don't notice any improvement in changing bus in cinebench or in Geekbench.

 

1191449766_ScreenShot2019-01-21at9_21_44AM.thumb.png.76ec28886aedbd14675fbd82b25fb265.png

 

Edited by 1812
Link to comment
On 1/21/2019 at 6:03 AM, 1812 said:

Are you passing through a bluetooth usb device or a usb card? (looks like usb device from the previous xml) if only the device, might try looking into passing through a usb card, or passing through a part of your usb bus. there are  several usb cards that work with macos and are pretty cheap.

Actually I’m using the internal Bluetooth/WiFi, but it is USB-attached. From what I’ve read the wi-fi isn’t compatible with MacOS so maybe I just got lucky on Bt, kind of? 

 

Thanks so much for the info from clover btw! I got sidelined working on some original Xboxes but this will definitely be useful once I have the chance to look at audio again. I have another usb-attached Bluetooth device but I figure it’ll probably do the same. 

 

Is is there a particular guide floating around here on passing through your usb bus, or at least a portion of it? I certainly have enough ports that I don’t think it’d be a big deal, but been hesitant to mess with it as I didn’t wanna accidentally pass through my boot drive. 

Link to comment
  • 3 years later...

Responding to this thread because I just spend 2 days looking all over the internet for why my USB audio card was still crackling in my macOS Monteray VM. I do not have any additional PCIe USB cards in my system. I went to VM Manager and enabled "downstream" for PCIe ACS Override, then rebooted. (I turned off the auto-start on the array just because I wanted to be extra safe I don't accidentally pull out the SATA controller from my system for any reason..) Anyway, then when it came back up I found the IOMMU group that contained my motherboard's onboard USB 3.0 controller and set it to "bind to VFIO at boot" and rebooted. This IOMMU group contained my motherboards encryption controller as well as the motherboard audio ports. After the last reboot, I started up the array, and set newly isolated USB 3.0 controller to a pci device for my macOS VM, plugged the USB audio card into the port and it worked like a charm. I can now unplug usb devices from the VM while its running with no issue. 

TL;DR - don't pass the USB Audio card directly to a macOS VM - it will still crackle. The only way to get around the crackle/popping/dropping out audio is to pass an entire USB controller to the VM. 

  • Thanks 1
  • Upvote 1
Link to comment
  • 5 months later...
On 1/27/2022 at 12:27 PM, foop09 said:

Responding to this thread because I just spend 2 days looking all over the internet for why my USB audio card was still crackling in my macOS Monteray VM. I do not have any additional PCIe USB cards in my system. I went to VM Manager and enabled "downstream" for PCIe ACS Override, then rebooted. (I turned off the auto-start on the array just because I wanted to be extra safe I don't accidentally pull out the SATA controller from my system for any reason..) Anyway, then when it came back up I found the IOMMU group that contained my motherboard's onboard USB 3.0 controller and set it to "bind to VFIO at boot" and rebooted. This IOMMU group contained my motherboards encryption controller as well as the motherboard audio ports. After the last reboot, I started up the array, and set newly isolated USB 3.0 controller to a pci device for my macOS VM, plugged the USB audio card into the port and it worked like a charm. I can now unplug usb devices from the VM while its running with no issue. 

TL;DR - don't pass the USB Audio card directly to a macOS VM - it will still crackle. The only way to get around the crackle/popping/dropping out audio is to pass an entire USB controller to the VM. 

This helped me, thanks!

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.