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