Enabling IOMMU and SR-IOV in BIOS is essential for effective GPU passthrough and virtualization.
Best Practices for Enabling IOMMU and SR-IOV
1. Access BIOS/UEFI Settings
- Restart your computer and enter the BIOS/UEFI setup by pressing the appropriate key (often F2, DEL, or ESC) during boot.
2. Enable IOMMU
- For Intel CPUs: Look for options labeled as “Intel VT-d” or “IOMMU” and ensure they are enabled.
- For AMD CPUs: Find “AMD IOMMU” or similar settings and enable them.
- Location: Typically found under Advanced settings or CPU Configuration.
3. Enable SR-IOV
- Locate the SR-IOV setting within the BIOS. This may be under options like “Advanced > Chipset Configuration” or “Network Configuration.”
- Ensure that SR-IOV support is enabled.
4. Enable ACS (Access Control Services)
- If available, enable ACS to improve device isolation, which can help with PCI device passthrough.
- This option may be found in advanced settings related to PCIe configuration.
5. Save Changes and Exit
- After making these changes, save your settings (usually by pressing F10) and exit the BIOS/UEFI.
6. Update GRUB Configuration
- After rebooting into your operating system, edit the GRUB configuration file:
nano /etc/default/grub
- Add the following parameters to
GRUB_CMDLINE_LINUX_DEFAULT
:- For Intel:
intel_iommu=on iommu=pt
- For AMD:
amd_iommu=on iommu=pt
- For Intel:
- Update GRUB:
update-grub
7. Load Necessary Kernel Modules
- Ensure that the required VFIO modules are loaded by adding them to
/etc/modules
:vfio vfio_iommu_type1 vfio_pci vfio_virqfd
- Update initramfs:
update-initramfs -u -k all
8. Verify IOMMU Functionality
- After rebooting, check if IOMMU is functioning correctly by running:
dmesg | grep -e DMAR -e IOMMU
- You should see messages confirming that IOMMU is enabled.
9. Testing SR-IOV Configuration
- To test SR-IOV functionality, set the number of Virtual Functions (VFs) for your NIC:
echo N > /sys/class/net/<name_of_your_NIC>/device/sriov_numvfs
- Replace
N
with the desired number of VFs and<name_of_your_NIC>
with your network interface name.
10. Troubleshooting Common Issues
- If you encounter issues such as “Cannot allocate memory,” recheck BIOS settings or ensure that your hardware supports SR-IOV.
- Make sure no devices are busy before attempting to allocate VFs.
By following these best practices, you can effectively enable IOMMU and SR-IOV in your BIOS, paving the way for successful GPU passthrough and enhanced virtualization capabilities.