reluctantflux Posted October 19, 2014 Share Posted October 19, 2014 Instead of filling useful and informative threads with my questions, I figured I'll just make one place for it. So I believe I am one silly mistake away from having a Windows 8.1 WMC box up and running with GPU passthrough, but I can't get it to start. Here's the xml: <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>WMC8.1</name> <uuid>554cbf6b-aa75-4044-b1b3-c1005bea6064</uuid> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>4</vcpu> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='no'/> </os> <features> <acpi/> <apic eoi='on'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none' io='native'/> <source file='/mnt/user/VM/WindowsMediaCenter/WindowsMediaCenter.qcow2'/> <target dev='vdc' bus='virtio'/> <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/cache/iso/virtio-win-0.1-81.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:43:1e:7b'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </memballoon> </devices> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/> </qemu:commandline> </domain> When I go to start the machine using dmcias's new plugin he released today, I get the following: Error while starting domain: internal error: process exited while connecting to monitor: I have the storage for the qcow and virtio iso in the storages. Anything obvious that I'm missing? Thanks! EDITED TO ADD 10/20/2014: Many thanks to jonp and dmacias! For those coming in here looking for a sample 8.1 XML file, here's mine that is working: <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>WMC8.1</name> <uuid>554cbf6b-aa75-4044-b1b3-c1005bea6064</uuid> <memory unit='KiB'>7813120</memory> <currentMemory unit='KiB'>7812500</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>4</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='no'/> </os> <features> <acpi/> <apic eoi='on'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/user/VM/WindowsMediaCenter/WindowsMediaCenter.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/iso/virtio-win-0.1-81.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:06:62:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </memballoon> </devices> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/> </qemu:commandline> </domain> Quote Link to comment
rd_blair Posted October 19, 2014 Share Posted October 19, 2014 reluctantflux Did you: /usr/local/sbin/vfio-bind 0000:01:00.0 0000:01:00.1 What is in your syslinux.cfg ? Reed Quote Link to comment
reluctantflux Posted October 19, 2014 Author Share Posted October 19, 2014 default /syslinux/menu.c32 menu title Lime Technology prompt 0 timeout 50 label unRAID OS menu default kernel /bzimage append pcie_acs_override=downstream initrd=/bzroot label unRAID OS Safe Mode (no plugins) kernel /bzimage append initrd=/bzroot unraidsafemode label Memtest86+ kernel /memtest label Xen/unRAID OS kernel /syslinux/mboot.c32 append /xen --- /bzimage --- /bzroot label Xen/unRAID OS Safe Mode (no plugins) kernel /syslinux/mboot.c32 append /xen --- /bzimage --- /bzroot unraidsafemode I did run vfio-bind and confirmed with a lspci showing the devices using the vfio driver. 01:00.0 VGA compatible controller [0300]: AMD/ATI [Advanced Micro Devices, Inc.] Cape Verde XT [Radeon HD 7770 GHz Edition] [1002:683d] Subsystem: PC Partner Limited Device [174b:e244] Kernel driver in use: vfio-pci 01:00.1 Audio device [0403]: AMD/ATI [Advanced Micro Devices, Inc.] Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series] [1002:aab0] Subsystem: PC Partner Limited Device [174b:aab0] Kernel driver in use: vfio-pci Quote Link to comment
jonp Posted October 20, 2014 Share Posted October 20, 2014 Have you tried this: <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb0'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb0'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb0'/> Quote Link to comment
reluctantflux Posted October 20, 2014 Author Share Posted October 20, 2014 Ok, my issue was my hard drive config. I've worked that out, and the VM starts, and I can VNC to it. But then when I go to add the qemu commandline stuff, it'll say it saved successfully, but when I go back in, the qemu commandline section is gone. Here's my most recent xml: <domain type='kvm'> <name>WMC8.1</name> <uuid>554cbf6b-aa75-4044-b1b3-c1005bea6064</uuid> <memory unit='KiB'>7813120</memory> <currentMemory unit='KiB'>7812500</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>4</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='no'/> </os> <features> <acpi/> <apic eoi='on'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/user/VM/WindowsMediaCenter/WindowsMediaCenter.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/iso/virtio-win-0.1-81.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:06:62:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </memballoon> </devices> </domain> Here's what I've been adding between the <devices> and </domain> that doesn't get saved in the VM Manager plugin by dmacias. The VM is off while I am trying to make these changes. <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/> </qemu:commandline> Where is this XML file located? It hasn't defaulted to where my disk is. I was thinking of trying to edit it manually. Thanks! Quote Link to comment
dmacias Posted October 20, 2014 Share Posted October 20, 2014 Ok, my issue was my hard drive config. I've worked that out, and the VM starts, and I can VNC to it. But then when I go to add the qemu commandline stuff, it'll say it saved successfully, but when I go back in, the qemu commandline section is gone. Here's my most recent xml: <domain type='kvm'> <name>WMC8.1</name> <uuid>554cbf6b-aa75-4044-b1b3-c1005bea6064</uuid> <memory unit='KiB'>7813120</memory> <currentMemory unit='KiB'>7812500</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>4</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='no'/> </os> <features> <acpi/> <apic eoi='on'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/user/VM/WindowsMediaCenter/WindowsMediaCenter.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/iso/virtio-win-0.1-81.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:06:62:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </memballoon> </devices> </domain> Here's what I've been adding between the <devices> and </domain> that doesn't get saved in the VM Manager plugin by dmacias. The VM is off while I am trying to make these changes. <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/> </qemu:commandline> Where is this XML file located? It hasn't defaulted to where my disk is. I was thinking of trying to edit it manually. Thanks! The xml files is located in /etc/libvirt/qemu. But that won't work. You had it right in your first xml file. You have to add this to the top of your xml file when adding qemu:commandline arguments. Also if you remove the qemu arguments it will be removed. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> So it looks like this and if you want to change it then add the above line during edit <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>WMC8.1</name> <uuid>554cbf6b-aa75-4044-b1b3-c1005bea6064</uuid> <memory unit='KiB'>7813120</memory> <currentMemory unit='KiB'>7812500</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>4</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='no'/> </os> <features> <acpi/> <apic eoi='on'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/user/VM/WindowsMediaCenter/WindowsMediaCenter.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/iso/virtio-win-0.1-81.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:06:62:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </memballoon> </devices> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/> </qemu:commandline> </domain> Quote Link to comment
bungee91 Posted October 20, 2014 Share Posted October 20, 2014 The xml files is located in /etc/libvirt/qemu. But that won't work. You had it right in your first xml file. You have to add this to the top of your xml file when adding qemu:commandline arguments. Also if you remove the qemu arguments it will be removed. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> This problem has eluded me also when adding passthrough/<qemu:commandline> and the changes I made just being deleted (as I am sure more individuals also). Is there anyway instead of just deleting the changes done to the XML (and baffling as to why) for your editor to add that line to the top when/if needed? It seems like it does the opposite "...if you remove the qemu arguments it will be removed.". Loving the plugin, thanks for all the effort! Quote Link to comment
reluctantflux Posted October 20, 2014 Author Share Posted October 20, 2014 Bahaha! I feel like a wizard! This is so awesome, thank you! GPU passthrough is working! You guys are geniuses! Quote Link to comment
dmacias Posted October 20, 2014 Share Posted October 20, 2014 The xml files is located in /etc/libvirt/qemu. But that won't work. You had it right in your first xml file. You have to add this to the top of your xml file when adding qemu:commandline arguments. Also if you remove the qemu arguments it will be removed. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> This problem has eluded me also when adding passthrough/<qemu:commandline> and the changes I made just being deleted (as I am sure more individuals also). Is there anyway instead of just deleting the changes done to the XML (and baffling as to why) for your editor to add that line to the top when/if needed? It seems like it does the opposite "...if you remove the qemu arguments it will be removed.". Loving the plugin, thanks for all the effort! The reason they are deleted is because of libvirt. If the xmlns line isn't there then it doesn't know what to do with qemu:commandline. It will happen with my editor (which just takes xml and sends it to libvirt), the command line or adding xml file manually. Same goes for removing qemu args. Libvirt will remove the xmlns line because it's not needed. Should be easy enough to fix. I will add a check for qemu:commandline and replace kvm line with xmlns line on save. Quote Link to comment
bungee91 Posted October 20, 2014 Share Posted October 20, 2014 The xml files is located in /etc/libvirt/qemu. But that won't work. You had it right in your first xml file. You have to add this to the top of your xml file when adding qemu:commandline arguments. Also if you remove the qemu arguments it will be removed. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> This problem has eluded me also when adding passthrough/<qemu:commandline> and the changes I made just being deleted (as I am sure more individuals also). Is there anyway instead of just deleting the changes done to the XML (and baffling as to why) for your editor to add that line to the top when/if needed? It seems like it does the opposite "...if you remove the qemu arguments it will be removed.". Loving the plugin, thanks for all the effort! The reason they are deleted is because of libvirt. If the xmlns line isn't there then it doesn't know what to do with qemu:commandline. It will happen with my editor (which just takes xml and sends it to libvirt), the command line or adding xml file manually. Same goes for removing qemu args. Libvirt will remove the xmlns line because it's not needed. Should be easy enough to fix. I will add a check for qemu:commandline and replace kvm line with xmlns line on save. Fantastic, thanks! Quote Link to comment
reluctantflux Posted October 20, 2014 Author Share Posted October 20, 2014 So it was working this morning, and then I got into work and noticed that it was on the array and not the cache SSD. So I moved it and have had nothing but trouble. Same old 'process exited while connecting to monitor:' <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>WMC8.1</name> <uuid>554cbf6b-aa75-4044-b1b3-c1005bea6064</uuid> <memory unit='KiB'>7813120</memory> <currentMemory unit='KiB'>7812500</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>4</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='no'/> </os> <features> <acpi/> <apic eoi='on'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/cache/vm/wmc.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/iso/virtio-win-0.1-81.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:06:62:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </memballoon> </devices> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/> </qemu:commandline> </domain> If I remove this part, then the VM will at least turn on (obviously it won't boot into windows). I'm not sure why this wouldn't work with just moving the file location. I checked permissions. They're set to 644. I also have the wmc.qcow2 set in the storage pool tab. <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/cache/vm/wmc.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> Sorry for being a pain, and thanks again. Quote Link to comment
jonp Posted October 20, 2014 Share Posted October 20, 2014 So it was working this morning, and then I got into work and noticed that it was on the array and not the cache SSD. So I moved it and have had nothing but trouble. Same old 'process exited while connecting to monitor:' <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>WMC8.1</name> <uuid>554cbf6b-aa75-4044-b1b3-c1005bea6064</uuid> <memory unit='KiB'>7813120</memory> <currentMemory unit='KiB'>7812500</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>4</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> <bootmenu enable='no'/> </os> <features> <acpi/> <apic eoi='on'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='1'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/cache/vm/wmc.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/iso/virtio-win-0.1-81.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:06:62:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </memballoon> </devices> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/> </qemu:commandline> </domain> If I remove this part, then the VM will at least turn on (obviously it won't boot into windows). I'm not sure why this wouldn't work with just moving the file location. I checked permissions. They're set to 644. I also have the wmc.qcow2 set in the storage pool tab. <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/cache/vm/wmc.qcow2'/> <target dev='vdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> Sorry for being a pain, and thanks again. Is your cache device formatted with btrfs or another file system? Quote Link to comment
reluctantflux Posted October 20, 2014 Author Share Posted October 20, 2014 My cache drive is formatted as btrfs. I've tried bus=virtio and ide and couldn't get those to work either. When I have gotten it to work, it had to be set to SATA because of the way I created the VDI in virtualbox before I did the conversion to qcow2. Quote Link to comment
reluctantflux Posted October 21, 2014 Author Share Posted October 21, 2014 Corrupt image from being on my cache that was trying to move to my array. Rebuilt from my vdi file. I had to reboot the host in order to get the proper error message, though. Quote Link to comment
reluctantflux Posted October 21, 2014 Author Share Posted October 21, 2014 My system is up and running with GPU and USB passthrough. Thanks to everyone for their help! For those that are running Windows 8.1 Media Center. What are you doing for Live TV? Were you able to get around the stupid Display Driver Error? I had to use the MissingRemote's Digital Cable Advisor hack. I have a Sapphire Radeon HD 7770 that worked fine before my rebuild to Unraid. Quote Link to comment
reluctantflux Posted October 22, 2014 Author Share Posted October 22, 2014 I worked through this and finally got live tv to semi-work. I can record tv, but the only way to get live tv to work is to start live tv, exit full screen to windowed/minimized mode, and then go back to full screen. Annoying, but I'll crack it eventually. I ended up going out and getting a new keyboard with trackpad for this, but its causing my VM to crash when I pass it through. Does this make sense to anyone? I've tried preinstalling the drivers for it, but that's not working. Is there any way to passthrough a usb device other than what I'm doing here: <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x045e'/> <product id='0x0800'/> </source> </hostdev> Quote Link to comment
reluctantflux Posted October 23, 2014 Author Share Posted October 23, 2014 Turns out the PCI slots on my motherboard went bad, so there go my storage controllers. It's possible that whole chipset went bad, and that's why the USB keyboard was causing a seize up as well. Time for a new board and proc. Quote Link to comment
jonp Posted October 23, 2014 Share Posted October 23, 2014 Turns out the PCI slots on my motherboard went bad, so there go my storage controllers. It's possible that whole chipset went bad, and that's why the USB keyboard was causing a seize up as well. Time for a new board and proc. Yikes! Sorry to hear that! At least you found out your root cause!! Quote Link to comment
wewantrice Posted October 23, 2014 Share Posted October 23, 2014 I worked through this and finally got live tv to semi-work. I can record tv, but the only way to get live tv to work is to start live tv, exit full screen to windowed/minimized mode, and then go back to full screen. Annoying, but I'll crack it eventually. If you can solve this let me know. Based on this link (http://digitalmediaphile.com/index.php/2012/12/16/a-fix-for-wmc8-hdcp-hyper-v-video-display-conflict/) I do not believe Live TV will work seamlessly in a virtualized environment I am currently running 8.1 under KVM, I did find that is possible to run an Extender (in my case XBOX 360) pointed at my Windows 8.1 VM and watch Live TV that way. Quote Link to comment
reluctantflux Posted October 25, 2014 Author Share Posted October 25, 2014 I can get live tv to work, I just need to minimize and maximize WMC after I start the stream in order for the error to go away. I've seen this issue before and it's dumb luck and 5 hours wasted before some random thing fixes it. I'm pretty sure I can get it to work, and if not, at least ServerWMC will work and I'll use a different front end that's not so fickle. I do have a new issue. So my new All-in-One Microsoft keyboard with touchpad that was causing my vm to crash before works with my new hardware. But if I don't give it any input for 10 seconds, it stops working. I believe this is a function of the keyboard going into a sleep mode in order to save power, but when it comes back, it never reconnects. I can do a device manager "scan for hardware changes" and it will find it again, until I don't touch a key or touchpad for 10 seconds. Has anyone seen this issue and found a way around it? Has anyone successfully passed through a USB controller instead of just devices? Having access to that layer may provide better stability. Thanks! Oh, and one more thing, in my attempt to fix the display driver error in WMC, I uninstalled a bunch of items in device manager, of which I believe may have been keeping my clock synced, because now if I turn off my VM, when I boot it back up, it'll have incorrect time (if I do a restart from windows, time persists). Thoughts? Quote Link to comment
jonp Posted October 25, 2014 Share Posted October 25, 2014 I worked through this and finally got live tv to semi-work. I can record tv, but the only way to get live tv to work is to start live tv, exit full screen to windowed/minimized mode, and then go back to full screen. Annoying, but I'll crack it eventually. If you can solve this let me know. Based on this link (http://digitalmediaphile.com/index.php/2012/12/16/a-fix-for-wmc8-hdcp-hyper-v-video-display-conflict/) I do not believe Live TV will work seamlessly in a virtualized environment I am currently running 8.1 under KVM, I did find that is possible to run an Extender (in my case XBOX 360) pointed at my Windows 8.1 VM and watch Live TV that way. The link you provided is specific to Hyper-V. It doesn't affect KVM. Quote Link to comment
wewantrice Posted October 26, 2014 Share Posted October 26, 2014 Ah my fault. With my setup I am unable to view any live TV for some reason. Quote Link to comment
reluctantflux Posted October 27, 2014 Author Share Posted October 27, 2014 wewantrice, is there a certain spot you're stuck at? Are you able to record tv, just not watch live tv? Have you tried starting a live tv stream and then minimizing and maximizing the WMC window? Quote Link to comment
wewantrice Posted October 27, 2014 Share Posted October 27, 2014 Yeah I'm getting a "Display Driver Error" anytime I try to watch Live TV. I tried your maximize/minimize trick no dice. I'm using an HD Homerun Prime for Live TV, all of my other HTPCs in the house stream fine and an XBOX 360 pointed at the Virtualized Windows 8.1 system works fine. My suspicion is that most of my cable providers channels are now flagged copy once/DRM hence my problems displaying video. Reluctantflux what is your setup like? Are you viewing over the air streams or are you able to view cop protected channels? Quote Link to comment
jonp Posted October 28, 2014 Share Posted October 28, 2014 Yeah I'm getting a "Display Driver Error" anytime I try to watch Live TV. I tried your maximize/minimize trick no dice. I'm using an HD Homerun Prime for Live TV, all of my other HTPCs in the house stream fine and an XBOX 360 pointed at the Virtualized Windows 8.1 system works fine. My suspicion is that most of my cable providers channels are now flagged copy once/DRM hence my problems displaying video. Reluctantflux what is your setup like? Are you viewing over the air streams or are you able to view cop protected channels? What kind of connection is going into the HD Homerun? Quote Link to comment
Recommended Posts
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.