johnodon Posted December 18, 2016 Share Posted December 18, 2016 UPDATE: Found a solution which is in line with the fix for OE/LE. I created /etc/modprobe.d/snd-hda-intel.conf and put the same line in it that is used for OE/LE (options snd-hda-intel enable_msi=1). Audio works as expected now.  I know that "demonic" audio is an issue for Nvidia based cards and there are fixes for Windows and OE/LE guests. However, I don't see a fix for Linux distro guests (Ubuntu 16.04.1 in my case). I'm doing a vanilla install and have only done an apt-get update/upgrade and installed OpenPHT...but I have the "demonic" audio bug.  The manual seems to only address Windows guests: http://lime-technology.com/wiki/index.php/UnRAID_6/VM_Guest_Support#Enable_MSI_for_Interrupts_to_Fix_HDMI_Audio_Support  Is there a Linux fix (non-OE/LE)?  XML...  <domain type='kvm' id='56'>  <name>HTPCFAMILYRM</name>  <uuid>f31215fd-5042-c086-4b96-ba7f8531458d</uuid>  <metadata>   <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>  </metadata>  <memory unit='KiB'>4194304</memory>  <currentMemory unit='KiB'>4194304</currentMemory>  <memoryBacking>   <nosharepages/>   <locked/>  </memoryBacking>  <vcpu placement='static'>2</vcpu>  <cputune>   <vcpupin vcpu='0' cpuset='10'/>   <vcpupin vcpu='1' cpuset='11'/>  </cputune>  <resource>   <partition>/machine</partition>  </resource>  <os>   <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>   <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>   <nvram>/etc/libvirt/qemu/nvram/f31215fd-5042-c086-4b96-ba7f8531458d_VARS-pure-efi.fd</nvram>  </os>  <features>   <acpi/>   <apic/>  </features>  <cpu mode='host-passthrough'>   <topology sockets='1' cores='1' threads='2'/>  </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/HTPCFAMILYRM/vdisk1.img'/>    <backingStore/>    <target dev='hdc' bus='virtio'/>    <boot order='1'/>    <alias name='virtio-disk2'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>   </disk>   <disk type='file' device='cdrom'>    <driver name='qemu' type='raw'/>    <source file='/mnt/user/isos/ubuntu-16.04.1-desktop-amd64.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>   <controller type='usb' index='0' model='nec-xhci'>    <alias name='usb'/>    <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>   </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'>    <model name='i82801b11-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'>    <model name='pci-bridge'/>    <target chassisNr='2'/>    <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='0x02' function='0x0'/>   </controller>   <interface type='bridge'>    <mac address='52:54:00:69:c3:d7'/>    <source bridge='br0'/>    <target dev='vnet1'/>    <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/1'/>    <target port='0'/>    <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-HTPCFAMILYRM/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='pci' managed='yes'>    <driver name='vfio'/>    <source>     <address domain='0x0000' bus='0x83' slot='0x00' function='0x0'/>    </source>    <alias name='hostdev0'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>   </hostdev>   <hostdev mode='subsystem' type='pci' managed='yes'>    <driver name='vfio'/>    <source>     <address domain='0x0000' bus='0x83' slot='0x00' function='0x1'/>    </source>    <alias name='hostdev1'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>   </hostdev>   <hostdev mode='subsystem' type='usb' managed='no'>    <source>     <vendor id='0x045e'/>     <product id='0x0291'/>     <address bus='8' device='2'/>    </source>    <alias name='hostdev2'/>   </hostdev>   <hostdev mode='subsystem' type='usb' managed='no'>    <source>     <vendor id='0x20a0'/>     <product id='0x0001'/>     <address bus='2' device='10'/>    </source>    <alias name='hostdev3'/>   </hostdev>   <memballoon model='virtio'>    <alias name='balloon0'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>   </memballoon>  </devices> </domain>  GPU card...  root@unRAID:~# lspci -v -s 83:00.0 83:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 730] (rev a1) (prog-if 00 [VGA controller])     Subsystem: Device 196e:1119     Flags: bus master, fast devsel, latency 0, IRQ 66, NUMA node 1     Memory at f4000000 (32-bit, non-prefetchable) [size=16M]     Memory at b0000000 (64-bit, prefetchable) [size=128M]     Memory at ae000000 (64-bit, prefetchable) [size=32M]     I/O ports at dc00 [size=128]     Expansion ROM at f3f80000 [disabled] [size=512K]     Capabilities: [60] Power Management version 3     Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+     Capabilities: [78] Express Legacy Endpoint, MSI 00     Capabilities: [100] Virtual Channel     Capabilities: [128] Power Budgeting <?>     Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>     Kernel driver in use: vfio-pci  GPU audio...  root@unRAID:~# lspci -v -s 83:00.1 83:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)     Subsystem: Device 196e:1119     Flags: bus master, fast devsel, latency 0, IRQ 64, NUMA node 1     Memory at f3f7c000 (32-bit, non-prefetchable) [size=16K]     Capabilities: [60] Power Management version 3     Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+     Capabilities: [78] Express Endpoint, MSI 00     Kernel driver in use: vfio-pci Link to comment
andrewraynor Posted December 19, 2016 Share Posted December 19, 2016 UPDATE: Found a solution which is in line with the fix for OE/LE. I created /etc/modprobe.d/snd-hda-intel.conf and put the same line in it that is used for OE/LE (options snd-hda-intel enable_msi=1). Audio works as expected now.  I know that "demonic" audio is an issue for Nvidia based cards and there are fixes for Windows and OE/LE guests. However, I don't see a fix for Linux distro guests (Ubuntu 16.04.1 in my case). I'm doing a vanilla install and have only done an apt-get update/upgrade and installed OpenPHT...but I have the "demonic" audio bug.  The manual seems to only address Windows guests: http://lime-technology.com/wiki/index.php/UnRAID_6/VM_Guest_Support#Enable_MSI_for_Interrupts_to_Fix_HDMI_Audio_Support  Is there a Linux fix (non-OE/LE)?  XML...  <domain type='kvm' id='56'>  <name>HTPCFAMILYRM</name>  <uuid>f31215fd-5042-c086-4b96-ba7f8531458d</uuid>  <metadata>   <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>  </metadata>  <memory unit='KiB'>4194304</memory>  <currentMemory unit='KiB'>4194304</currentMemory>  <memoryBacking>   <nosharepages/>   <locked/>  </memoryBacking>  <vcpu placement='static'>2</vcpu>  <cputune>   <vcpupin vcpu='0' cpuset='10'/>   <vcpupin vcpu='1' cpuset='11'/>  </cputune>  <resource>   <partition>/machine</partition>  </resource>  <os>   <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>   <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>   <nvram>/etc/libvirt/qemu/nvram/f31215fd-5042-c086-4b96-ba7f8531458d_VARS-pure-efi.fd</nvram>  </os>  <features>   <acpi/>   <apic/>  </features>  <cpu mode='host-passthrough'>   <topology sockets='1' cores='1' threads='2'/>  </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/HTPCFAMILYRM/vdisk1.img'/>    <backingStore/>    <target dev='hdc' bus='virtio'/>    <boot order='1'/>    <alias name='virtio-disk2'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>   </disk>   <disk type='file' device='cdrom'>    <driver name='qemu' type='raw'/>    <source file='/mnt/user/isos/ubuntu-16.04.1-desktop-amd64.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>   <controller type='usb' index='0' model='nec-xhci'>    <alias name='usb'/>    <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>   </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'>    <model name='i82801b11-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'>    <model name='pci-bridge'/>    <target chassisNr='2'/>    <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='0x02' function='0x0'/>   </controller>   <interface type='bridge'>    <mac address='52:54:00:69:c3:d7'/>    <source bridge='br0'/>    <target dev='vnet1'/>    <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/1'/>    <target port='0'/>    <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-HTPCFAMILYRM/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='pci' managed='yes'>    <driver name='vfio'/>    <source>     <address domain='0x0000' bus='0x83' slot='0x00' function='0x0'/>    </source>    <alias name='hostdev0'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>   </hostdev>   <hostdev mode='subsystem' type='pci' managed='yes'>    <driver name='vfio'/>    <source>     <address domain='0x0000' bus='0x83' slot='0x00' function='0x1'/>    </source>    <alias name='hostdev1'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>   </hostdev>   <hostdev mode='subsystem' type='usb' managed='no'>    <source>     <vendor id='0x045e'/>     <product id='0x0291'/>     <address bus='8' device='2'/>    </source>    <alias name='hostdev2'/>   </hostdev>   <hostdev mode='subsystem' type='usb' managed='no'>    <source>     <vendor id='0x20a0'/>     <product id='0x0001'/>     <address bus='2' device='10'/>    </source>    <alias name='hostdev3'/>   </hostdev>   <memballoon model='virtio'>    <alias name='balloon0'/>    <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>   </memballoon>  </devices> </domain>  GPU card...  root@unRAID:~# lspci -v -s 83:00.0 83:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 730] (rev a1) (prog-if 00 [VGA controller])     Subsystem: Device 196e:1119     Flags: bus master, fast devsel, latency 0, IRQ 66, NUMA node 1     Memory at f4000000 (32-bit, non-prefetchable) [size=16M]     Memory at b0000000 (64-bit, prefetchable) [size=128M]     Memory at ae000000 (64-bit, prefetchable) [size=32M]     I/O ports at dc00 [size=128]     Expansion ROM at f3f80000 [disabled] [size=512K]     Capabilities: [60] Power Management version 3     Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+     Capabilities: [78] Express Legacy Endpoint, MSI 00     Capabilities: [100] Virtual Channel     Capabilities: [128] Power Budgeting <?>     Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>     Kernel driver in use: vfio-pci  GPU audio...  root@unRAID:~# lspci -v -s 83:00.1 83:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)     Subsystem: Device 196e:1119     Flags: bus master, fast devsel, latency 0, IRQ 64, NUMA node 1     Memory at f3f7c000 (32-bit, non-prefetchable) [size=16K]     Capabilities: [60] Power Management version 3     Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+     Capabilities: [78] Express Endpoint, MSI 00     Kernel driver in use: vfio-pci  I have 2 amd gpus. I can use kodi fine in a windows vm. But in openelec/libraelec template sound breaks up alot. Using either card. I tried installing not using template and got the same result.  Would you explain what to put in the snd-hda-intel.conf file please? Link to comment
amessydatum Posted January 11, 2017 Share Posted January 11, 2017 UPDATE: Found a solution which is in line with the fix for OE/LE. I created /etc/modprobe.d/snd-hda-intel.conf and put the same line in it that is used for OE/LE (options snd-hda-intel enable_msi=1). Audio works as expected now.  Fixed the problem for me, thanks a lot johnodon. I came by this thread very circuitously so I'm going to leave a few notes and summarize in hope of making this more googleable for others:  This gets rid of the crackling, demonic audio issue on linux guests (in my case Ubuntu 16.04) with an Nvidia GPU passthrough using HDMI audio by enabling Message Signaled Interrupts on the card. Simply create the file (as root) `/etc/modprobe.d/snd-hda-intel.conf` and fill it with the following:  options snd-hda-intel enable_msi=1  Reboot and the problem should be fixed. Link to comment
CHBMB Posted January 11, 2017 Share Posted January 11, 2017 John, you sure you didn't download Ubuntu Satanic Edition? Link to comment
methanoid Posted June 17, 2017 Share Posted June 17, 2017 Thanks John... was trying all sorts and re-installs and finally found this... Works a charm. Thank you! :-) Link to comment
eikum Posted December 30, 2017 Share Posted December 30, 2017 Thanks! Now the "clicking" if finally gone Link to comment
sipho102 Posted March 24, 2018 Share Posted March 24, 2018 I have been breaking my head about this issue issue and googled pretty much every thread in the ubuntu forums as I first thought it was a NVIDIA driver issue then went on to check alsa and pulseaudio settings to no avail. Helped me bump up my linux skills again but still was very frustrating only hearing stuttering and choppy audio the whole time. This simple switch fixed it. I am so thankful! Link to comment
GHunter Posted March 25, 2018 Share Posted March 25, 2018 Thanks for posting this fix. I just created Ubuntu and Linux Mint VM's yesterday and your fix solved my audio problems in both VM's. Link to comment
escapement Posted July 28, 2018 Share Posted July 28, 2018 You are my hero... found this on my first search... Worked a charm! Thanks John! Link to comment
paperblankets Posted April 4, 2019 Share Posted April 4, 2019 Dumb question...do I Quote  touch /etc/modprobe.d/snd-hda-intel.conf vi /etc/modprobe.d/snd-hda-intel.conf i options snd-hda-intel enable_msi=1 :wq  In unraid or is this a setting in my guest vm? Thanks for the clarification! Link to comment
twhipps86 Posted May 5, 2019 Share Posted May 5, 2019 Thank you so much!!! This solved my issue. Cheers!  # My software versions and GPU. unRAID 6.6.7 Ubuntu 18.04.2 LTS Virtual Machine GPU pass-through with 'ASUS GeForce GTX 1050 Ti PH-GTX1050TI-4G'  # From within the Ubuntu Guest OS, I did the following:  [1] Created the file. sudo touch /etc/modprobe.d/snd-hda-intel.conf  [2] Opened the file with nano text editor. sudo nano /etc/modprobe.d/snd-hda-intel.conf  [3] Added the following line, saved, and closed. options snd-hda-intel enable_msi=1  [4] Rebooted and issue was fixed!!! Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.