Jump to content

ghost82

Members
  • Posts

    2,722
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by ghost82

  1. From a general point of view: 1. you need a vbios to pass because the igpu is set as boot vga 2. you need to set the gpu in the target vm as a multifunction device (search in this forum about how to do it) 3. you need to modify your syslinux config to add video=efifb:off because currently efifb is attached to the vga I suggest also to read this discussion: https://forums.unraid.net/topic/112649-amd-apu-ryzen-5700g-igpu-passthrough-on-692/ with other users trying to do the same thing.
  2. I would say, yes, but not at the same time. So the only thing you can do is setup 2 virtual machines, each with its origin account, both with the gpu passthrough, but you will be able to run a vm at a time. If you want both vms simultaneously you need 2 gpus to be passed through. Update: oh wait...windows has multi login accounts...I think you should be able to setup one single vm with the gpu passed through, with two accounts..but have a look at the system requirements for cpu and graphics, taking into account that the use of the graphic will be doubled. Once the vm is setup it can be used from their laptops, by connecting to the vm with remote connections, parsec for example, pointing at the proper windows account.
  3. Don't use windows drivers but download and install drivers downloaded from nvidia website. Maybe windows drivers are outdated and nvidia didn't allow consumer gpu passthorugh in the past. If that doesn't work, attach diagnostics.
  4. It would be extremely helpful if you describe in details what you did, what is your gpu, pasting also the config files you modified/created. Describe all you did from the beginning, in details.
  5. You have a lot of split lock detections, you can try to set to off split_lock_detect, so that "split-lock operations are not detected and nothing is done when they occur." Just modify the append line of the syslinux configuration like this: append initrd=/bzroot split_lock_detect=off Not sure if this will make a difference.
  6. In unraid network preferences, I can see bond0 in syslog and in ethtool output.
  7. you don't have to "find" anything to set a target mac address in a virtual machine. A mac address is simply 6 octects, so you can randomly generate one. However, in special cases, you may want to emulate a mac address belonging to a certain brand: of that 6 octects the first 3 identify the manufacturer. For example in my mac os vm, I prefer to set the mac of the emulated network device to one belonging to apple: c8:2a:14:xx:xx:xx where c8:2a:14 identify 'Apple' and the last 3 octects are randomly generated. There are public databases to identify mac address, like: https://macaddress.io/ It's not a good idea to have 2 identical mac addresses in the same network, generate a random one and set it in the vm. If you are lazy you can use online generators: https://miniwebtool.com/mac-address-generator/
  8. Not a network expert, but why you have bond0 if you have only eth0? What are you bonding eth0 with? Maybe I'm wrong but I would disable bonding and set only bridging (br0) on eth0. After this, check if you have connection in the host, then start vm, check if the virtio device is recognized in the guest, then check for internet in the vm. Xml is ok.
  9. With a lot of imagination, translating from chinese to my language to understand all the steps, check/confirm that: 1. You have a quadro P2000 gpu 2. command 'mdevctl types' returns a list of supported mdev types, including nvidia-65 3. You edited and override the nvidia-65 profile (/etc/vgpu_unlock/profile_override.toml) with the correct pci_id and pci_device_id 4. You generated a unique uuid and you wrote the following lines in '/boot/config/Nvmdev' to start the mdev device: sleep 5 mdevctl start -u HEREGOESYOURUUID -p HEREGOESYOURSOURCEADDRESS -t nvidia-65 HEREGOESYOURUUID is the uuid HEREGOESYOURSOURCEADDRESS is the source address of the gpu, in the form 0000:xx:00.0, for example 0000:06:00.0 (source domain:bus:slot.function) 5. The uuid defined in '/boot/config/Nvmdev' is the same set at the bottom of the xml, here: <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='off'> <source> <address uuid='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </source> <alias name='ua-mdev'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </hostdev> and here: <qemu:commandline> <qemu:arg value='-uuid'/> <qemu:arg value='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </qemu:commandline>
  10. I can only speak about correct syntax in the xml, I understood what you want to achieve but I don't know how to do it. I can suggest to change the target address of the mdev device and of the qxl video, so you could connect again with the built in vnc (delete cache in the browser). <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>Windows 10</name> <uuid>e625f9bd-9c40-f9f3-2c61-be464c8e742d</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>10</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='10'/> <vcpupin vcpu='2' cpuset='1'/> <vcpupin vcpu='3' cpuset='11'/> <vcpupin vcpu='4' cpuset='2'/> <vcpupin vcpu='5' cpuset='12'/> <vcpupin vcpu='6' cpuset='3'/> <vcpupin vcpu='7' cpuset='13'/> <vcpupin vcpu='8' cpuset='4'/> <vcpupin vcpu='9' cpuset='14'/> </cputune> <os> <type arch='x86_64' machine='pc-q35-7.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/e625f9bd-9c40-f9f3-2c61-be464c8e742d_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='5' threads='2'/> <cache mode='passthrough'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains/Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/cn_windows_10_multiple_editions_x64_dvd_6848463.iso'/> <target dev='hda' bus='sata'/> <readonly/> <boot order='2'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x8'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x9'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0xa'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <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='0x14'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0xb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/> </controller> <controller type='pci' index='7' model='pcie-to-pci-bridge'> <model name='pcie-pci-bridge'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <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'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:ab:8f:a2'/> <source bridge='br1'/> <model type='virtio-net'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='off'> <source> <address uuid='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </source> <alias name='ua-mdev'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </hostdev> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </memballoon> </devices> <qemu:override> <qemu:device alias='ua-mdev'> <qemu:frontend> <qemu:property name='x-pci-vendor-id' type='unsigned' value='4318'/> <qemu:property name='x-pci-device-id' type='unsigned' value='7216'/> <qemu:property name='x-pci-sub-vendor-id' type='unsigned' value='4318'/> <qemu:property name='x-pci-sub-device-id' type='unsigned' value='7216'/> <qemu:property name='driver' type='string' value='vfio-pci-nohotplug'/> </qemu:frontend> </qemu:device> </qemu:override> <qemu:commandline> <qemu:arg value='-uuid'/> <qemu:arg value='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </qemu:commandline> </domain>
  11. My fault, x-pci-..... properties are expected to be unsigned integers, not strings, so this should be correct as far as the syntax: <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>Windows 10</name> <uuid>e625f9bd-9c40-f9f3-2c61-be464c8e742d</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>10</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='10'/> <vcpupin vcpu='2' cpuset='1'/> <vcpupin vcpu='3' cpuset='11'/> <vcpupin vcpu='4' cpuset='2'/> <vcpupin vcpu='5' cpuset='12'/> <vcpupin vcpu='6' cpuset='3'/> <vcpupin vcpu='7' cpuset='13'/> <vcpupin vcpu='8' cpuset='4'/> <vcpupin vcpu='9' cpuset='14'/> </cputune> <os> <type arch='x86_64' machine='pc-q35-7.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/e625f9bd-9c40-f9f3-2c61-be464c8e742d_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='5' threads='2'/> <cache mode='passthrough'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains/Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/cn_windows_10_multiple_editions_x64_dvd_6848463.iso'/> <target dev='hda' bus='sata'/> <readonly/> <boot order='2'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x8'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x9'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0xa'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <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='0x14'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0xb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/> </controller> <controller type='pci' index='7' model='pcie-to-pci-bridge'> <model name='pcie-pci-bridge'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <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'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:ab:8f:a2'/> <source bridge='br1'/> <model type='virtio-net'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/> </video> <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='off'> <source> <address uuid='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </source> <alias name='ua-mdev'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </hostdev> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </memballoon> </devices> <qemu:override> <qemu:device alias='ua-mdev'> <qemu:frontend> <qemu:property name='x-pci-vendor-id' type='unsigned' value='4318'/> <qemu:property name='x-pci-device-id' type='unsigned' value='7216'/> <qemu:property name='x-pci-sub-vendor-id' type='unsigned' value='4318'/> <qemu:property name='x-pci-sub-device-id' type='unsigned' value='7216'/> <qemu:property name='driver' type='string' value='vfio-pci-nohotplug'/> </qemu:frontend> </qemu:device> </qemu:override> <qemu:commandline> <qemu:arg value='-uuid'/> <qemu:arg value='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </qemu:commandline> </domain> 4318/7216 are simply the result of a conversion from hex to decimal.
  12. Does this work? <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>Windows 10</name> <uuid>e625f9bd-9c40-f9f3-2c61-be464c8e742d</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>10</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='10'/> <vcpupin vcpu='2' cpuset='1'/> <vcpupin vcpu='3' cpuset='11'/> <vcpupin vcpu='4' cpuset='2'/> <vcpupin vcpu='5' cpuset='12'/> <vcpupin vcpu='6' cpuset='3'/> <vcpupin vcpu='7' cpuset='13'/> <vcpupin vcpu='8' cpuset='4'/> <vcpupin vcpu='9' cpuset='14'/> </cputune> <os> <type arch='x86_64' machine='pc-q35-7.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/e625f9bd-9c40-f9f3-2c61-be464c8e742d_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='5' threads='2'/> <cache mode='passthrough'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains/Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/cn_windows_10_multiple_editions_x64_dvd_6848463.iso'/> <target dev='hda' bus='sata'/> <readonly/> <boot order='2'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x8'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x9'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0xa'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <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='0x14'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0xb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/> </controller> <controller type='pci' index='7' model='pcie-to-pci-bridge'> <model name='pcie-pci-bridge'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <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'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:ab:8f:a2'/> <source bridge='br1'/> <model type='virtio-net'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/> </video> <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='off'> <source> <address uuid='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </source> <alias name='ua-mdev'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </hostdev> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </memballoon> </devices> <qemu:override> <qemu:device alias='ua-mdev'> <qemu:frontend> <qemu:property name='x-pci-vendor-id' type='string' value='0x10DE'/> <qemu:property name='x-pci-device-id' type='string' value='0x1c30'/> <qemu:property name='x-pci-sub-vendor-id' type='string' value='0x10DE'/> <qemu:property name='x-pci-sub-device-id' type='string' value='0x1c30'/> <qemu:property name='driver' type='string' value='vfio-pci-nohotplug'/> </qemu:frontend> </qemu:device> </qemu:override> <qemu:commandline> <qemu:arg value='-uuid'/> <qemu:arg value='0e007852-f5bb-42b9-8b13-9fde963cf217'/> </qemu:commandline> </domain>
  13. What version of unraid are you running? libvirt (xml) sintax changed from what you pasted.. If you are using the latest version of unraid (and I strongly suggest to use it) the -set argument was deprecated by libvirt and you need to use the newer sintax (qemu:override just after the devices closing tag <-- you missed it in your copy/paste?). Just assign a custom alias (and note that user aliases must begin with ua-) and then assign properties with qemu:override This should translate to: <alias name='ua-aliasname'/> This goes inside the hostdev block of your device ... ... </devices> <qemu:override> <qemu:device alias='ua-aliasname'> <qemu:frontend> <qemu:property name='x-pci-vendor-id' type='string' value='0x10DE'/> </qemu:frontend> <qemu:frontend> <qemu:property name='x-pci-device-id' type='string' value='0x1c30'/> </qemu:frontend> <qemu:frontend> <qemu:property name='x-pci-sub-vendor-id' type='string' value='0x10DE'/> </qemu:frontend> <qemu:frontend> <qemu:property name='x-pci-sub-device-id' type='string' value='0x1c30'/> </qemu:frontend> <qemu:frontend> <qemu:property name='driver' type='string' value='vfio-pci-nohotplug'/> </qemu:frontend> </qemu:device> </qemu:override> </domain> As far as the vfio-pci-nohotplug I think you can assign hotplug='off' to the pcie-root-port the device is attached to, for example (this is my gpu): <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x06' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/> </hostdev> Target bus is 0x10, this means it's attached to the pcie-root-port with index='10': <controller type='pci' index='10' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='10' port='0x31' hotplug='off'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> Note the hotplug='off' And as far as the uuid, why are using it as a custom qemu arg? you can set it in the xml at the top. If for whatever reason you need that uuid arg it should still work with qemu:commandline, so: </devices> <qemu:override> <qemu:device alias='ua-aliasname'> <qemu:frontend> <qemu:property name='x-pci-vendor-id' type='string' value='0x10DE'/> </qemu:frontend> <qemu:frontend> <qemu:property name='x-pci-device-id' type='string' value='0x1c30'/> </qemu:frontend> <qemu:frontend> <qemu:property name='x-pci-sub-vendor-id' type='string' value='0x10DE'/> </qemu:frontend> <qemu:frontend> <qemu:property name='x-pci-sub-device-id' type='string' value='0x1c30'/> </qemu:frontend> <qemu:frontend> <qemu:property name='driver' type='string' value='vfio-pci-nohotplug'/> </qemu:frontend> </qemu:device> </qemu:override> <qemu:commandline> <qemu:arg value='-uuid'/> <qemu:arg value='xxxxxxxxxxxxxxxxxxx'/> </qemu:commandline> </domain>
  14. In my opinion the culprit here is not using the rom file with the gpu being marked as boot vga. The shadowed rom of a boot gpu is not 1:1 of the original, that's why it's mandatory to pass a bios file. Anyway, just follow all the steps
  15. dumps have no extension, you can use .rom, .dump, .whateveryouwant If the unraid gui requests a .rom file (I don't rememeber if it's the case) just change from .dump to .rom, it will change nothing.
  16. Try this attached vbios if you go nowhere trying to dump yours. gt710rom.dump
  17. Hi, try these steps: General considerations: 1. first you have to pass a vbios for the gpu, because, assuming nothing changed from the logs you attached, the GT 710 is set as boot vga by the system: Mar 17 12:15:50 Tower kernel: pci 0000:04:00.0: vgaarb: setting as boot VGA device 2. I would prefer ovmf (uefi) instead of seabios, so you need to unbind efifb; you already modified the syslinux config, so nothing to do here: Mar 17 12:15:50 Tower kernel: Command line: BOOT_IMAGE=/bzimage video=efifb:off initrd=/bzroot 3. If I remember well the GT 710 may require unsafe interrupts to be enabled, just do it from the unraid gui ------------------- Steps: 1. Dump your vbios file (it's highly the preferred way, but if you have no way to dump it go to step 2 and try to use the vbios file attached in the next post, I downloaded and modified one with the same device id (10DE 128B) and same subsystem id (19DA 6326) of your gpu, so I'm confident it should work) Open an unraid terminal and type the following commands, after each line press enter: echo "0000:04:00.0" > /sys/bus/pci/drivers/vfio-pci/unbind cd /sys/bus/pci/devices/0000:04:00.0/ echo 1 > rom cat rom > /mnt/user/yoursharename/gt710rom.dump echo 0 > rom echo "0000:04:00.0" > /sys/bus/pci/drivers/vfio-pci/bind Here I'm assuming the address of the vga, 04:00.0, didn't change from your latest logs First command could return a 'no such device', if it is, nothing wrong, just proceed On the fourth command change the target directory to point to a share you have on your system Last command only if you did not receive an error ('no such device') for the first command Since the gpu is set as boot vga you could not be able to dump the gpu rom easily, in this case you have 2 choices: a) boot windows bare metal and dump the rom with gpu-z, then strip with an hex editor the nvdia flash header (preferred) b) download a rom from techpowerup and strip with an hex editor the nvdia flash header (not preferred) 2. Double check the syslinux config to make sure that video=efifb:off is still there 3. Enable unsafe interrupts for vfio in unraid gui: Settings -> VM -> change "VFIO allow unsafe interrupts" to Yes 4. Double check both audio and video are attached to vfio at boot (you already set them, so there should nothing to do here) 5. Reboot unraid 6. Create a new windows vm with ovmf, set the gpu as vnc, do not pass the gpu yet 7. Install windows, finally install a vnc server inside the vm, like realvnc or similar, or if it's available in your windows distro enable remote desktop; make sure the vm has internet access, change the ip address of the vm to a static ip so it will be easier to connect to it later. Download the nvidia webdrivers for your gt 710 and save them somewhere in the vm. Shutdown the vm 8. Change the settings of the vm, remove the primary vnc gpu, passthrough the gt 710 (video and audio) and choose the vbios file you saved before; Switch to xml view and manually change the gpu block (audio and video) to enable multifunction,to: <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </source> <rom file='/path-to-vbios/gt710rom.dump'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/> </hostdev> Note1: target addresses may be different for your case (04:00.0/1); just add multifunction='on' and make sure that video and audio are on same bus, same slot and different function in the target addresses Note2: path to vbios (/path-to-vbios/) is obviously different in your case 9. Connect a monitor to the gpu and then start the vm; here there are 2 possibilities: 9a- you have video output: install inside the vm the nvidia drivers and uninstall (if you want) the vnc server/disable remote desktop 9b- you don't have a video output on the monitor: connect directly to the vm from a second device in the lan, pointing to the static ip you set before, install nvidia drivers and see if you have video output
  18. Yes, I confirm cpu(s) and ram can be used by the host (unraid) and they are not locked/reserved when the vm is not running.
  19. I read about this a couple of times in the forum, and indeed it seems a bug in unraid. The users solved the issue by deleting the network config in unraid, and creating a new one from scratch. Then magically it seemed the network options were again available in the vm settings.
  20. Having a working gpu passthrough in mac os can be a nightmare. Have a look at the dortania website about gpu and hackintosh compatibility. Note also that we have an additional issue in our vms: the amd gpu reset bug. Unraid should have a patched kernel for this but some gpus may not work correctly when rebooting the vm. As far as I know only the amd 6000 series has not this bug, I have a 6900 xt that works really well, but hey..it's expensive! Note also that unless you plan to stick with catalina, or patch the root of the os in newer oses, apple removed the nvidia drivers. I have no experience with igpu, still running a dual v1 xeon build, but if having a gpu passed through is difficult, having an igpu passed through is VERY difficult.
  21. Apart from what I wrote I have nothing more to add...I hope it's only a user error and that it could work. If you want, contact me in private and I can have a look remotely. I'm located in Italy so take into account gmt +1
  22. Try to increase the ram in the vm. Try with 2 gb, then if it doesn't work and you can, to 4 gb. I think 2 gb should not fail.
  23. It seems it doesn't support uefi and it's too old, for me it's a no go. Apple os uses a lot of gpu acceleration, more than any other os, so as you found, no gpu means laggy and near unusable system.
  24. Unfortunatly it seems Battleye is checking several things, and unfortunately some of these checks cannot be bypassed with a simple xml edit. One has to build qemu from source (and maybe also ovmf), after changing some parts of the source code, and edit xml manually to change hdd names, usb names, cpuid, system bios data, motherboard manufacturer and timing checks, no other virtual devices, and also some windows registry keys. Not simple at all, banning vms in this way is simply bullshit...such closed minds, why not understanding that vms are the future...they're saying that 90% of vms are used for cheating...if they have these statistics why not build an anti cheat that checks for regular vm use... Having said that, even if you bypass all the checks and you are not getting banned you are breaking their tos.
  25. Re create the issue and then attach diagnostics without rebooting
×
×
  • Create New...