https://pve.proxmox.com/wiki/PCI_Passthrough
The message "x2apic: IRQ remapping doesn't support X2APIC mode" indicates that the system's IOMMU (Intel VT-d or AMD-Vi) is not properly enabled or configured, which is required for X2APIC mode to function, especially for PCI passthrough.
- IOMMU not enabled in BIOS: Ensure Intel VT-d (for Intel CPUs) or AMD-Vi (for AMD CPUs) is enabled in the UEFI/BIOS settings.
- VT-d Support: The ASUS P9X79 WS motherboard supports Intel VT-d, particularly when using Intel Xeon E5 v2 or Core i7-3930K (C2 stepping) processors. This support was added via BIOS updates. Source
- BIOS Location: In UEFI BIOS (version 4802 or newer), VT-d is located under Advanced Mode > System Agent Configuration > Intel(R) VT-d, not under CPU Configuration. Source
- Missing or incorrect kernel parameters: Add the following to your kernel boot parameters:
intel_iommu=on(Intel)amd_iommu=on(AMD)iommu=pt(to enable IOMMU for PCI passthrough)intremap=no_x2apic_optout(if your system has incomplete BIOS support for x2apic opt-out bit)
- IRQ remapping not supported: The kernel error occurs when IRQ remapping is not active, even if IOMMU is enabled. This can happen if:
- The IOMMU driver fails to initialize.
- The system has an older or buggy BIOS that doesn't fully support x2apic mode.
- Check dmesg output: Look for lines like:
DMAR-IR: Enabled IRQ remapping in x2apic modex2apic enabled- If these are missing, IOMMU/IRQ remapping is not active.
- x2APIC requires IRQ remapping for systems with more than 255 APIC IDs (common in multi-core CPUs).
- Some systems (e.g., older ASUS X99) require
intremap=no_x2apic_optoutto bypass BIOS-level x2apic opt-out bits. - If using Proxmox or KVM, ensure the host kernel has
CONFIG_IRQ_REMAP=yandCONFIG_X86_X2APIC=y.
✅ Summary: Enable IOMMU in BIOS, add
intel_iommu=onoramd_iommu=on, and verifydmesgshows "Enabled IRQ remapping in x2apic mode".
dmesg | grep -e DMAR -e IOMMU
Example output:
root@pve:~# dmesg | grep -ie iommu
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.17.9-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on
[ 0.037980] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.17.9-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on
[ 0.038047] DMAR: IOMMU enabled
[ 0.152836] DMAR-IR: IOAPIC id 0 under DRHD base 0xfbffc000 IOMMU 0
[ 0.152838] DMAR-IR: IOAPIC id 2 under DRHD base 0xfbffc000 IOMMU 0
[ 0.449207] iommu: Default domain type: Translated
[ 0.449207] iommu: DMA domain TLB invalidation policy: lazy mode
[ 0.522545] pci 0000:00:00.0: Adding to iommu group 0
[ 0.522571] pci 0000:00:01.0: Adding to iommu group 1
[ 0.522593] pci 0000:00:01.1: Adding to iommu group 2
[ 0.522616] pci 0000:00:02.0: Adding to iommu group 3
[ 0.522641] pci 0000:00:03.0: Adding to iommu group 4
(...)dmesg | grep 'remapping'
Example output:
root@pve:~# dmesg | grep 'remapping'
[ 0.152841] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.153190] DMAR-IR: Enabled IRQ remapping in x2apic modepvesh get /nodes/{nodename}/hardware/pci --pci-class-blacklist ""(Replace {nodename} with the name of your node)
Example output:
root@pve:~# pvesh get /nodes/pve/hardware/pci --pci-class-blacklist ""
┌──────────┬────────┬──────────────┬────────────┬────────┬────────────────
│ class │ device │ id │ iommugroup │ vendor │ device_name
╞══════════╪════════╪══════════════╪════════════╪════════╪════════════════
│ 0x010601 │ 0x1d02 │ 0000:00:1f.2 │ 19 │ 0x8086 │ C600/X79 series
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x010601 │ 0x9130 │ 0000:07:00.0 │ 22 │ 0x1b4b │ 88SE9128 PCIe S
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x010802 │ 0x22f1 │ 0000:02:00.0 │ 21 │ 0x14a4 │ M8Pe Series NVM
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x020000 │ 0x1503 │ 0000:00:19.0 │ 10 │ 0x8086 │ 82579V Gigabit
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x020000 │ 0x10d3 │ 0000:0a:00.0 │ 25 │ 0x8086 │ 82574L Gigabit
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x030000 │ 0x0a65 │ 0000:01:00.0 │ 20 │ 0x10de │ GT218 [GeForce
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x040300 │ 0x0be3 │ 0000:01:00.1 │ 20 │ 0x10de │ High Definition
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x060000 │ 0x3c00 │ 0000:00:00.0 │ 0 │ 0x8086 │ Xeon E5/Core i7
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
│ 0x060100 │ 0x1d41 │ 0000:00:1f.0 │ 19 │ 0x8086 │ C600/X79 series
├──────────┼────────┼──────────────┼────────────┼────────┼────────────────
(...)HTH