第二篇 IGPU直通
教程参考:Enabling the iGPU on Intel Processors

Hetzner 的 Dedicated Server 上面的 CPU 一般是带有核显的,不打开它属实是有点浪费但又不如Nvidia RTX A4000 那些CUDA工作卡(不能当显卡来用是因为没有相应的显示驱动,只能用于AI这个方面上)的性能,因此这里是可开可不开的这样非必需选项。

本次教程将为您提供开启Intel Core I5-13500 or I9-13900 这两个标准版处理器上的核显功能并直通于PVE上。供PVE的虚拟机上视频编解码。
教程目录:
- Step 1 : 开启bios的核显功能
- Step 2 : Debian/PVE 上检查并启用IGPU
- Step 3 : 调整 Grub 设置
- Step 4 : 安装 DKMS 核显直通
- Step 5 : 虚拟机开启核显

Step 1 : 开启BIOS的核显功能
与本教程的第一篇的操作方法一样:(第一篇)。

在上图中,开启IGPU,开启要求如下:
- 首选显卡:CPU Graphics
- 初始化iGPU:Enabled
- DVMT Pre-Allocated:64M(建议256M)
- RC6(Render Standby):Enabled
保存并退出,重启宿主机之后,进入第二步。
Step 2 : Debian/PVE 上检查并启用IGPU
重启宿主机之后,在命令行界面输入以下命令以检查当前系统是否开启了IGPU:
root@BSX05 ~ #
root@BSX05 ~ # ls -la /dev/dri
如输出以下结果,则IGPU处于屏蔽状态:(如不是,请直接跳转到“Step 3 : 调整 Grub 设置”这一步)
ls: cannot access '/dev/dri': No such file or directory
用文本编辑器打开“/etc/modprobe.d/blacklist-hetzner.conf ”,找出“blacklist i915”并在此前头加入注释“ # ”。
root@BSX05 ~ # vim /etc/modprobe.d/blacklist-hetzner.conf
blacklist-hetzner.conf 内容:
### Hetzner Online GmbH - installimage
### silence any onboard speaker
blacklist pcspkr
blacklist snd_pcsp
### i915 driver blacklisted due to various bugs
### especially in combination with nomodeset
#blacklist i915
#blacklist i915_bdw
### mei driver blacklisted due to serious bugs
blacklist mei
blacklist mei-me
blacklist sm750fb
保存并退出。
Step 3 : 调整 Grub 设置
root@BSX05 ~ # vim /etc/default/grub
用文本编辑器打开“ /etc/default/grub ”,找到:
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset consoleblank=0"
去除 nomodeset:
GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
更新 Grub 文件:
root@BSX05 ~ # sudo grub-mkconfig -o /boot/grub/grub.cfg
重启宿主机,完毕后进入命令行界面,输入:ls -la /dev/dri ,输出结果应当如下:

—-分隔符—-

Step 4 : 安装 DKMS 核显直通
- 如果是Debian 12的,请先安装好 Proxmox VE 8.4 再返回到此继续安装 DKMS 核显直通
- 如果是PVE,开始执行以下步骤
教程参考及源码来源:i915-sriov-dkms
1.安装DKMS所需的内核头文件和所需包:
apt install pve-headers-$(uname -r)
apt install build-essential dkms git
apt install sysfsutils
apt install pve-firmware
注:安装之前请先输入 uname -r 查看PVE内核:
root@BSX05 ~ # uname -r
6.8.12-10-pve
(发布之时的目前内核版本)
2.复制DKMS模块源码:
git clone https://github.com/strongtz/i915-sriov-dkms.git
cd i915-sriov-dkms/
3.安装DKMS模块:
dkms add .
dkms install -m i915-sriov-dkms -v $(cat VERSION) --force
4.修改Grub文件:
· 用文本编辑器打开:/etc/default/grub
root@BSX05 ~ # vim /etc/default/grub
· 在 “ GRUB_CMDLINE_LINUX_DEFAULT ”后面添加如下内容:
GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0 intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"
· 更新Grub以及initramfs:
update-grub
update-initramfs -u
5.配置总线设备文件:
1.查找iGPU总线地址:
root@BSX05 ~ # lspci
00:00.0 Host bridge: Intel Corporation Device 4640 (rev 02)
00:01.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 (rev 02)
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.1 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.2 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.3 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.4 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.5 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.6 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.7 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:06.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 (rev 02)
00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01)
00:14.0 USB controller: Intel Corporation Raptor Lake USB 3.2 Gen 2x2 (20 Gb/s) XHCI Host Controller (rev 11)
00:14.2 RAM memory: Intel Corporation Raptor Lake-S PCH Shared SRAM (rev 11)
00:15.0 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller (rev 11)
00:16.0 Communication controller: Intel Corporation Raptor Lake CSME HECI (rev 11)
00:17.0 SATA controller: Intel Corporation Raptor Lake SATA AHCI Controller (rev 11)
00:1a.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port (rev 11)
00:1c.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port (rev 11)
00:1c.2 PCI bridge: Intel Corporation Raptor Point-S PCH - PCI Express Root Port 3 (rev 11)
00:1d.0 PCI bridge: Intel Corporation Device 7a36 (rev 11)
00:1f.0 ISA bridge: Intel Corporation Device 7a06 (rev 11)
00:1f.4 SMBus: Intel Corporation Raptor Lake-S PCH SMBus Controller (rev 11)
00:1f.5 Serial bus controller: Intel Corporation Raptor Lake SPI (flash) Controller (rev 11)
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
复制如下图所标记的:

2.修改 sysfs.conf :
· 输入此命令以加入sysfs.conf:
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
· 其中7是最终要生成的VF数量,最多只支持7个。如果你不需要这么多,可以适当修改。
3.重启宿主机 :
systemctl reboot
4.检查宿主机上的DKMS启用情况 :
如下图,显示更多的VF为正常启用:

至此,您的PVE已经支持核显直通功能,可以为您的虚拟机增添视频编解码功能!
Step 5 : 虚拟机开启核显
1.在PVE Web管理页面,选择其中一个需要开启的虚拟机,点击“硬件”,进入虚拟机硬件设置界面:

2.点选“添加”:

3.添加 PCI 设备:

4. PCI 设备设置界面中选择 原始设备 :

5.请选择除 0000:00:02.0 之外的英特尔核显(如红圈所示):


6.选择后点击“添加”,然后打开虚拟机,下载并安装英特尔核显驱动,提前设置好远程控制:

7.安装驱动成功之后,请关机,回到“硬件”设置界面,将“显示”设置为“无”:

8.点击“OK”之后,回到那个 PCI 设备设置界面,将“主GPU”勾选上:

9.保存后,此时您不能从PVE界面上的noVNC进入系统显示界面,因为“显示”已设置为无,最好使用远程控制软件进行控制。

—分隔符—


Pingback: 在Hetzner独立服务器上使用 Proxmox VE 8.4 教程·第一篇 – LandC77's blog