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

最近在并夕夕用649.99大洋买了个四网口的N100准系统。
由于查了一些资料都不合适,所以自己参考别人的做法,整理了以下的安装方法。
参考网址:向这些作者致谢。
https://www.right.com.cn/forum/thread-8258222-1-1.html
https://www.bilibili.com/video/BV1AN4y1D7Bh/?spm_id_from=333.788.recommend_more_video.1评论区
https://bbs.x86pi.cn/thread?topicId=24
https://foxi.buduanwang.vip/virtualization/pve/2695.html/
https://github.com/strongtz/i915-sriov-dkms
http://mirrors.ustc.edu.cn/proxmox/debian/dists/bookworm/pve-no-subscription/binary-amd64/
在这里插入图片描述
配置如下:
在这里插入图片描述
在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文件

wget http://mirrors.ustc.edu.cn/proxmox/debian/dists/bookworm/pve-no-subscription/binary-amd64/proxmox-headers-6.5.11-7-pve_6.5.11-7_amd64.deb
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/dkmf.conf

nano /usr/src/i915-sriov-dkms/dkmf.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个,二选一自行测试。

英特尔® Arc™ 和锐®炬® Xe 显卡 - BETA - Windows* (intel.cn)

英特尔® Arc™ 和锐炬® Xe 显卡 - WHQL - Windows* (intel.cn)

下面是虚拟机的标准配置

机型选择,q35,bios选择ovmf。添加sriov设备的时候,勾选pcie和主gpu,勾了主gpu之后,pve就不会显示画面了,可以尝试吧显卡改成virtio-gpu,这样就可以显示控制台。如果装驱动43,把显示该成无。

  • 31
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值