[Experiences][Potentially a guide] GVT + dGPU passthrough on a laptop (Thinkpad P50 - Muxed)

This page summarizes the projects mentioned and recommended in the original post on /r/VFIO

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • optimus-vfio-docs

    Optimus (Non-MXM/Muxless/"3D Controller") passthrough testing notes

    This whole thing started 2 years ago when I tried passing my nvidia dGPU to get it working on a Windows guest for Autodesk programs (aka, that joyful company that hates everything non-Windows and free), but lo and behold, it didn't work! Shocker! So I followed through 2 sources: - This issue thread - This guide

  • MobilePassThrough

    Make GPU passthrough on notebooks easy and accessible!

    Other main sources I used (there are many more but I would be making a list longer than the post itself): - https://github.com/T-vK/MobilePassThrough - https://wiki.archlinux.org/index.php/Intel_GVT-g - https://gist.github.com/Misairu-G/616f7b2756c488148b7309addc940b28 - https://github.com/jscinoz/optimus-vfio-docs - https://www.reddit.com/r/VFIO/comments/8gv60l/current_state_of_optimus_muxless_laptop_gpu/ - https://www.reddit.com/r/VFIO/comments/ebo2uk/nvidia_geforce_rtx_2060_mobile_success_qemu_ovmf/ - https://www.win-raid.com/t892f16-AMD-and-Nvidia-GOP-update-No-requests-DIY.html - https://github.com/joeknock90/Single-GPU-Passthrough - more to comeTM

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • Single-GPU-Passthrough

    Other main sources I used (there are many more but I would be making a list longer than the post itself): - https://github.com/T-vK/MobilePassThrough - https://wiki.archlinux.org/index.php/Intel_GVT-g - https://gist.github.com/Misairu-G/616f7b2756c488148b7309addc940b28 - https://github.com/jscinoz/optimus-vfio-docs - https://www.reddit.com/r/VFIO/comments/8gv60l/current_state_of_optimus_muxless_laptop_gpu/ - https://www.reddit.com/r/VFIO/comments/ebo2uk/nvidia_geforce_rtx_2060_mobile_success_qemu_ovmf/ - https://www.win-raid.com/t892f16-AMD-and-Nvidia-GOP-update-No-requests-DIY.html - https://github.com/joeknock90/Single-GPU-Passthrough - more to comeTM

  • gvt-linux

    My host is as follows: - Lenovo Thinkpad P50 - CPU: Xeon E3-1505M V5 - GPUs: Intel HD P530 (used for GVT) - Nvidia Quadro M2000M (passed to the VM) - OS: Manjaro (I tried this on regular Arch, Ubuntu and Pop!OS too) - Qemu 5.2.0 patched with this - libvirtd 7.1.0 (official from repo) - modules I'm loading: vfio_pci vfio vfio_iommu_type1 vfio_virqfd vfio_mdev kvmgt (for gvt too) - options for modules: options kvm-intel nested=1 blacklist nvidia blacklist nvidia-drm options i915 enable_guc=0 options i915 enable_fbc=0 options i915 enable_gvt=1 - kernel boot parameters: iommu=pt intel_iommu=on kvm.ignore_msrs=1

  • vbios_from_reg

    Windows Registry VBIOS export script

    The keys for my setup were the proper PCIe location in the VM and passing a GOP updated vBIOS, otherwise I'll be met with Error 43 or no display. To get the M2000M working properly: (I assume you've read Archlinux's wiki about OVMF GPU Passthrough and how to add stuff like qemu commands in a virsh xml) - Dump the vBIOS (there are many ways, through the windows registry (manually or with a script) or by using VBiosExtractor following this guide. Note that you will need to put the full path to the BIOS updater executable, the VBiosExtractor script doesn't seem to do well with relative paths. - Add UEFI GOP to it (as it's PC-AT only) (I used Maxwell MXM) - Patch the OVMF image with the regular (or GOP updated) vBIOS by building it automatically (thanks to @Ashymad's original gist) if you're on an Arch-based OS (you'll have to download the whole gist) or check the PKGBUILD and make the patching manually (this guide has the same steps too, don't forget the dos2unix commands, otherwise the patches wont be applied). You might want to add the path of the OVMF in /etc/libvirtd/qemu.conf accordingly or edit the PKGBUILD to copy them to /usr/share/edk2-ovmf/x64/ instead (where the edk2-ovmf official package store them). - Make a VM with virt-manager as you would normally, add the dGPU and the other hardware that comes with it (for me only Audio, for others it may be also USB or others peripherals that come with a GPU nowadays), but in the XML section (make sure you enable editing), remove all PCI addressing lines (to avoid conflicting addresses) and add the proper address for the dGPU to the hostdev section (note that it usually just means that the source address and the hostdev address match). When applying, virsh will properly populate the other addresses. xml

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts