I915 driver with SR-IOV on 13th Gen i7-13700

This thread was initially a search for a solution, however I ended up finding the solution myself. As such here are the steps I took to get SR-IOV working on my hardware. I’ve included links to my logs for reference.

I’ve done all of the following over SSH.

Hardware

This installation was tested on the following hardware. Your experience may vary on other hardware.

Motherboard: Asrock LiveMixer Z790 (BIOS version 7.04)
CPU: Intel 13th Gen Core i7-13700
RAM: G.Skill 64GB DDR5-6000

Proxmox Host Installation

Note: In my case I am starting from a fresh installation of Proxmox 7.4-1

Step 0:
(If your installing on this model motherboard you might experience a problem where the NIC number keeps changing upon reboot. These instructions are for you!)

  1. nano /etc/defaults/grub
    1. Change your GRUB_CMDLINE_LINUX_DEFAULT to the following > GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on net.ifnames=0 biosdevname=0
  2. update-grub
  3. shutdown -r now To reboot
  4. The names of the NICs have changed and you’ll need to edit /etc/network/interfaces to restore network connectivity. You can use ip a to see what the new names are. In my case it was eth0.
  5. shutdown -r now To reboot

Step 1

  1. bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)
    (This script does post installation prep such as disabled unusable sources and updating the host. This script was not created by myself and comes from here)
  2. apt install pve-kernel-6.2.9-1-pve git sysfsutils linux-headers-6.2.9-1-pve build-* dkms
    (This kernel version worked for me. I have tested the newest kernel as well with no success.It was also mentioned here as tested/working)
  3. bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/microcode.sh)"
    (Hit Y to the reboot. This script downloads the latest microcode for your processor. his script was not created by myself and comes from here)
  4. cd /usr/src
  5. git clone https://github.com/strongtz/i915-sriov-dkms.git
  6. nano /usr/src/i915-sriov-dkms-6.1/dkms.conf
    1. Change PACKAGE_NAME to PACKAGE_NAME=“i915-sriov-dkms”
    2. Change PACKAGE_VERSION to PACKAGE_VERSION=“6.1”
  7. mv i915-sriov-dkms i915-sriov-dkms-6.1
  8. dkms install --force -m i915-sriov-dkms -v 6.1
  9. nano /etc/defaults/grub
    1. Change your GRUB_CMDLINE_LINUX_DEFAULT to the following GRUB_CMDLINE_LINUX_DEFAULT=“quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 net.ifnames=0 biosdevname=0”
  10. update-grub && update-initramfs -u
  11. echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
    (Note: In my case the onboard VGA was 00:02.0)
  12. shutdown -r now To reboot

Validation

You should now have srvio enabled for i915. To confirm this run dmesg | grep i915 You should Running in SR-IOV PF mode.

Here’s my logs for reference:
dmesg | grep i915
dmesg

I hope this is helpful. I welcome all feedback as i’m not a Linux guru.

Sources:
1
2

3 Likes

I’m also looking to set up SRIOV. Mind if I ask what kernel version/config you’ve got?

Hello,

As mentioned above, I am using Kernel 6.2.9-1-pve. What do you mean by config? I have posted all the configuration steps above.