Enable IOMMU

Nollimox

Member
Mar 9, 2023
267
21
18
I was expecting a clear indication that the enabled process completed...not so clear, see image below...wondered why?

Screen Shot 2023-04-09 at 12.53.22 AM.png
 
That is not a clear test. Best way is to inspect the IOMMU groups using cat /proc/cmdline; for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done. If there is only one group with everything (number *) then IOMMU is not enabled, otherwise you can see which devices are in the same group (and cannot be split between VMs and/or the Proxmox host).
 
That is not a clear test. Best way is to inspect the IOMMU groups using cat /proc/cmdline; for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done. If there is only one group with everything (number *) then IOMMU is not enabled, otherwise you can see which devices are in the same group (and cannot be split between VMs and/or the Proxmox host).
Well, based on this result (see below), it seems to suggest that IOMMU isn't enabled despite vt-d enabled on bios - Dell Precision 3630MT i7-8700

Screen Shot 2023-04-09 at 8.50.55 AM.png
 
Well, based on this result (see below), it seems to suggest that IOMMU isn't enabled despite vt-d enabled on bios - Dell Precision 3630MT i7-8700

View attachment 49030
It's not the command I wished you had executed but it does appear that IOMMU (Intel VT-d) is not enabled. Would it be possible for you to connect to the Proxmox host via SSH and show the results of a command in (inline) code-tags for readability? To further troubleshoot the issue: what is the output of cat /proc/cmdline?
 
It's not the command I wished you had executed but it does appear that IOMMU (Intel VT-d) is not enabled. Would it be possible for you to connect to the Proxmox host via SSH and show the results of a command in (inline) code-tags for readability? To further troubleshoot the issue: what is the output of cat /proc/cmdline?
I did ran that command earlier...the result didn't seem to suggest whether it is or related to IOMMU...see below. It appears a lot of trouble just to enable SSH...tried but was lacked out (firewall), then went GUI firewall, and hope I would find an SSH enable button...no such luck for a noob neophyte.

Screen Shot 2023-04-09 at 8.20.57 AM.png
 
I did ran that command earlier...the result didn't seem to suggest whether it is or related to IOMMU...see below. It appears a lot of trouble just to enable SSH...tried but was lacked out (firewall), then went GUI firewall, and hope I would find an SSH enable button...no such luck for a noob neophyte.

View attachment 49031
As you can see there is no intel_iommu=on and without it IOMMU won't work. Most likely you changed GRUB but your Proxmox does not use GRUB.
Use these instructions in the manual to find out which bootloader is used, and then use these instructions to make change to kernel parameters accordingly and add intel_iommu=on as the manual prescribes for passthrough.
 
  • Like
Reactions: n@emh and Nollimox
As you can see there is no intel_iommu=on and without it IOMMU won't work. Most likely you changed GRUB but your Proxmox does not use GRUB.
Use these instructions in the manual to find out which bootloader is used, and then use these instructions to make change to kernel parameters accordingly and add intel_iommu=on as the manual prescribes for passthrough.
It's definitely Systemd-boot...UEFI...thank you and will follow with the second instruction...I even had that question in my mind while I was implementing the Grub.
 
So, I have made the change as well as remove the previously edited grub and update grub...
Screen Shot 2023-04-09 at 2.48.33 PM.png
 
You can use for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done to get a nice overview of the IOMMU groups and their various devices and functions (and numeric IDs for early binding to vfio-pci). But the Proxmox GUI should also show those numbers when you start adding PCI Device to a VM. Note that not all devices work with passthrough and some need work-arounds.
 
You can use for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done to get a nice overview of the IOMMU groups and their various devices and functions (and numeric IDs for early binding to vfio-pci). But the Proxmox GUI should also show those numbers when you start adding PCI Device to a VM. Note that not all devices work with passthrough and some need work-arounds.
The only device that will passthrough is an Intel i350-t4, two for pfSense WAN and LAN and another that will be a VPS/VPN passthrough to a FreePBX server. The Dell on-board NIC is already assigned to Proxmox management.

I got a syntax error and wondered whether I had execute it correctly...should I start at /sys?
Screen Shot 2023-04-09 at 6.29.38 PM.png
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!