VM GPU Passthrough on X58/LGA1366

Hello everyone! I have finally decided to post on here, because I like Level1 & it’s likely one of the few places where I will be able to get some help with what I’m trying to do.

What I want to achieve is a Windows VM, with a passed-through GPU, with it’s own dedicated storage, keyboard, mouse & monitor. The purpose of the VM will be rather mundane (not gaming), just running some (Windows specific) Store Management software. At the moment, this is the part that I need help with, because I’m quite new to Virtualisation & I’m dealing with old hardware, so it’s very difficult finding any posts/information that’s not from 2010.

Current Setup:
Intel Xeon X5650 @ 4.2Ghz (LGA 1366, 6c/12t)
Asus ROG Rampage III Extreme (X58 chipset)
12GB Corsair DDR3 RAM
GPU1: GTX 950 (main)
GPU2: GTX 470 (for passthrough)
OS: Arch Linux

I’m currently posting during my lunch break, I will add more info/screenshots when I get home this evening.
I’m running a fresh arch-linux install off an SSD, it is a BIOS system (no UEFI) with MBR partition & GRUB2.
I have been following arch linux wiki for libvirt, Wendel’s big stream on GPU passthrough & many, many tabs on the topic.
IOMMU groups (actually) looked good!
I have enabled the virtio kernel params (iommu=1 etc). I THINK I properly disabled the GTX 470 from being touched by linux (via device ID). Using LibVirtManager I created a new VM & even installed Win10 & had it successfully boot (without passing through the GPU). I then went on to pass-through the GPU (through libVirtManager) & this is where I’m not too clear as to what happened, because I think at first the VM booted and tried to installed the driver for the GTX 470 (but infamous error 43), at which point I gave up for a while after trying to add the ‘kvm hidden’ flags to the xml config of the vm etc. Right now, what’s happening is that windows VM blue-screens on boot (citing something that looks like nvidia .dll file). The last thing I was trying to do was to pass through the GPU vbios for the card (I downloaded one for my card from TechPowerUp, because for some reason I couldn’t read/copy the card BIOS from the card itself, I always got 0 bytes files). The card being so old, doesn’t have a UEFI bios support, but QEMU (that’s what libvirt is a wrapper around right?) that I have running…would that be simulating UEFI mode - even though my actual physical system does not support EUFI (cause it’s so old)? I’m almost debating getting an older AMD card so as to avoid dealing with the hostility Nvidia has for Virtualisation, but older AMD cards are suprisingly hard to find for a reasonably price & I’m not sure if some of my problems are caused by the fact that neither my system nor my card supports UEFI. I will need to buy 2 more graphics cards for what I’m ultimately doing with the systems anyway, I just planned them to be 2x GT710s (which should suffice for my other use case), but one of them could be some AMD card, as long as it’s not too expensive (I’m based in EU btw)

I apologise if some of the details are vague - this has been something I was working on and off for months now, I will try to clarify/confirm the state of the setup asap. I’m probably missing something stupid, that I just can’t see because I was struggling with this for too many hours. I humbly ask for help, if there’s any further information that’s missing please say so & I’ll remedy that . Thank you, sorry if I rambled a bit, stuff like this is too fun! :smiley:

Yikes, a 470… the space heater Fermi series… That was my old card before I moved on.

Yeah, that doesn’t have UEFI so you will need to do VGA arbitration using SeaBIOS. I would seriously consider a more powerful card. The RX 580 8GB will be miles better than your GTX 470, and MUCH more energy efficient. I remember using my 470 combined with a liquid cooled AIO to turn it into a space heater, cause that’s how much heat Fermi put out.

The reason I say the RX 580 is because it doesn’t have the error code 43 issue Nvidia has, and it’s already more powerful than your 470.

I agree on all counts :slight_smile: I upgraded to GTX 950 because of this, I think I saved on electricity costs within the year to make up the price of upgrade :laughing:

I should probably mention WHY I’m doing all this. This is my personal rig that has served me long and well, but I took it as far as I can I think - I recently upgraded to X5650 hex-core & 12GB RAM - from 6GB - to give it extra life. It does bottleneck the newer cards, so if I buy a high-end card (that I want to do soon) I will get diminishing returns. So what I’m doing is giving it on to a friend - where it’s going to be used in his studio to run two touch-screen gallerys & the main book keeping app he uses (that’s what the VM is for). In return I should be able to buy some newer hardware for my new system. To make fiscal sense, I can’t afford to sink (much) more money into it, sadly, otherwise I would go for a RX 550, even that would be overkill for running some .NET app with MSAccess DB :stuck_out_tongue:

VGA arbitration using SeaBIOS

I will look into it, thank you!

I turned my evga x58 sli le into a game host server. Turns out most x58 boards can actually handle at least 48 gigs of ram. unfortunately my bios doesn’t support iommu :confused: