Auzzie

Members
  • Posts

    1
  • Joined

  • Last visited

Auzzie's Achievements

Noob

Noob (1/14)

0

Reputation

  1. Hey All, To begin, here is a run down of my unRAID host: CPU: Intel 8700K RAM: 4x 8GB DDR4 2133Mhz (32GB Total) unRAID Version: 6.6.1 Motherboard: Z370 AORUS Ultra Gaming GPU 1: NVIDIA GTX 950 (passed through to the macOS VM) GPU 2: AMD Radeon RZ 480 USB DAC: Behringer U-PHORIA UM2 I've been using unRAID to host two virtual machines that act as personal workstations for myself and my partner, my is running macOS High Seirra 10.13.6. For a while now I've been trying to get audio to work on the macOS VM and have tried many modifications to the libvirt configuration to no success. Currently if you try to use the USB DAC for audio it will start playing but 1-2 seconds in it will start getting choppy and eventually cut out all together. My first attempt to get audio working was to open the MIDI control panel in macOS and create an aggregated device from the Input and Output of the DAC then selecting the Input as the clock source, this partially worked but the audio quality was very poor and would eventually cut out too. Based on that, I started looking at items that could affect the clock of the VM as it feels like a timing issue when sending data to the DAC. My first port of call was to modify some of the settings in the timing features passed to the VM to try and get libvirt to lock the clock events as close to the CPU as possible, no luck there. Next I rebuilt my VM using OSX-KVM GitHub repository as a guide for modifications to try and pass through as much information from the host CPU as possible (also so I could get virtual box and docker running in the VM so I could do work from home, that has worked so no trouble there), but that didn't work either. Continuing I then went into the BIOS for the host and disabled turbo boost and locked the CPU to 4.4Ghz to prevent (read attempt to) the CPU speed from changing to see if that helped with clock slips, still nope. My last ditch attempt was to isolate the CPUs used by the VM and lock QEMU to other CPUs to prevent any resource hogging, that still didn't work. At this point I'm ready to pull out my hair and can currently only get audio via HDMI but that still clips even now and again, so any help is greatly appreciated. -------- SYSTEM CONFIG BELLOW --------- Boot Flags: BOOT_IMAGE=/bzimage pcie_acs_override=downstream isolcpus=0,1,2,3,6,7,8,9 initrd=/bzroot kvm-intel.nested=1 USB Devices: Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec Bus 001 Device 004: ID 046d:c338 Logitech, Inc. Bus 001 Device 003: ID 0461:4d22 Primax Electronics, Ltd Bus 001 Device 002: ID 0930:1400 Toshiba Corp. Memory Stick 2GB Bus 001 Device 006: ID 046d:0802 Logitech, Inc. Webcam C200 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Libvirt Domain Configuration: <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>macOS - Liam</name> <uuid>b062c719-db86-124c-50c1-b9a8f70dd8d7</uuid> <metadata> <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/> </metadata> <memory unit='KiB'>16777216</memory> <currentMemory unit='KiB'>16777216</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='6'/> <vcpupin vcpu='2' cpuset='1'/> <vcpupin vcpu='3' cpuset='7'/> <vcpupin vcpu='4' cpuset='2'/> <vcpupin vcpu='5' cpuset='8'/> <vcpupin vcpu='6' cpuset='3'/> <vcpupin vcpu='7' cpuset='9'/> <emulatorpin cpuset='4-5,10-11'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-2.12'>hvm</type> <loader readonly='yes' type='pflash'>/mnt/user/domains/macOS - Liam/OVMF_CODE.fd</loader> <nvram>/mnt/user/domains/macOS - Liam/OVMF_VARS.fd</nvram> </os> <features> <acpi/> <apic eoi='on'/> <pae/> <hap state='on'/> <kvm> <hidden state='on'/> </kvm> <vmport state='off'/> </features> <clock offset='utc'> <timer name='tsc'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source dev='/dev/nvme0n1'/> <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='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='pci' index='1' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='1'/> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='2'/> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <controller type='pci' index='3' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='3'/> <alias name='pci.3'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </controller> <controller type='pci' index='4' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='4'/> <alias name='pci.4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <controller type='pci' index='5' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='5'/> <alias name='pci.5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </controller> <controller type='pci' index='6' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='6'/> <alias name='pci.6'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </controller> <controller type='pci' index='7' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='7'/> <alias name='pci.7'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </controller> <controller type='pci' index='8' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='8'/> <alias name='pci.8'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='sata0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' 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='0x00' slot='0x02' 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='0x02' 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='0x02' function='0x2'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:e5:85:95'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='vmxnet3'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x08' slot='0x01' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/1'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/1'> <source path='/dev/pts/1'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-1-macOS - Liam/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='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </source> <alias name='hostdev0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x02' slot='0x00' function='0x1'/> </source> <alias name='hostdev1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x0461'/> <product id='0x4d22'/> <address bus='1' device='3'/> </source> <alias name='hostdev2'/> <address type='usb' bus='0' port='1'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x046d'/> <product id='0x0802'/> <address bus='1' device='6'/> </source> <alias name='hostdev3'/> <address type='usb' bus='0' port='2'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x046d'/> <product id='0xc338'/> <address bus='1' device='4'/> </source> <alias name='hostdev4'/> <address type='usb' bus='0' port='3'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x08bb'/> <product id='0x2902'/> <address bus='1' device='5'/> </source> <alias name='hostdev5'/> <address type='usb' bus='0' port='4'/> </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='host,vendor=GenuineIntel,kvm=on,topoext=on,vmware-cpuid-freq=on,+invtsc,+hypervisor'/> </qemu:commandline> </domain>