大小核All-In-One主机PVE玩机入门

12-14 代 Intel 大小核 All-In-One 主机的 PVE 玩机入门指南。主要技术要点包括:虚拟机指定大小核运行及核显虚拟化。Intel 处理器安装 PVE 玩 All-In-One 方面确实更有优势。看似鸡肋的大小核,因为 PVE 可指定系统运行在大小核上,资源分配可以更合理。Intel 核显支持 vGPU 更是先天优势: Intel 核显不俗的解码性能,可以 sriov 虚拟化把核显拆分给多个系统使用,又不占用主系统的显示输出。

自动草稿

因为我之前也用 AMD R5-5600G 搭建过 All-In-One,相比之下 Intel 处理器的可玩性确实更强。

PVE 换源

PVE 的安装流程这里不重复讲解了,内容从换源开始。PVE 有不少国内源可选择,这里以 ustc 源为例。首先替换 PVE 系统源:

curl -fsSL https://mirrors.ustc.edu.cn/repogen/conf/debian-https-4-bookworm -o /etc/apt/sources.list

 

然后替换 PVE 软件源,路径是 /etc/apt/sources.list.d/pve-enterprise.list

vim /etc/apt/sources.list.d/pve-enterprise.list
#修改为
deb https://mirrors.ustc.edu.cn/proxmox/debian bookworm pve-no-subscription

 

修改完成后安装软件源密钥:

#下载安装软件源密钥
wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

 

替换 PVE ceph 源,路径是 /etc/apt/sources.list.d/ceph.list

vim /etc/apt/sources.list.d/ceph.list
# 修改为
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

 

然后更新并升级系统和软件:

apt update && upgrade

 

虚拟机指定大小核

12代开始 Intel 引入大小核技术。在使用 PVE 搭建虚拟机时,不想因为大小核导致虚拟机性能反复横跳,可以指定虚拟机运行在大核或者小核上。比如:Windows 对性能要求高,可以分配全大核;NAS 系统对性能要求不高,分配小核心。通过 lscpu 命令可查看所有的 CPU 核心编号:

lscpu -e

 

下面案例中:0-7 为大核线程(其中 0-1、2-3、4-5、6-7 分别为 4 个独立大核心),在分配大核时最好把每个独立核心进行分配比如 0-1,不要跨核心线程分配比如 1-2。

自动草稿

在创建虚拟机时,打开 CPU 高级设置,可以通过 CPU Affinity 参数指定虚拟机运行的核心(本案例指定虚拟机运行在 0-1、2-3、4-5 三个大核上)。这里还分享一点:在进行核显 vGPU 直通时建议 CPU 类型设置为 host 避免出现核显 43 错误:

自动草稿

也可以通过修改虚拟机配置文件来实现指定处理器核心:

vim /etc/pve/nodes/Q1J4/qemu-server/100.conf

 

通过添加 affinity: 参数指定虚拟机运行的 CPU 核心(affinity: 6-7):

boot: order=sata0;net0
cores: 2
affinity: 6-7
cpu: x86-64-v2-AES
ide2: local:iso/debian-12.5.0-amd64-DVD-1.iso,media=cdrom,size=3808M
memory: 4096
meta: creation-qemu=8.1.5,ctime=1716488956
name: debian
net0: virtio=BC:24:11:91:52:FD,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
sata0: local-lvm:vm-100-disk-0,size=60G
scsihw: virtio-scsi-single
smbios1: uuid=81b91566-1f46-4361-beb2-cbcd62c92db9
sockets: 1
vmgenid: af0e00ce-9d82-4efb-907a-50a81e282364

 

核显虚拟化

Intel 支持核显虚拟化。关于核显究竟是直通好还是虚拟化好,我个人的意见是虚拟化好。直通牺牲了 PVE 主机显示输出,在需要调试设备时还是会造成不便。不过如果你还有额外的独显,我更建议独显设置直通。

