-
COMPLETE TECHNICAL REPORT - VFIO GPU PASSTHROUGH FAILURE
HARDWARE CONFIGURATIONMotherboard: MSI MPG X870E Carbon WiFi (MS-7E49) BIOS Version: E7E49AMSI.1A7D BIOS Build Date: January 07, 2026 Chipset: AMD X870E CPU: AMD Ryzen 9 9950X3D 16 Cores / 32 Threads Base Clock: 4.3 GHz Integrated Graphics: AMD Radeon (iGPU) RAM: 128GB DDR5-5200 Brand: G.Skill Flare X5 Configuration: 4x 32GB modules GPU (Passthrough Target): Model: NVIDIA GeForce RTX 4060 Ti 16GB (MSI) PCI Address: 0000:01:00.0 (GPU) + 0000:01:00.1 (Audio) IOMMU Group: 14 Device IDs: 10de:2805 (GPU), 10de:22bd (Audio) Primary Display: Integrated Graphics (AMD Radeon iGPU) Operating System: Unraid Server OS version 7.2.3 Linux Kernel: 6.12.54-Unraid Bootloader: Limine (NOT Syslinux - critical detail!) Storage: VM vDisk 1: /mnt/windowsfestplatte/vdisk1.img (Windows System) VM vDisk 2: /mnt/gaming/gaming_storage.img (Gaming Storage) VirtIO Drivers: /mnt/vm/virtio-win-0.1.285-1.iso OBJECTIVEPass through NVIDIA RTX 4060 Ti to a Windows 11 VM using VFIO-PCI for native GPU performance in gaming and GPU-accelerated workloads. INITIAL PROBLEM: BOOTLOADER DISCOVERYIssue #1: Kernel parameters not loading Initial attempts to configure VFIO via /boot/syslinux/syslinux.cfg had NO EFFECT because: bash # cat /proc/cmdline[empty output]```**Root Cause:** System boots via **Limine bootloader**, NOT Syslinux - Limine config location: `/boot/limine.conf`- Evidence: `ls -la /boot/` showed `limine.conf` with recent modification date- This is a critical issue because most Unraid VFIO guides assume Syslinux **Solution Applied:** Modified `/boot/limine.conf` instead of syslinux.cfg: ``` /Unraid OS protocol: linux kernel_path: boot():/bzimage module_path: boot():/bzroot cmdline: pcie_acs_override=downstream,multifunction amd_iommu=on iommu.passthrough=1 vfio-pci.ids=10de:2805,10de:22bd video=efifb:off comment: Unraid OSVerification: bash # cat /proc/cmdlinepcie_acs_override=downstream,multifunction amd_iommu=on iommu.passthrough=1 vfio-pci.ids=10de:2805,10de:22bd video=efifb:off # dmesg | grep "Command line"[0.000000] Command line: pcie_acs_override=downstream,multifunction amd_iommu=on iommu.passthrough=1 vfio-pci.ids=10de:2805,10de:22bd video=efifb:off ```✅ Kernel parameters successfully loaded after Limine configuration --- ### **BIOS CONFIGURATION****Critical Settings for VFIO:** **1. Graphics Configuration:** ```Advanced → Integrated Graphics Configuration - Initiate Graphic Adapter: IGD (iGPU) ✅ - Graphics Card Detection: Ignore ```*Purpose: Force iGPU as primary display, leaving NVIDIA available for passthrough* **2. PCI Subsystem Settings:** ```Advanced → PCI Subsystem Settings - Above 4G Decoding: ENABLED ✅ - Re-Size BAR Support: DISABLED ✅ (CRITICAL!) - SR-IOV Support: DISABLED ✅```*Purpose: Re-Size BAR enabled causes "1:1 IOMMU mapping" firmware errors* **3. AMD IOMMU Settings:** ``` Advanced → AMD CBS → NBIO Common Options - IOMMU: Enabled ✅ - ACS Enable: Auto/Enabled Verification: bash # dmesg | grep -i "amd-vi"AMD-Vi: IOMMU performance counters supported pci 0000:01:00.0: Adding to iommu group 14pci 0000:01:00.1: Adding to iommu group 14# dmesg | grep -i "iommu"iommu: Default domain type: Passthrough (set via kernel command line)✅ IOMMU enabled and operational VFIO-PCI BINDINGIssue #2: Duplicate binding causing conflicts Problem: GPU was being bound to vfio-pci TWICE: Via kernel parameter: vfio-pci.ids=10de:2805,10de:22bd Via Unraid config: /boot/config/vfio-pci.cfg containing BIND=0000:01:00.0|10de:2805 0000:01:00.1|10de:22bd Solution: bash # Backup and clear vfio-pci.cfgcp /boot/config/vfio-pci.cfg /boot/config/vfio-pci.cfg.backup echo "" > /boot/config/vfio-pci.cfg rebootVerification: bash # lspci -nnk -d 10de:280501:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD106 [GeForce RTX 4060 Ti 16GB] [10de:2805] (rev a1) Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:5174] Kernel driver in use: vfio-pci ✅ Kernel modules: nouveau # ls -la /dev/vfio/crw------- 1 root root 245, 0 Jan 20 20:18 14 ✅crw-rw-rw- 1 root root 10, 196 Jan 20 20:18 vfio ✅ GPU successfully bound to vfio-pci IOMMU GROUP CONFIGURATIONIssue #3: IOMMU Group in wrong mode Discovery: bash # cat /sys/kernel/iommu_groups/14/typeidentity ❌ IOMMU Group 14 was in "identity" mode instead of "DMA" mode required for VFIO. Solution: bash # echo DMA > /sys/kernel/iommu_groups/14/type# cat /sys/kernel/iommu_groups/14/typeDMA ✅ Additional mitigation: bash # echo 1 > /sys/module/vfio_iommu_type1/parameters/allow_unsafe_interruptsVM CONFIGURATIONMultiple VM configurations tested: Attempt 1: i440fx machine type (initial) Machine: pc-i440fx-9.2 Result: GPU not available in WebUI dropdown Attempt 2: Q35 machine type Machine: pc-q35-9.2 BIOS: OVMF-TPM (UEFI) vCPUs: 16 (8 cores, 2 threads) RAM: 16GB Primary vDisk: VirtIO bus Result: GPU still not in dropdown, added manually via XML Attempt 3: Manual XML configuration Multiple PCI bus configurations attempted: Configuration A: xml <hostdev mode='subsystem' type='pci' managed='yes'> <source><address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/></source> <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/></hostdev><hostdev mode='subsystem' type='pci' managed='yes'> <source><address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/></source> <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/></hostdev>Result: Failed with "Invalid argument" Configuration B: xml <hostdev mode='subsystem' type='pci' managed='yes'> <source><address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/></source> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/></hostdev><hostdev mode='subsystem' type='pci' managed='yes'> <source><address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/></source> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x1'/></hostdev>Result: Failed with "Invalid argument" Configuration C (Final attempt): xml <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source><address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/></source> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0' multifunction='on'/></hostdev><hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source><address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/></source> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x1'/></hostdev>``` Result: Still failed with "Invalid argument" --- ### **PERSISTENT ERROR** **Every VM start attempt fails with:** ``` error: Failed to start domain 'Windows 11' error: internal error: QEMU unexpectedly closed the monitor (vm='Windows 11'): 2026-01-21T12:35:40.272528Z qemu-system-x86_64: -device {"driver":"vfio-pci", "host":"0000:01:00.0","id":"hostdev0","bus":"pci.6","multifunction":true, "addr":"0x0"}: vfio 0000:01:00.0: failed to setup container for group 14: Failed to set group container: Invalid argumentKernel log shows: bash # dmesg | tail -5vfio-pci 0000:01:00.0: Firmware has requested this device have a 1:1 IOMMU mapping, rejecting configuring the device without a 1:1 mapping. Contact your platform vendor.DIAGNOSTIC DATAIOMMU Status: bash # dmesg | grep -i "iommu mode"[0.587478] iommu: Default domain type: Passthrough (set via kernel command line)# ls /sys/kernel/iommu_groups/ | wc -l54# for d in /sys/kernel/iommu_groups/14/devices/*; do lspci -nns "${d##*/}"; done01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD106 [GeForce RTX 4060 Ti 16GB] [10de:2805] (rev a1)01:00.1 Audio device [0403]: NVIDIA Corporation AD106M High Definition Audio Controller [10de:22bd] (rev a1)VFIO Module Status: bash # lsmod | grep vfiovfio_pci 16384 0vfio_pci_core 86016 1 vfio_pci vfio_iommu_type1 49152 0vfio 65536 3 vfio_pci_core,vfio_iommu_type1,vfio_pciContainer Status: bash # ls -la /dev/vfio/crw------- 1 root root 245, 0 Jan 20 20:18 14crw------- 1 root root 245, 1 Jan 20 20:18 15crw-rw-rw- 1 root root 10, 196 Jan 20 20:18 vfio # lsof /dev/vfio/14[no output - device not in use]PCI Device Tree: bash # lspci -tv-[0000:00]-+-00.0 Advanced Micro Devices, Inc. [AMD] Device +-00.2 Advanced Micro Devices, Inc. [AMD] Device +-01.0 Advanced Micro Devices, Inc. [AMD] Device +-01.1-[01]--+-00.0 NVIDIA Corporation AD106 [GeForce RTX 4060 Ti 16GB] | \-00.1 NVIDIA Corporation AD106M High Definition Audio ControllerTROUBLESHOOTING STEPS ATTEMPTED✅ 1. Verified hardware compatibility Confirmed IOMMU support in CPU Verified motherboard supports VT-d/AMD-Vi ✅ 2. BIOS configuration Enabled IOMMU Disabled Re-Size BAR (critical!) Set iGPU as primary display Enabled Above 4G Decoding ✅ 3. Bootloader configuration Discovered Limine (not Syslinux) Configured correct kernel parameters Verified parameters loaded ✅ 4. Kernel parameters optimized amd_iommu=on iommu.passthrough=1 (later changed to iommu=pt) pcie_acs_override=downstream,multifunction vfio-pci.ids=10de:2805,10de:22bd video=efifb:off ✅ 5. VFIO binding Removed duplicate bindings Verified vfio-pci driver attachment Confirmed VFIO devices created ✅ 6. IOMMU group management Set group type to DMA Enabled unsafe interrupts Verified group isolation ✅ 7. VM configuration Tested multiple machine types (i440fx, Q35) Tried various PCI bus configurations Added multifunction attribute Attempted different slot/bus combinations ✅ 8. GPU unbind/rebind bash echo "0000:01:00.0" > /sys/bus/pci/drivers/vfio-pci/unbind echo "0000:01:00.1" > /sys/bus/pci/drivers/vfio-pci/unbind sleep 2echo "0000:01:00.0" > /sys/bus/pci/drivers/vfio-pci/bind echo "0000:01:00.1" > /sys/bus/pci/drivers/vfio-pci/bind ```❌ **None of these resolved the issue** --- ### **ROOT CAUSE ANALYSIS****Firmware-Level Restriction:** The error message is clear: ``` vfio-pci 0000:01:00.0: Firmware has requested this device have a 1:1 IOMMU mapping, rejecting configuring the device without a 1:1 mapping. Contact your platform vendor. This indicates the UEFI firmware is enforcing a DMA protection mechanism that conflicts with VFIO's virtualization requirements. Possible Contributing Factors: New Hardware Generation X870E chipset released Q4 2024 Ryzen 9 9950X3D released 2024 VFIO support may not be mature Re-Size BAR Conflict Despite disabling in BIOS, firmware may still enforce related restrictions Common issue with newer NVIDIA GPUs Firmware Bug BIOS version E7E49AMSI.1A7D may have incomplete IOMMU implementation May require BIOS update from MSI Kernel/QEMU Version Unraid 7.2.3 uses kernel 6.12.54 X870E support may require newer kernel Missing BIOS Option Hidden or unavailable option controlling IOMMU strictness AMD CBS settings may have additional undocumented options QUESTIONS FOR MSI/AMD SUPPORTIs VFIO GPU passthrough officially supported on the MPG X870E Carbon WiFi? Does BIOS version E7E49AMSI.1A7D have known issues with IOMMU/virtualization? Is there a newer BIOS version that addresses VFIO compatibility? Are there hidden BIOS settings (AMD CBS) that control the "1:1 IOMMU mapping" firmware requirement? Does the "Re-Size BAR Support" setting have secondary effects even when disabled? What is the recommended BIOS configuration for GPU passthrough on this board? Is this a known limitation of the X870E chipset? SYSTEM STATE AT TIME OF FAILUREAll verifications passing: bash # Kernel parameters✅ pcie_acs_override: active ✅ amd_iommu: enabled ✅ iommu.passthrough: active ✅ vfio-pci.ids: bound # BIOS settings✅ IOMMU: enabled ✅ Re-Size BAR: disabled ✅ Above 4G: enabled ✅ iGPU primary: active # GPU binding✅ Driver: vfio-pci ✅ IOMMU group: 14 (isolated)✅ Group type: DMA ✅ VFIO device: /dev/vfio/14 exists Yet VM start fails with firmware restriction. COMMUNITY NOTESDiscord user "Mainfrezzer" (experienced with Unraid VFIO) suggested: However, Q35 configuration also failed with identical error. Discord user "mowmdown" confirmed Limine configuration was correct: HARDWARE COMPARISONFor context, this same RTX 4060 Ti successfully works with: VFIO on older platforms (X570/B550) Native Windows installation on this motherboard This suggests the issue is specifically with: X870E + VFIO combination Firmware restrictions on new chipset Incomplete BIOS implementation CONCLUSIONDespite extensive troubleshooting and correct configuration at every level (kernel, BIOS, VFIO), GPU passthrough fails due to a firmware-level restriction requesting "1:1 IOMMU mapping" that cannot be satisfied. This appears to be either: A BIOS bug requiring an update from MSI A chipset limitation of X870E Missing kernel/QEMU support for new hardware generation Request to MSI Support: Please investigate firmware-level IOMMU handling on the MPG X870E Carbon WiFi and provide guidance or BIOS update to enable VFIO GPU passthrough. TECHNICAL LOGS AVAILABLEComplete dmesg output libvirt/QEMU logs VM XML configurations (all iterations) BIOS screenshots Full hardware specifications System available for remote diagnosis if needed. Report compiled: January 21, 2026 Testing duration: ~8 hours intensive troubleshooting Configuration attempts: 15+ different approaches Result: Unsuccessful - firmware restriction
-
Black screen after USB boot - MSI X870E Carbon + Ryzen 9950X + RTX 4070 Ti Super**
Original Problem: After selecting Unraid USB stick in BIOS boot menu, screen would go completely black with no response. System appeared frozen with no text output or boot menu. Hardware: - Motherboard: MSI MPG X870E Carbon WiFi (AMD X870E chipset) - CPU: AMD Ryzen 9 9950X3D - RAM: G.Skill Flare X5 32GB DDR5-6000 CL30 - GPU: RTX 4070 Ti Super 16GB - Unraid Version: 7.2.3 What didn't work: - Editing syslinux.cfg boot parameters (nomodeset, nouveau blacklist, etc.) - Creating /config/modprobe.d/nouveau.conf - BIOS settings changes (Secure Boot disabled, CSM, etc.) - Different USB ports Solution - Replace Bootloader: The default Syslinux bootloader doesn't work properly with X870E chipset. Had to replace it with Limine bootloader. Steps: 1. Download Limine v10.6.2 binary from: https://github.com/limine-bootloader/limine/tree/v10.6.2-binary 2. Replace bootloader on Unraid USB stick 3. Adapt configuration file for Limine 4. Boot works perfectly! This appears to be a compatibility issue between the very new X870E platform and the standard Syslinux bootloader that Unraid uses. Limine provides better support for modern UEFI implementations. Hope this helps anyone else with similar hardware! Subject: X870E Chipset Boot Failure - Bootloader Compatibility Issue Hello Unraid Support Team, I'm reporting a compatibility issue and workaround for very new hardware. Hardware Configuration: - Motherboard: MSI MPG X870E Carbon WiFi (AMD X870E chipset - released Sept 2024) - CPU: AMD Ryzen 9 9950X3D - Unraid Version: 7.2.3 Issue: Unraid USB stick would not boot - black screen immediately after selecting boot device in BIOS. No text output, no boot menu, complete freeze. Troubleshooting Attempted: - Modified syslinux.cfg boot parameters (nomodeset, nouveau blacklist, acpi=off, etc.) - Created modprobe.d configuration files - Tested all USB ports (2.0 and 3.0) - Verified BIOS settings (Secure Boot disabled, Above 4G enabled, etc.) - Tested with different GPUs - Tried USB stick on older hardware (worked fine) Root Cause: The default Syslinux bootloader appears incompatible with the X870E chipset's UEFI implementation. Working Solution: Replaced Syslinux with Limine bootloader v10.6.2: GitHubGitHub - limine-bootloader/limine at v10.6.2-binaryModern, advanced, portable, multiprotocol bootloader and boot manager. (Official mirror of https://codeberg.org/Limine/Limine) - GitHub - limine-bootloader/limine at v10.6.2-binaryAfter replacing the bootloader and adapting the configuration, Unraid boots perfectly. Questions for Support: 1. Is this a known issue with X870E and other very new AMD platforms? 2. Will future Unraid versions include updated bootloader with better X870E support? 3. What is the recommended approach for users encountering this - continue using Limine or wait for official fix? 4. Are there any potential issues running Unraid long-term with a non-standard bootloader? The X870E platform is AMD's newest chipset (released September 2024), so this may affect other users with cutting-edge hardware. Official guidance would be helpful. Thank you for your assistance!
-
Black screen after USB boot - MSI X870E Carbon + Ryzen 9950X + RTX 4070 Ti Super**
I tried the same USB stick on another PC and it worked without any problems. I also tried several USB sticks and ports, but nothing worked.
-
Black screen after USB boot - MSI X870E Carbon + Ryzen 9950X + RTX 4070 Ti Super**
Yes, the screen remains black; I can't select anything and I can't see anything. Ubuntu works, I just tested it.
-
Black screen after USB boot - MSI X870E Carbon + Ryzen 9950X + RTX 4070 Ti Super**
[SOLVED?] Black screen after USB boot - MSI X870E Carbon + Ryzen 9950X + RTX 4070 Ti Super Hardware: - Motherboard: MSI MPG X870E Carbon WiFi (AMD X870E chipset) - CPU: AMD Ryzen 9 9950X - RAM: G.Skill Flare X5 32GB DDR5-6000 CL30 - GPU: RTX 4070 Ti Super 16GB (PCIe Slot 1, monitor connected via HDMI/DP) - PSU: be quiet! Straight Power 12 1000W Platinum - Unraid Version: 7.2.3 Problem: Unraid USB stick is correctly recognized in BIOS boot menu as UEFI device. After selecting the USB boot entry, screen goes completely black with no response - no text output, no boot menu, nothing. System appears frozen. BIOS Settings: ✅ Secure Boot: Disabled ✅ Above 4G Decoding: Enabled ✅ Boot mode: UEFI only (X870E has no Legacy/CSM option) ✅ USB tested in multiple USB 2.0 ports (black ports on rear I/O) ✅ Latest stable BIOS installed What I've tried: 1. Edited /boot/syslinux/syslinux.cfg - Added boot parameters: append nomodeset modprobe.blacklist=nouveau nouveau.modeset=0 initrd=/bzroot Result: Still black screen 2. Created /config/modprobe.d/nouveau.conf with: blacklist nouveau Result: Still black screen 3. Waited 5+ minutes after boot - No change, screen stays black Suspected cause: RTX 4070 Ti Super (Ada Lovelace architecture) conflicts with nouveau driver during early boot. X870E is very new (Sept 2024) which may have additional compatibility issues. Next steps I'm considering: 1. Test with older RTX 2080 Ti to rule out GPU-specific issue 2. Test headless boot - check if system is accessible via http://tower.local despite black screen 3. Try more aggressive boot parameters: acpi=off nomodeset iommu=soft 4. Disable Resizable BAR in BIOS as potential conflict Questions: - Has anyone successfully booted Unraid 7.x on X870E with RTX 4000 series? - Should nouveau blacklist work, or does RTX 4070 Ti require different approach? - Are there known X870E chipset requirements I'm missing? - Would a temporary basic GPU (GT 1030, etc.) for initial setup be recommended? Any help appreciated!
-
tschatscher joined the community
-
Black screen after USB boot - MSI X870E Carbon + Ryzen 9950X + RTX 4070 Ti Super**
Unraid won't boot - Black screen after USB boot Hardware: Motherboard: MSI MPG X870E Carbon WiFi CPU: AMD Ryzen 9 9950X RAM: G.Skill Flare X5 32GB (2x16GB) DDR5-6000 CL30 GPU: RTX 4070 Ti Super 16GB (PCIe Slot 1) PSU: be quiet! Straight Power 12 1000W Platinum Problem: Unraid USB stick is correctly recognized in BIOS boot menu as UEFI device After selecting the USB stick, screen stays completely black No text, no Unraid boot menu, nothing Monitor is connected via HDMI/DP to the RTX 4070 Ti Super What I've tried: Secure Boot is disabled Tested USB stick in different USB 2.0 ports (black ones) BIOS settings are correct (UEFI boot, USB first in boot order) Waited 2-3 minutes after USB boot - stays black Question: Does anyone have experience with X870E + Unraid? Do I need to set specific boot parameters (nomodeset?) or are there known compatibility issues with the new chipset?
tschatscher
Members
-
Joined
-
Last visited