iommu enable

hussi

New Member
Feb 26, 2025
3
0
1
hello ;
ihave problem enabling iommu and passthrough pci devises>
my gear:
cpu intel core 2 quad q9650
motherboard gigabyte ga-p41t-d3p (rev. 1.5)
ram 8 g
gpu gt9500

Code:
 cat /proc/cmdline

return with
Code:
BOOT_IMAGE=/vmlinuz-6.8.12-8-pve root=ZFS=/ROOT/pve-1 ro root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet /sys/module/kvm/parameters/ignore_msrs intel_iommu=on

Code:
lsmod | grep vfio

return with
Code:
vfio_pci               16384  0
vfio_pci_core          86016  1 vfio_pci
irqbypass              12288  2 vfio_pci_core,kvm
vfio_iommu_type1       49152  0
vfio                   65536  3 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd                94208  1 vfio

Code:
dmesg | grep -e DMAR -e IOMMU

return with
Code:
[    0.056635] DMAR: IOMMU enabled
[    0.417629] pci 0000:00:00.0: DMAR: Disabling IOMMU for graphics on this chipset
[    0.417632] pci 0000:00:00.0: DMAR: Forcing write-buffer flush capability

Code:
for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nnks "${d##*/}"; done

return with
Code:
IOMMU group * 00:00.0 Host bridge [0600]: Intel Corporation 4 Series Chipset DRAM Controller [8086:2e30] (rev 03)
        Subsystem: Gigabyte Technology Co., Ltd 4 Series Chipset DRAM Controller [1458:5000]
00:01.0 PCI bridge [0604]: Intel Corporation 4 Series Chipset PCI Express Root Port [8086:2e31] (rev 03)
        Subsystem: Gigabyte Technology Co., Ltd 4 Series Chipset PCI Express Root Port [1458:5000]
        Kernel driver in use: pcieport
00:1b.0 Audio device [0403]: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-D525TUD (Realtek ALC887) [1458:a002]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-D525TUD [1458:5001]
        Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd NM10/ICH7 Family PCI Express Port 2 [1458:5001]
        Kernel driver in use: pcieport
00:1d.0 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-D525TUD [1458:5004]
        Kernel driver in use: uhci_hcd
        Kernel modules: uhci_hcd
00:1d.1 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-D525TUD [1458:5004]
        Kernel driver in use: uhci_hcd
        Kernel modules: uhci_hcd
00:1d.2 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-D525TUD [1458:5004]
        Kernel driver in use: uhci_hcd
        Kernel modules: uhci_hcd
00:1d.3 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-D525TUD [1458:5004]
        Kernel driver in use: uhci_hcd
        Kernel modules: uhci_hcd
00:1d.7 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-D525TUD [1458:5006]
        Kernel driver in use: ehci-pci
        Kernel modules: ehci_pci
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev e1)
        Subsystem: Gigabyte Technology Co., Ltd Motherboard [1458:5000]
00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd 82801GB/GR (ICH7 Family) LPC Interface Bridge [1458:5001]
        Kernel driver in use: lpc_ich
        Kernel modules: intel_rng, lpc_ich, leds_ss4200
00:1f.2 IDE interface [0101]: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] [8086:27c0] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd NM10/ICH7 Family SATA Controller [IDE mode] [1458:b002]
        Kernel driver in use: ata_piix
        Kernel modules: pata_acpi
00:1f.3 SMBus [0c05]: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da] (rev 01)
        Subsystem: Gigabyte Technology Co., Ltd GA-8I945PG-RH/GA-D525TUD Mainboard [1458:5001]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G96C [GeForce 9500 GT] [10de:0640] (rev a1)
        Kernel driver in use: nouveau
        Kernel modules: nvidiafb, nouveau
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
        Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet [1458:e000]
        Kernel driver in use: r8169
        Kernel modules: r8169


please help me
 
The CPU supports VT-d and Proxmox enables it automatically (if it is supported) since kernel 6.8. You don't need intel_iommu=on and /sys/module/kvm/parameters/ignore_msrs does not make sense (or the kernel command line).
I have a hard time finding out if your motherboard (or chipset) supports VT-d. Is there a VT-d or IOMMU setting in the motherboard BIOS (or manual)?

EDIT: The G41 chipset does not support VT-d/IOMMU according to https://en.wikipedia.org/wiki/List_of_Intel_chipsets .
 
Last edited:
  • Like
Reactions: hussi
According to Intel this chip does theoretically support VT-d but based on this
Code:
[    0.056635] DMAR: IOMMU enabled
[    0.417629] pci 0000:00:00.0: DMAR: Disabling IOMMU for graphics on this chipset
[    0.417632] pci 0000:00:00.0: DMAR: Forcing write-buffer flush capability
it may not be supported in this implementation. Could be the BIOS or the chipset. That old GPU may not support pass-through either (you have old-school PCI slots, not PCI-e). Nobody cared about any of this in 2008 when this setup was first shipped.

I suggest looking into getting a more modern mini-PC. An N100 uses 6 watts of power vs 145 for this CPU+GPU, has 2x the performance, and costs $200 US brand-new with 16 GB of RAM and 1/2 TB SSD. There are also tons of off-lease corporate mini-PC's on eBay for really cheap prices that would be more suitable for virtualization.
 
  • Like
Reactions: hussi
The CPU supports VT-d and Proxmox enables it automatically (if it is supported) since kernel 6.8. You don't need intel_iommu=on and /sys/module/kvm/parameters/ignore_msrs does not make sense (or the kernel command line).
I have a hard time finding out if your motherboard (or chipset) supports VT-d. Is there a VT-d or IOMMU setting in the motherboard BIOS (or manual)?

EDIT: The G41 chipset does not support VT-d/IOMMU according to https://en.wikipedia.org/wiki/List_of_Intel_chipsets .
thank you for the quick response
 
According to Intel this chip does theoretically support VT-d but based on this
Code:
[    0.056635] DMAR: IOMMU enabled
[    0.417629] pci 0000:00:00.0: DMAR: Disabling IOMMU for graphics on this chipset
[    0.417632] pci 0000:00:00.0: DMAR: Forcing write-buffer flush capability
it may not be supported in this implementation. Could be the BIOS or the chipset. That old GPU may not support pass-through either (you have old-school PCI slots, not PCI-e). Nobody cared about any of this in 2008 when this setup was first shipped.

I suggest looking into getting a more modern mini-PC. An N100 uses 6 watts of power vs 145 for this CPU+GPU, has 2x the performance, and costs $200 US brand-new with 16 GB of RAM and 1/2 TB SSD. There are also tons of off-lease corporate mini-PC's on eBay for really cheap prices that would be more suitable for virtualization.
thank you >>
i will look for a replace of my gear soon.
 
This is quite the wrong way to fix anything. First all those n100 and so.. yes they are power efficient.. that mean just skip 1 of those 10$ coffee and it's the same end result. And on perf, a 18yrs old 4780cpu is about the equivalent. The real issue is the use of prox8.3 as being the cause of the problem. Using prox 8.0 or 8.1 iso will fix and enable full passthough without problem on your system. This is mostly following the whole plague of pushing updated every 4seconds and having user try to test and check what bugs are... this cost less in developpmnent and phone are the worst.

If you do a simple full lspci, we can see problem directly and quite easy as a full mixup. Here a quick example over a, so old pc of 7yrs ago, with prox8.3 iso :
:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:1910] (rev 0a)
DeviceName: WIFI
.. and the vga being called : CPU.

And if you read all topics of near 6pages per day, this can indeed be tricky to find, here over a micro post that they told they do a fix.. :

https://forum.proxmox.com/threads/a...no-such-file-or-directory.157266/#post-720435

Now how to fix, another search but mostly: apt update / apt install pve-kernel-6.8.12-5-pve ..another 600megs

Or just stay on prox 8.1. When you do config and have all working, stay on it, a server is not a phone, no update. Of course a server plug directly to the internet is another problem, but on management level... firewall must be before and so on.