I followed this quick guide to enable PCI passthrough using KVM on Fedora, the main steps are:
- Enable IOMMU and Virtualization on the motherboard
- Prevent my device from being grabbed by a module during statup
So far so good.
dmesg| grep -i iommu:
[ 0.000000] DMAR: IOMMU enabled ... [ 1.165288] vboxpci: IOMMU found
(even the vbox module notices it!)
00:02.0 Display controller : Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06) Subsystem: ASUSTeK Computer Inc. Device [1043:8534] Kernel driver in use: vfio-pci Kernel modules: i915
I did notice that
vfio-pci is not present as an available module for my iGPU, but it still says it's being used, so I think this is good as well.
I then proceeded to attach the iGPU to my VBox VM with the following:
VBoxManage modifyvm "Windows 10" --pciattach 00:02.0
It didn't complain so I guess it's fine. I finally booted up the virtual machine but it still shows up the VirtualBox Graphics Adapter instead of the integrated graphics on the device manager (and there are no signs of the iGPU anywhere as well):
Dmesg even says that an IOMMU domain is being created when I fire up the VM (not sure what that means, though, but I guess it means it's kinda working):
[ 80.632320] vboxpci: created IOMMU domain ffff8816e45e9fe8 [ 159.674621] vboxpci: freeing IOMMU domain ffff8816e45e9fe8
So what did I do wrong?
- I do have a discrete graphics card (NVidia GTX 1050) but I use it on the host, so I don't want to passthrough it
- I enabled the iGPU on the motherboard so it doesn't get disabled when it detects a discrete graphics card
- I just need to passthrough the iGPU for some light gaming that's only possible on windows with HW acceleration support, as software acceleration won't work (games refuse to even start)
Since almost all guides out there are for passing through a secondary graphics card, they tell you to blacklist the nouveau module, but since I am doing it the other way around, should I also blacklist the i915 module?