PVE8直通核显(N100),并开启虚拟化Sriov

PVE8直通核显(N100),并开启虚拟化Sriov
Sam在BIOS开启VT-D,安装PVE8.1系统。
以下正式开始直通:
1、开启IOMMU直通功能
nano /etc/default/grub
2、找到:GRUB_CMDLINE_LINUX_DEFAULT=“quiet”,改为如下:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7”
3、使用命令 update-grub 保存更改并更新grub,并reboot重启.
update-grub
#重启
reboot
4、重启完后,运行dmesg | grep -e DMAR -e IOMMU看看有没输出,如果没有,说明IOMMU开启不成功。
dmesg | grep -e DMAR -e IOMMU
输出如下(未展示完整),设备不同,显示的信息也不同:
[ 0.014745] ACPI: DMAR 0x00000000734DC000 000088 (v02 INTEL EDK2 00000002 01000013)
[ 0.014780] ACPI: Reserving DMAR table memory at [mem 0x734dc000-0x734dc087]
[ 0.046876] DMAR: IOMMU enabled
[ 0.106676] DMAR: Host address width 39
[ 0.106677] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[ 0.106682] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 29a00f0505e
[ 0.106684] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[ 0.106688] DMAR: dmar1: reg_base_addr fed91000 ver 5:0 cap d2008c40660462 ecap f050da
[ 0.106690] DMAR: RMRR base: 0x0000007c000000 end: 0x000000803fffff
5、增加虚拟化驱动,加载vifo系统模块
nano /etc/modules
添加如下内容
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
这仅在必要时启用IOMMU转换,将iommu分组相关的内核模块启用,从而可以提高VM中未使用的PCIe设备的性能。
6、查询PVE8系统的内核版本
uname -r
显示
6.5.11-7-pve
可以看到内核版本是6.5.11-7-pve
根据这个版本来下载相应的Headers文件并安装。下载地址:http://mirrors.ustc.edu.cn/proxmox/debian/dists/bookworm/pve-no-subscription/binary-amd64/
7、安装Headers文件
dpkg -i proxmox-headers-6.5.11-7-pve_6.5.11-7_amd64.deb
安装成功,显示:
root@pve:~# dpkg -i proxmox-headers-6.5.11-7-pve_6.5.11-7_amd64.deb
Selecting previously unselected package proxmox-headers-6.5.11-7-pve.
(Reading database … 142444 files and directories currently installed.)
Preparing to unpack proxmox-headers-6.5.11-7-pve_6.5.11-7_amd64.deb …
Unpacking proxmox-headers-6.5.11-7-pve (6.5.11-7) …
Setting up proxmox-headers-6.5.11-7-pve (6.5.11-7) …
8、正式安装Sriov
安装一些包
apt install -y build- git unzip dkms*
下载Sriov驱动
git clone https://github.com/strongtz/i915-sriov-dkms.git
把clone的文件放到/usr/src去
mv i915-sriov-dkms /usr/src
编辑/usr/src/i915-sriov-dkms/dkms.conf
nano /usr/src/i915-sriov-dkms/dkms.conf
按实际情况修改为:
PACKAGE_NAME=”i915-sriov-dkms”
PACKAGE_VERSION=”6.5”
保存。
用dkms安装i915-sriov
dkms install -m i915-sriov -v dkms –force
检查一下有没有成功
dkms status
正常输出如下
i915-sriov-dkms/6.5, 6.5.11-7-pve, x86_64: installed
重启
reboot
9、添加开机启动Sriov脚本
echo ‘#!/bin/bash’ >>/etc/rc.local
echo “echo 7 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs” >>/etc/rc.local
chmod +x /etc/rc.local
注意,这里是开启7个vf,如果你想开2个vf,就改成2。
10、重启主机验证
经过这样的步骤,重启之后,使用lspci,可以看到多个0000:00:02设备。即代表成功。,如果要直通,按照正常的直通流程就行。
11、虚拟机要求
对于虚拟机配置,要求为OVMF+Q35配置。如果需要解码。请将虚拟机的显卡设置成无。对于Windows虚拟机,也需要将显卡设置无才能正常驱动。
Linux 排错
如果没有出现renderD128,那么请使用命令dmesg|grep i915获取日志。
Windows虚拟机
在必须满足虚拟机配置的前提下:安装当前最新的驱动,下面2个,二选一自行测试。