Linux Guest with GPU Passthrough (No physical display)

So I’m not sure if this is even possible, but I keep running into issues so I figured I’d just ask here.

What I’d like to do is pass through a Quadro M4000 that’s running in an R730, to a virtual machine that I’ve carved out for running certain 3D refinement programs for structural biology work. I have pfSense hosting a VPN which I can use to access this VM from anywhere, and I’m using a Spice viewer to access the screen (I don’t need high performance graphics).

What I’d like to do is use the Quadro for both computational work, and to drive the virtual display. That’s the part I’m not sure is even possible.

So far I’ve gotten Manjaro to install with the card passing through successfully, but as soon as I install the proprietary Nvidia graphics, it results in a black screen upon next boot. If I open a terminal session, and run startx, I get a “EE No devices found” error. Adding module_blacklist=nouveau to the end of my linux line in GRUB doesn’t seem to do anything, either. I’ve also uninstalled Nouveau with no success to this issue. Also, switching between QXL, VGA, and VirtIO makes no difference for the black screen/ability of X11 to init.

Hello!

Does lspci -k list the quadro inside the vm?

Have you tried to plug in a display or display stub to the quadro in the server end? Iirc for the passthrough to work properly the card needs to be able to initialize and having a display (or stub) connected to it helps to address it.

Have you tried other distros? (Fedora or debian comes to mind - They are the defacto for real stuff IMO :nerd_face: I’ve also heard PoP_OS is good for that kind of work - They advertise on their homepage “Deep Learning” and “Bioinformatics”)

How are you connecting to the server? I’d advise to try Xrdp with Remmina - I’ve used that combination with great success to connect to my “server” with a GUI. :slight_smile:

I second the need to plug the card into a display or a EDID emulator dummy plug.

On windows you can load in a file to make the card think that there is a display, but on Linux it might not be posible.

Yes, it does, but lspci -nnv only shows it bound to nouveau, despite having nouveau uninstalled and blacklisted.

I did try CentOS 8 but after using Plasma for years, switching to GNOME is untenable, and getting Plasma working on CentOS is a pain and kind of hacky. The nice thing about Manjaro is the AUR access, as many of the academic programs I have to use haven’t been updated in 10+ years and getting them to compile with the original instructions is a pain (although doable). If someone else has already done that, and I can just download the .PKGBUILD, it saves some time for setup.

I did download OpenSUSE Tumbleweed last night and play around with that, and I really like what I’ve seen so far from it - I might give that a go. So far it’s behaved as if it was something I wrote myself, which is a big plus because then things I think should do certain things, actually do.

It’s on my home network, so I either am connecting through my home network, or VPN in. Then I’m using Virtual Machine Manager to connect to a remote Qemu/KVM instance, and Spice over TLS for display. Definitely not the most elegant solution. I will check out Xdrp - I’m open to better solutions for this.

Hmm, I don’t have a a DisplayPort display within range of the server I could plug it into. I’ll order an emulator plug and give that shot. Hopefully that will solve the issue. I don’t even need the Quadro card to drive the display (although it’d be nice because QXL can’t seem to do 2560x1440) but really just to have the Nvidia driver bound so I can do computations with it.