图形虚拟化技术支持每个英特尔®图形家族
图形虚拟化技术支持每个英特尔®图形家族
英特尔持续推动英特尔®图形处理器上的图形虚拟化技术。这些技术中的最新技术是单根 IO 虚拟化 (SR-IOV),它取代了之前的 英特尔® Graphics Virtualization Technology –g (GVT-g)
要了解每个英特尔®显卡家族支持哪种显卡虚拟化技术,请参阅下表:
原文连接:图形虚拟化技术支持每个英特尔®图形家族
PVE内核版本:6.8.12-4-pve
建议操作前更新一次源
apt update -y
安装必要的软件包
apt install build-* dkms git sysfsutils -y
安装所需版本的内核和头文件
apt install proxmox-headers-$(uname -r) proxmox-kernel-$(uname -r)
以下建议在home目录执行,所以现切换到home目录
cd ~
拉取最新i915-sriov-dkms
git clone https://github.com/strongtz/i915-sriov-dkms.git
进入i915-sriov-dkms目录
cd ~/i915-sriov-dkms
将当前目录中的内核模块添加到DKMS
dkms add .
添加完成后可以在/usr/src/目录看到已经添加进来的内核模块i915-XXXX
编译并安装该模块
dkms install i915-sriov-dkms/2025.02.03
执行以下命令,确认显卡ID是不是00:02.0
lspci | grep VGA
确认后,调整内核命令行
nano /etc/default/grub
把GRUB_CMDLINE_LINUX_DEFAULT 的参数值改成 intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe"
这里要注意,如果要虚拟成7个核显,则i915.max_vfs=7;如果要虚拟成3个核显,则i915.max_vfs=3
更新grub和initramfs
update-grub
update-initramfs -u
建议再补充执行一次
pve-efiboot-tool refresh
启用VFs
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
#注意,这里的sriov_numvfs = X"必须与上一步的i915.max_vfs=X 数值相同
如果你的显卡ID不是00:02.0,则也需要做相应的调整
重启PVE后执行
lspci | grep VGA
你就可以看到虚拟化的核显已经出现
最后,你就能通过VFs到LXCs或VMs。
切勿将00.02.0那个物理GPU / PF传递给VM,这会使所有其他VF崩溃。
This repo is a code snapshot of the i915 module from https://github.com/intel/mainline-tracking/tree/linux/v6.12 and will randomly merge patches from the linux-stable tree.
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!
Tested kernel versions: 6.12.10-zen1/6.11.9-arch1/6.10.9-arch1/6.9.10-arch1/6.8.9-arch1 with ArchLinux
intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe
Besides intel_iommu=on
, the other 3 parameters could be applied by modprobe
by putting following content to /etc/modprobe.d/i915-sriov-dkms.conf
blacklist xe
options i915 enable_guc=3
options i915 max_vfs=7
echo 1 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs
You can create up to 7 VFs on Intel UHD Graphics
For Arch Linux users, it is available in AUR. i915-sriov-dkms
You also can download the package from the releases page and install it with pacman -U
.
apt install build-* dkms
apt install proxmox-headers-6.8 proxmox-kernel-6.8
(for unsigned kernel).Download deb package from the releases page
wget -O /tmp/i915-sriov-dkms_2025.05.18_amd64.deb "https://github.com/strongtz/i915-sriov-dkms/releases/download/2025.05.18/i915-sriov-dkms_2025.05.18_amd64.deb"
dpkg -i /tmp/i915-sriov-dkms_2025.05.18_amd64.deb
nano /etc/default/grub
and change GRUB_CMDLINE_LINUX_DEFAULT
to intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe
, or add to it if you have other arguments there already.grub
and initramfs
by executing update-grub
and update-initramfs -u
proxmox-boot-tool
.sysfs
attribute must be set. Install sysfsutils
, then do echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
, assuming your iGPU is on 00:02 bus. If not, use lspci | grep VGA
to find the PCIe bus your iGPU is on.We will need to run the same driver under Linux guests.
Install build tools
apt install build-* dkms linux-headers-$(uname -r) linux-modules-extra-$(uname -r)
Download and install the .deb
wget -O /tmp/i915-sriov-dkms_2025.05.18_amd64.deb "https://github.com/strongtz/i915-sriov-dkms/releases/download/2025.05.18/i915-sriov-dkms_2025.05.18_amd64.deb"
dpkg -i /tmp/i915-sriov-dkms_2025.05.18_amd64.deb
Update kernel parameters nano /etc/default/grub
and change GRUB_CMDLINE_LINUX_DEFAULT
to i915.enable_guc=3 module_blacklist=xe
, or add to it if you have other arguments there already.
Example:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=3 module_blacklist=xe"
Once that's done, update grub
and initramfs
, then reboot.
update-grub
update-initramfs -u
Once the VM is back up again, do dmesg | grep i915
to see if your VF is recognized by the kernel. You should also check if xe
is blacklisted correctly by running lspci -nnk
to see which driver is in use by the VF.
Optionally, install vainfo
by running apt install vainfo
, then do vainfo
to see if the iGPU has been picked up by the VAAPI.
If OpenCL is desired:
apt install intel-opencl-icd
apt install clinfo
clinfo
Thanks for resiliencer and his contribution in #225.
These steps ensure compatibility across all driver versions. In theory you can install any version and won't be hit by the dreaded Code 43
.
UEFITool_NE_A68_win64
for Windows. They supply Linux and Mac binaries, too).cap
)Action - Search
or use keyboard shortcut ctrl+F
and search for Hex string 49006e00740065006c00280052002900200047004f0050002000440072006900760065007200
Extract body...
intelgopdriver_desktop
and it would save as intelgopdriver_desktop.bin
.Get-FileHash -Path "path-to-rom" -Algorithm SHA256
131c32cadb6716dba59d13891bb70213c6ee931dd1e8b1a5593dee6f3a4c2cbd
FA12486D93BEE383AD4D3719015EFAD09FC03352382F17C63DF10B626755954B
/usr/share/kvm
directory on Proxmox host. I uploaded it to a NAS and downloaded it with wget
.CPU
as host
.Shift+F10
at the first setup screen and type OOBE\BYPASSNRO
. The VM will reboot, and you can choose "I don't have Internet" option to set up a local account. Alternatively, you can remove the network device from the Windows VM.# Passing the 02.1 VF, specify the romfile. ROM path is relative
hostpci0: 0000:00:02.1,pcie=1,romfile=Intelgopdriver_desktop.efi,x-vga=1
Hardware
tab, set Display
to none
.See also: #8 (comment)
apt install build-essential dkms git
/ pacman -S base-devel dkms git
.apt install linux-headers-$(uname -r)
/ pacman -S linux-headers
.git clone https://github.com/strongtz/i915-sriov-dkms.git
.dkms add ./i915-sriov-dkms
.dkms install i915-sriov-dkms/2025.05.18
.nano /etc/default/grub
and change GRUB_CMDLINE_LINUX_DEFAULT
to intel_iommu=on i915.enable_guc=3 i915.max_vfs=7
, or add to it if you have other arguments there already.grub
and initramfs
by executing update-grub
and update-initramfs -u
/ for Arch Linux grub-mkconfig -o /boot/grub/grub.cfg
and mkinitcpio -P
.sysfsutils
to set the number of VFs on boot. Install sysfsutils
, then do echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
, assuming your iGPU is on 00:02 bus. If not, use lspci | grep VGA
to find the PCIe bus your iGPU is on.Remove the package with dpkg -P i915-sriov-dkms
Remove the package with pacman -R i915-sriov-dkms
Remove the dkms module with dkms remove i915-sriov-dkms/2025.05.18
GitHub连接:GitHub - strongtz/i915-sriov-dkms: dkms module of Linux i915 driver with SR-IOV support
https://blog.xqlee.com/article/2505201108075004.html