[6.9.0-beta24] GPU Passthrough Windows 10 VM


Recommended Posts

So I've tried to figure this out but am having little luck. Any help appreciated.

 

Goal

Unaid server running 24/7 with a Windows 10 VM w/ GPU passed through, in order to both run a plex server and game on living room TV - over HDMI or Displayport with USB keyboard/mouse vfio passed through. Being able to game remotely from the server at a friends house on another laptop or a Rasperry Pi is the stretch-dream-goal for this noob. I'm upgrading from a Synology 718+, so I've never used a terminal or used more than the Synology app-store to get Plex working.

 

Current Issue

When attempting to pass through an MSI RTX 2070 Ventus GP, I cannot reach even the Windows OS install screen when OVMF is selected as the Bios option in the Edit VM screen. Using Seabios, when selecting VNC as my graphics, I can reach the first step of the Windows OS process (black screen, blue logo, spinning blue/white dots), after which I get a Blue Screen of Death. As far as I can tell the RTX 2070 supports UEFI and therefore should support OVMF, which is puzzling. I also saw a thread that said passing through a GPU using Seabios is worse and more difficult than OVMF, so would like to avoid that route on principle if possible. I have downloaded the RTX's Vbios from Tech Power-Up (does it matter if it doesn't have the 'GP' in the name as my RTX does?) and removed the Nvidia header using a Hex Editor as shown by SpaceInvader, and use the edited Vbios when creating the VM. By the way, I may use these acronyms as if I know what they mean but don't really - this is just from looking up Spaceinvader and other Unraid Forum threads.

 

System

  • Screenshot attached.
  • Of note: processor (Ryzen 3700X) does not have an iGPU, mini-ITX Motherboard only has one PCI slot for 1 GPU
  • There is a 500GB NVME drive as an unassigned device that I would like to pass through and install Windows on, but that is for the future.

 

Description

I tried creating a VM in 2 ways, using my laptop while accessing the Unraid server using Firefox from another laptop. When testing the below with GPU passed through, I tried both including and excluding the Soundcard as a separate passthrough to the VM. In all the below scenarios, I had my TV on and connected to the GPU to HDMI (also tested Displayport -> HDMI -> TV), and never got an image to appear on the TV.

  • Scenario A: Using OVMF, I would not get the VNC option when clicking on the VM after starting it (both when GPU not passed through OR VNC selected).
  • Using Seabios, I can get the VNC option when clicking the VM after starting it:
    • Scenario B: When GPU is passed through, VNC screen shows: 'Guest has not initialized the display yet'
    • Scenario C; When GPU is not passed through (VNC option selected in Edit screen), VNC screen shows first bit of Windows OS install screen, the Blue Screen of Death

 

Attached are the various IOMMU options given by the system. When setting up my VM I use the 'BOTH' option, as I think it gives me the most possibilities to get the NVME drive, 2 USB Logitech mouse/keyboard slots, and the GPU.

Which scenario's logs and can I share to help? I can try to share everything, but maybe there is a specific avenue worth pursuing?

Hardware.pdf Both VFIO Grouping.pdf MultiStream VFIO Grouping.pdf Downstream VFIO Grouping.pdf Disabled VFIO Grouping.pdf

Edited by BM32
Link to comment

I'd recommend to install you VM using the Windows VM on Unraid Guide without any Passthrough. Once it is setup and running, you will need to install a VNC Server, as the VNC you get from UnRaid will be replaced by your GPU and won't be avialable. You can use Remote Desktop from windows, but this will never use the GPU and you will run into issues. So use something like a RealVNC Server for the basic setup and Parsec for gaming, etc.

Once that is setup, begin with the Passthrough stuff.

Another thing to consinder is that if you want to be able to run in headless mode (no screen attached to the GPU output) you gonna need display dongle.

Edited by Jaster
Link to comment

Some pointers:

  • RTX 2070 has FOUR functions that need to be passed through together (the GPU, the soundcard, 2x USB controllers).
  • Since you are on 6.9.0-beta, Tools -> System Devices -> tick the GPU + soundcard + 2 USB controllers, save and reboot to bind the entire card.
    • Note: you WILL lose Unraid display so you can only configure Unraid through a 2nd machine if you do this.
  • vbios is highly specific. There are even 2 different ventus versions on TPU so you will need to save both, edit both and try both to see what sticks. Note that with vbios, no rom is better than wrong rom.
  • Boot Unraid in legacy mode. Then start a new template with Q35-5.0 + OVMF. + Hyper-V on + VNC graphics + NO PASSTHROUGH. Install Windows properly, reboot, turn on RDP and check you can RDP in properly. Then connect a display to the GPU, pass through (note the tips above), boot up and install Nvidia drivers. Reboot and if GPU display is black, RDP in and go to Device Manager and check what error code is shown on the Nvidia card.

Also, please don't take screenshots if you can avoid it. Just copy-paste from Unraid would be best (please use the code functionality - the </> button next to the smiley button to ensure the text is formatted correctly). It's much easier to search for things with text that is formatted correctly.

If you have to use screenshot, please use png / jpeg, not pdf.

 

 

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.