Can't get passed UEFI boot


Recommended Posts

I have been trying to get my MSI GTX 970 videocard passedthrough to Windows without any success. Tried most things as suggested by the forum and the wiki.

I did manage to get into Windows 8.1 with the Seabios and I440fx setting. But ran into the code 43 nvidia issue. When downloading the latest driver, window crashes on reboot: BSOD.

 

A thing I did not yet try but would like to do, is booting in UEFI via OVMF. However, I cannot get passed the boot shell prompt. When trying fs0: it states it fs0: is an invalid mapping.

When typing exit, I can go through the boot menu. But whatever I do, I get back to the shell prompt one way or another.  I know my motherboard (X9SCM-IIF) supports UEFI. I have a CPU is XEON. Are there any particular settings I am missing out on?

Screen_Shot_2015-07-29_at_15_54_50.png.f7f620534ece35d855f8fe5ecf22c5a9.png

Link to comment

When you start the VM, immediately start tapping the delete key to bring you to the OVMF "BIOS" (I doubt it's technically a BIOS). If you get to the shell prompt, type "reset" and try again.

 

From the "BIOS", you can set boot order and boot configurations. There's another thread stating that this information is shared between all OVMF VMs (or more likely that it resets on UnRAID reboot?), so this could be part of your problem. Essentially, you want to find an "Misc" device - this should be the VM's primary volume and should allow you to boot no issues. I'm sticking with SeaBIOS for now.

 

Side note, possibly related: I was getting blue screens due to testing different GPU configurations. I got enough that I corrupted the install and it was unrecoverable. You might need to do another install.

Link to comment

OK I'll probably also have a better bed staying with SEABIOS for now.... 

As JONP suggested I put the Hyper-V back on and at least it is booting again into window using SEABIOS. One step closer ;-)

But I am back to square one on the 43 error of the video card, which now has the latest drivers.

Link to comment

OK I'll probably also have a better bed staying with SEABIOS for now.... 

As JONP suggested I put the Hyper-V back on and at least it is booting again into window using SEABIOS. One step closer ;-)

But I am back to square one on the 43 error of the video card, which now has the latest drivers.

 

Unless he said something elsewhere, he wanted this set to "off", no Hyper-v!

If it is on you will need to use old drivers for code 43 to not appear.

So current drivers would be Hyper-v = No, old drivers (340.52 or previous) you can use Hyper-v = Yes.

Link to comment

Got a step further... in addition to my GPU, also a generic display adapter shows up under the device manager, although I am not passing anything through besides my GTX.

When I disable the generic display adapter and reboot, the GPU goes from an error 43 to error 12: this device can find enough free resources ?! Anyone a clue how to resolve this?

I disables as much as I can under hardware. The only options I had was to disable the cd-roms...

 

Problem status is reporting: Conflicting Address Range. The specified address range conflicts with the address space.

 

Screen_Shot_2015-07-31_at_09_14_27.png.4306d870dc4f92b557b562b339904f26.png

Link to comment

Got a step further... in addition to my GPU, also a generic display adapter shows up under the device manager, although I am not passing anything through besides my GTX.

When I disable the generic display adapter and reboot, the GPU goes from an error 43 to error 12: this device can find enough free resources ?! Anyone a clue how to resolve this?

I disables as much as I can under hardware. The only options I had was to disable the cd-roms...

 

Problem status is reporting: Conflicting Address Range. The specified address range conflicts with the address space.

 

Please share your xml.

Link to comment

Sure no problem:

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

  <name>Windows_Test</name>

  <uuid>68577d45-f921-15a7-ccdc-f7583935e647</uuid>

  <metadata>

    <vmtemplate name="Custom" icon="windows.png" os="windows"/>

  </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='2'/>

    <vcpupin vcpu='1' cpuset='3'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='2' threads='1'/>

  </cpu>

  <clock offset='localtime'>

    <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/bin/qemu-system-x86_64</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw' cache='writeback'/>

      <source file='/mnt/disks/vmdata/Windows_Test/vdisk1.img'/>

      <target dev='hdc' bus='virtio'/>

      <boot order='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

    </disk>

    <controller type='usb' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>

    </controller>

    <controller type='pci' index='0' model='pci-root'/>

    <controller type='virtio-serial' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:38:60:b2'/>

      <source bridge='br0'/>

      <model type='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

    </interface>

    <serial type='pty'>

      <target port='0'/>

    </serial>

    <console type='pty'>

      <target type='serial' port='0'/>

    </console>

    <channel type='unix'>

      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Windows_Test.org.qemu.guest_agent.0'/>

      <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'/>

    <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>

    <video>

      <model type='vmvga' vram='16384' heads='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </video>

    <memballoon model='virtio'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

    </memballoon>

  </devices>

  <qemu:commandline>

    <qemu:arg value='-device'/>

    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.0,multifunction=on'/>

  </qemu:commandline>

</domain>

 

Link to comment

Looks like you have been playing manually here, I'd recommend against that.

 

You have both VNC and a passthrough GPU assigned to the VM, which is not supported and in general a bad idea.

However, you also don't have any input devices defined to control the VM once you remove the VNC part.

 

So as much as my edits below may help you, you won't be able to DO anything but see a pretty picture.

 

I would delete this VM, but not the image.

Add VM from the editor.

Set CPU/resources (ram) as you prefer.

Map the disk image you already have for this VM.

No need to map virtio, or install path.

Select your GPU, and sound card (I'd assume you'd want this, it is not in your XML now).

Select a USB devices or two for keyboard/mouse.

Start VM

 

You should be good!

 

Manually this looks to be your issues, but note you will have no way to control it without USB peripheral.

 

Remove this

 

 

    <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>

    <video>

      <model type='vmvga' vram='16384' heads='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </video>

 

Also maybe change this

 

  </devices>

  <qemu:commandline>

    <qemu:arg value='-device'/>

    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.0,multifunction=on'/>

  </qemu:commandline>

</domain>

 

To this

</devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
  </qemu:commandline>
</domain>

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.