Enable IOMMU
Most distros use GRUB as a bootloader, but these instructions work as well for sytemd-boot, for an example of systemd-boot, check the Pop!_OS example below (it's basically the same as GRUB really)
Set the parameter respective to your system in the grub config:
AMD CPU | Intel CPU |
---|---|
Kernel auto-detects if IOMMU is enabled in BIOS | intel_iommu=on |
More info: Arch Wiki Enabling IOMMU
Mostly for AMD users, the parameter video=efifb:off
can fix issues when returning back to the host, it is recommended that you add it.
The default path, for distros that aren't listed below, is /etc/default/grub
, to update it after you edited the file, run sudo grub-mkconfig
or search for your distro specific grub update command
Ubuntu, Linux Mint, or any debian based distro
Run sudo nano /etc/default/grub
Edit the line that starts with GRUB_CMDLINE_LINUX
so it ressembles something like this, keeping the previous parameters:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on quiet splash"
Update grub with the command sudo update-grub
Arch linux, and most Arch based distros
Run sudo nano /etc/default/grub
Edit the line that starts with GRUB_CMDLINE_LINUX_DEFAULT
so it ressembles something like this, keeping any previous parameters if there is any:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"
Update grub with the command sudo grub-mkconfig -o /boot/grub/grub.cfg
Fedora, and Fedora based distros
Run sudo nano /etc/default/grub
Edit the line that starts with GRUB_CMDLINE_LINUX
so it ressembles something like this, keeping the previous parameters:
GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap intel_iommu=on quiet"
Update grub with the command sudo grub-mkconfig -o /boot/grub/grub.cfg
for Fedora 34 and up, sudo grub-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
for Fedora 33 and lower
Pop!_OS
Run sudo nano /boot/efi/loader/entries/Pop_OS-current.conf
Edit the line that starts with options
so it ressembles something like this, keeping the previous parameters:
options root=UUID=211de945-3abe-4b4e-87f1-4ec1a062d9b6 ro quiet loglevel=0 systemd.show_status=false intel_iommu=on splash
Update grub with the command sudo bootctl update
Manjaro
Avoid using Manjaro, as it has many issues.
Run sudo nano /etc/default/grub
Edit the line that starts with GRUB_CMDLINE_LINUX_DEFAULT
so it ressembles something like this, keeping the previous parameters:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on quiet apparmor=1 security=apparmor udev.log_priority=3"
Update grub with the command sudo update-grub
OpenSuse
Run sudo nano /etc/default/grub
Edit the line that starts with GRUB_CMDLINE_LINUX_DEFAULT
so it ressembles something like this, keeping the previous parameters:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on splash=silent resume=/dev/disk/by-uuid/1652c07d-e2ba-4161-af2f-3e874eedfe1a mitigations=auto quiet"
Update grub with the command sudo grub-mkconfig -o /boot/grub/grub.cfg
IMPORTANT: REBOOT your system to apply the new changes.