Hi all,
At the beginning of this year i started daily-driving Arch Linux on a Framework 16 and I’m trying to set up a Windows 11 VM for a couple of work applications that won’t install under Wine/Bottles. The VM works, but visually the performance feels sloppy, I imagine it is cause of the virtual display divers.
Goal: I would like to pass the NVIDIA dGPU (RTX 5070 module) through to the Windows VM when the VM is running, but have the dGPU available to the Linux host again when the VM is shutdown. While the VM has the RTX 5070, I’d still like to use the host at the same time via the iGPU.
Current status:
-
BIOS set to Hybrid
-
qemu/libvirt installed and setup, with basic windows 11 install
-
Some old remnants of past attempts of this setup (Mainly grub flags and qemu hooks)
What I’m stuck on:
Most guides I find are either:
-
Single-GPU passthrough that kills the host display manager/session, or
-
desktop setups that don’t address re-attaching the dGPU back to the host cleanly after the VM exits, especially on a muxed laptop.
What I have tried:
- Standard VFIO GPU passthrough with libvirt hooks to dynamically bind/unbind GPU
- Configured Hyprland to use only AMD iGPU (AQ_DRM_DEVICES)
- Set NVIDIA to bind to vfio-pci at boot via modprobe.d
- Created scripts to switch GPU between vfio-pci and nvidia drivers
- Dumped vBIOS from GPU and passed to VM
- I have also tried common error 43 fixes for the 5070 but i didn’t get very far as i started having some stability problems with the host os.
Results:
- IOMMU groups are clean (GPU isolated in its own group)
- GPU successfully passes to VM
- Windows sees GPU but gets Code 43 error (even with vBIOS and hypervisor hiding)
- External display connected to GPU shows BIOS/POST but Windows doesn’t use it
- System instability: Hyprland crashes, kernel panics
Questions:
-
Has anyone on FW16 successfully done dynamic bind/unbind (vfio-pci ⇄ nvidia) using libvirt hooks so the GPU returns to the host after VM shutdown?
-
In Hybrid mode, is Looking Glass practical on FW16 without an HDMI dummy plug (because of the mux), or is a dummy/virtual display driver still required?
-
Are there any FW16-specific gotchas with the expansion bay GPU around resets / power management / rebind reliability?
-
Is there a known issue with RTX 50-series mobile GPUs and passthrough?
-
Alternative approaches (different hypervisor, different configuration)?
If anyone has working configs, threads, or tutorial links (especially FW16-specific if possible), I’d really appreciate it. ![]()
Iommu Groups:
IOMMU Group 14:
01:00.0 VGA compatible controller: NVIDIA Corporation GB206M [GeForce RTX 5070
Max-Q / Mobile] [10de:2d58] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GB206 High Definition Audio Controller
[10de:22eb] (rev a1)
IOMMU Group 18:
c3:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1
[1002:15bf] (rev c2)
Software In Question:
- Smaart v9 - SPL/Frequency response
- Q-SYS Designer/UCI Viewer
- Dante Virtual Sound Card (I am aware of the unofficial implementation of dvs called inferno, I would like to use it, i just haven’t had much success in installing and getting it to work yet. Also yes i am aware that dvs doesn’t work under a vm unless you pay a subscription.)
System info:
-
OS: Arch Linux (WM: Hyprland)
-
Kernel: Linux 6.18.7
-
BIOS: IFGP6.04.02
-
Last Updated: 7 Feb 2026 7:10pm AEST
-
GPU: Framework 16 dGPU module (RTX 5070) + iGPU
-
NVIDIA driver: 590.48.01
Thanks!