VMs Tab not loading after GPU Passthru


Recommended Posts

I'm tinkering with a new Win10 VM, following SpaceInvader One's older guide on building a Win10 gaming machine.  I got to the step where you add the Graphics Card and Sound card in the edit page for the VM and successfully was able to do that.  When I go to start the VM, the tab seems to sieze up, and when I navigate away from the VMs tab and back again, nothing loads.  I was able to reboot my server and get the tab to load again, showing the VM with the graphics card and sound card set as I wanted, but if I try again to load the VM it does the same thing.  Fix Common Problems is not finding an issue, so this must be something more advanced.  Has anyone else come across this?

trescommas-diagnostics-20210327-2219.zip

Link to comment

You can't pass though to a VM a graphics card that's bound to a driver. Remove the Nvidia plugin and reboot, then start the VM.

 

03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1)
	Subsystem: eVga.com. Corp. Device [3842:3767]
	Kernel modules: nvidia_drm, nvidia

 

Link to comment
11 hours ago, John_M said:

You can't pass though to a VM a graphics card that's bound to a driver. Remove the Nvidia plugin and reboot, then start the VM.


oh man. Thank you. This solved my issue too. 
 

Do you know if there a way I can have the plug-in installed and at the same time pass through a gpu to a vm?  Is there a way to have the plug-in ignore that card?

 

I have 2 cards. One I use for dockers and one that I want to use in the VM. 

Link to comment
4 hours ago, GavinCampbell said:


oh man. Thank you. This solved my issue too. 
 

Do you know if there a way I can have the plug-in installed and at the same time pass through a gpu to a vm?  Is there a way to have the plug-in ignore that card?

 

I have 2 cards. One I use for dockers and one that I want to use in the VM. 

 

Yes.  Got it working.

 

Just in case anybody else is looking for the solution I found it in this video.  Had to use the ACS trick in 6.9.1.

 

 

Link to comment
5 hours ago, GavinCampbell said:

Is there a way to have the plug-in ignore that card?

 

You need to bind it to the VFIO "stub driver" instead., which acts like a dummy driver and prevents the actual driver from binding. You can do that from Tools -> System Devices. In the PCI Devices and IOMMU Groups section, tick the relevant box and click the "Bind selected to VFIO at boot" button. Only use the ACS Override option if the device you want to pass through isn't in an IOMMU group by itself. It isn't something you ought to be using unless you have no other option, as I'm sure SpaceInvaderOne explained.

 

EDIT: Just to reiterate, if you have one graphics card and want to use it within Unraid plugins and docker containers you need to load the driver. If you have one card and want to pass it through to a VM you must not load the driver. If you have two cards from the same manufacturer and want to use one within Unraid plugins and docker containers then load the driver, but to pass through the second card to a VM you need to "bind it to VFIO" so that it doesn't pick up the real driver.

 

Edited by John_M
Link to comment
24 minutes ago, John_M said:

Only use the ACS Override option if the device you want to pass through isn't in an IOMMU group by itself.

 

Thanks for the explanation.  That is pretty much what I got from the video.  Unfortunately I had to use the ACS override option because my card wasn't in its own group but its working nicely so far. 

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.