How Do I Disable IOMMU on RHEL 10?

Updated May 4, 2026

Issue Details

I'm using RedHat Enterprise Linux (RHEL) version 10 or newer and I'm having issues with my NI drivers and hardware due to the restricted DMA of the newly enforced IOMMU features.  I'm seeing driver errors like described in the NI Linux Device Drivers Manual.  However, the steps given in the manual for Ubuntu machines don't work on my RHEL system.  The step sudo update-grub returns update-grub: command not found...

Solution

The update-grub command is actually a script that performs several actions and only exists on Ubuntu.  The easiest way to achieve the same thing on RHEL is to use the grubby command, which should be installed by default.

 

  • Verify grubby is installed: rpm -q grubby
    • Expected result is that the version of grubby installed is printed to the terminal: grubby-8.40-83.el10.x86_64
  • If grubby is not installed, then install it: sudo dnf install grubby
  • Add the proper kernel argument for IOMMU passthrough: sudo grubby --update-kernel=ALL --args=iommu=pt
    • If the command is successful, nothing will be printed to the terminal after entering the user's sudo password
  • Reboot the system
  • Confirm that the parameter is properly applied: journalctl -k | grep -i IOMMU
    • Expected result is a line like this in the kernel log: Apr 23 17:11:17 localhost kernel: iommu: Default domain type: Passthrough (set via kernel command line)
    • If the "Default domain type" is "Translated", IOMMU is enabled