核显虚拟化后,既可以满足主系统显示,又可以给其他系统提供 3D 和解码性能。尤其是 Intel 核显有不俗的解码能力,无论是用于 Docker 解码,还是 Windows 主机用于剪辑和转码都很好用。

核显虚拟主板 BIOS 必须开启虚拟化并支持 sriov。PVE 需要安装 i915-sriov-dkms ,网上有很多搬运教程但大多漏了一些重要细节和疑难解答。针对网上的方法我这里做了一个优化和补充,更适合新手:

方法一:编译法

首先下载 i915-sriov-dkms 的源码

源码地址放不了

关于 i915-sriov-dkms 项目,作者的 Blog 做了详细说明:目前 5月24 版本还不支持最新的 6.8 内核。在 6.5.13-5 内核上编译可能会遇到出错(主要原因是 BIOS 开启安全模式导致)。为了更稳定地编译,作者推荐选择 6.5.13-3 内核,所以我们下载并切换到 6.5.13-3 内核。

https://www.derekseaman.com/2023/11/proxmox-ve-8-1-windows-11-vgpu-vt-d-passthrough-with-intel-alder-lake.html

#PVE 切换至 6.5.13-3 内核
apt install pve-headers-6.5.13-3-pve
apt install pve-kernel-6.5.13-3-pve
proxmox-boot-tool kernel pin 6.5.13-3-pve
proxmox-boot-tool refresh
reboot

 

 

重启后通过 uname 命令查看内核是否成功切换到 6.5.13-3,然后安装编译必备的工具:

uname -a
apt install git build-* dkms
apt install -y pve-headers-$(uname -r)

 

在 /usr/src/ 新建一个目录,把源码拷贝到该目录:

mkdir /usr/src/i915-sriov-dkms-6.1
cd /usr/src/i915-sriov-dkms-6.1

 

修改源码中的 dkms.conf 文件,修改为如下内容:

自动草稿

PACKAGE_NAME="i915-sriov-dkms"
PACKAGE_VERSION="6.1"

 

 

然后开始编译安装,编译完成后通过 dkms status 和 modinfo i915|grep vf 查看是否正常安装:

 

dkms install -m i915-sriov-dkms -v 6.1 --force
#测试安装是否成功
dkms status
modinfo i915|grep vf

 

自动草稿

然后修改 grub 的 GRUB_CMDLINE_LINUX_DEFAULT 这一行内容。这里 i915.max_vfs=3 表示GPU 划分为 3 个,最多可以划分为 7 个,但没必要划分这么多因为性能不够用。

vim /etc/default/grub
#修改如下内容
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=3"

 

修改完毕后更新引导:

update-grub
update-initramfs -u

 

安装 sysfsutils

apt install -y sysfsutils

 

设定核显拆分数量

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf

然后通过如下命令查看拆分结果。如果显示多个核显设备,则表示核显虚拟化拆分正常。注意 00:02.0 为原生核显不能用于虚拟机直通:

lspci|grep 00:02

 

自动草稿

方法二:安装法

方法二是安装法,有个开发者编译了 i915-sriov 的 deb 包,优点是安装简单且支持 6.8 内核,缺点是兼容性没有编译法好。优先使用方法一,在没有其他更好方案时可以试试方法二:

源码地址放不了

首先安装必备的组件:

apt update && apt install -y pve-headers proxmox-headers-$(uname -r) dkms flex bison

 

下载 deb 包后通过 dpkg 命令安装:

dpkg -i "xxx.deb"

 

然后和上面的方法一样修改 grub 的 GRUB_CMDLINE_LINUX_DEFAULT 这一行内容:

vim /etc/default/grub
#修改如下内容
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=3"

 

修改完毕后更新引导:

update-grub
update-initramfs -u

 

安装 sysfsutils

apt install -y sysfsutils

 

设定核显拆分数量

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf

 

如果 lspci|grep 00:02 命令可以正常查询到核显分拆,那么说明正常安装

lspci|grep 00:02

 

Win11 虚拟机使用核显

PVE 上 vGPU 设置完成后,接下来就是在虚拟机上实现核显调用。以 Win11 为例,首先正常创建虚拟机并安装系统,且先不要添加 PCI 核显设备。因为我安装的是 Win11 虚拟机类型为 Q35+OVMF(事实上 Win10 i440fx+OVMF 的组合应该也没问题,但都应该在BIOS里关闭安全启动)。正常进入系统后记下局域 IP 并开启远程桌面权限后关机。

自动草稿

修改虚拟机设置,把显示改为无。并添加 PCI 设备,在 Raw Device 找到需要添加的核显(注意不要选第一个 00:02.0):

自动草稿

并且勾选 Primary GPU ,但不要勾选 All Functions:

自动草稿

通过 mstsc 远程桌面连接到 Win11 系统,安装新版的核显驱动即可。通过远程桌面可以看到核显已经正常调用,但是由于没有显示器,第三方远程工具会出现分辨率异常(向日葵、ToDesk等)。所以可以安装一个虚拟显示器。目前我找到的最完美的虚拟显示器工具是 Parsec-vdd

Parsec-vdd 最大优势:支持 4K 240Hz 虚拟屏幕;支持多个虚拟屏幕;使用非常流畅;支持 Parsec 串流。安装软件后,程序主界面点击 “ADD Diskplay”即可,添加后可在系统设置调整屏幕参数(最高支持 4K 240Hz )

自动草稿

Ubuntu 虚拟机使用核显

推荐选择 Ubuntu 22.04 ,因为 Ubuntu 22.04 内核为 6.5 省去很多折腾(Ubuntu 24.04 我还没时间测试,安装过的朋友可以分享一下)。接下来的流程其实和 PVE 编译 i915-sriov-dkms 差不多(略微细节不同):

#查看内核版本,并安装编译环境
uname -a
apt install git build-* dkms
apt install -y linux-headers-$(uname -r)

 

在 /usr/src/ 新建一个目录,把源码拷贝到该目录

mkdir /usr/src/i915-sriov-dkms-6.1
cd /usr/src/i915-sriov-dkms-6.1

 

修改源码中的 dkms.conf 文件,修改为如下内容:

自动草稿

PACKAGE_NAME="i915-sriov-dkms"
PACKAGE_VERSION="6.1"

 

 

然后开始编译安装,编译完成后通过 dkms status 和 modinfo i915|grep vf 查看是否正常运行

dkms install -m i915-sriov-dkms -v 6.1 --force
#测试安装是否成功
dkms status
modinfo i915|grep vf

 

自动草稿

然后修改 grub 的 GRUB_CMDLINE_LINUX_DEFAULT 这一行内容,注意这里和之前的有区别。

vim /etc/default/grub
#修改如下内容
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_guc=3"

 

修改完毕后更新引导:

update-grub
update-initramfs -u

 

然后通过下面的命令测试驱动是否正常安装

sudo dmesg|grep i915

 

为什么把核显拆分给 Windows 和 Ubuntu。其一是 Windows 主机可以安装 Handbrake 作为转码主机。而 Ubuntu 可以安装 docker 给各容器提供硬解支持。由于核显3D和AI性能不强拆分后就更弱了,所以核显虚拟化主要还是满足主系统显示以及子系统解码需求。

常见问题解答:

  • 核显无法拆分

一般是 i915-sriov-dkms 编译出错,或者主板不支持 sriov。

  • Windows 主机核显 43 错误

显卡直通后设置成主显卡,并关闭虚拟机默认显示器,安装好驱动即可解决。

您可能还喜欢
发表评论

本网站使用Cookie来改善您的体验。我们假设您对此没有异议,请点接受同意本协议,否则选择退出。 接受 阅读更多