This repo is a code snapshot of the i915 and xe modules from the mainline linux kernel with SR-IOV support ported from the intel/mainline-tracking.git
Disclaimer: This repository is a community project and is NOT affiliated with, endorsed by, or connected to Intel Corporation. This kernel module is a port based on the mainline kernel and Intel's implementation and may contain experimental and unstable features. Please use it at your own risk.
This package is highly experimental, you should only use it when you know what you are doing.
You need to install this dkms module in both host and guest!
Required kernel: 6.12.x ~ 6.19.x
For older kernel (v6.8 ~ v6.12), please use the 2025.07.22 release.
For v6.1 ~ v6.7, please use intel-lts-v6.1 branch instead.
It is recommended that to upgrade to a supported kernel, the older branches will no longer be maintained.
Note on Secure Boot: Loading out-of-tree kernel modules requires Secure Boot to be disabled. If you require Secure Boot, ensure you are using a signed kernel and follow the instructions in the UEFI Secure Boot Enabled Configuration guide to sign the module.
Starting from the current version, this repo provides both the i915 and xe drivers. You can switch between them by modifying the kernel parameters.
intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe
intel_iommu=on xe.max_vfs=7 xe.force_probe=${device_id} module_blacklist=i915
Xe module currently does not support MTL (Meteor Lake) and LNL (Lunar Lake) platforms. Please use i915 instead.
Replace ${device_id} with the output from cat /sys/devices/pci0000:00/0000:00:02.0/device command
echo 7 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs
You can create up to 7 VFs on Intel UHD Graphics
If you encounter any issues that prevent the system from booting properly (e.g., a hang or black screen), you can temporarily disable the module by modifying the kernel command line at boot.
-
At the boot menu, select the desired kernel and press
eto edit the boot parameters. -
Locate the line starting with linux and append
module_blacklist=i915,xeto the end of it (preceded by a space). -
Press F10 or Ctrl+X to boot.
-
Press
eat the boot menu to edit the kernel parameters. -
Append
module_blacklist=i915,xeto the end of the existing line (preceded by a space) -
Press Enter to boot.
Once the system is up, you can inspect the kernel logs to troubleshoot. If the module remains unstable, follow the Uninstallation steps in your distribution's installation guide to remove the module.
For detailed installation instructions, please refer to the specific guide for your operating system:
- Arch Linux Host
- NixOS Linux Host (Tested Kernel 6.17)
- Proxmox PVE Host (PVE 9.1)
- Manual Host Installation Steps - Applicable to Debian, Ubuntu, and Arch Linux hosts.
- Linux Guest (Ubuntu 25.04/Kernel 6.14)
- Linux Guest (Ubuntu 25.04 Cloud-Init VM on Proxmox)
- Windows Guest (Tested with Proxmox 8.3 + Windows 11 24H2 + Intel Driver 32.0.101.6460/32.0.101.6259)
- Block VFs on the Host (Optional) - Applicable to Arch Linux, Ubuntu, and Proxmox VE hosts.
- UEFI Secure Boot Enabled Configuration (Optional) - Applicable to Ubuntu, Proxmox VE, and Debian-based distributions.
Major contributors to this repository are listed below.
- @strongtz Create the initial dkms module
- @zhtengw Rebase on the linux-intel-lts (v5.15, v6.1) , support for v6.1~v6.4, participation in 15+ issues
- @bbaa-bbaa Rebase on the mainline-tracking linux/v6.12 branch, support for v6.8~v6.13, participation in 10+ issues
- @pasbec Major refactor to the repo, support for (v6.2, v6.5, v6.8), participation in 20+ issues
- @shenwii Support for (v6.7, v6.9)
- @MotherOfTheGracchi Support for v6.5.3
- @michael-pptf Several updates to README.md, participation in 20+ issues
- @NightMean Refactored README.md to use OS-specific subpages and added the Proxmox Ubuntu Cloud-Init installation guide