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

2024-05-26 19:30:12 25点赞 214收藏 19评论

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

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

因为我之前也用 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。

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

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

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

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

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 文件,修改为如下内容:

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

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 大小核All-In-One主机PVE玩机入门

然后修改 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大小核All-In-One主机PVE玩机入门

方法二:安装法

方法二:安装法

方法二是安装法,有个开发者编译了 i915-sriov 的 deb 包,源地址 zdm 不给放

首先安装必备的组件:

apt install pve-kernel-$(uname -r) proxmox-boot-tool kernel pin $(uname -r) apt install pve-headers-$(uname -r)

apt update & apt install build-* pve-headers-$(uname -r) git dkms sysfsutils flex bison -y

下载 i915 的二进制文件

mkdir -p /lib/firmware/updates/i915/ wget -O /lib/firmware/updates/i915/tgl_guc_70.9.1.bin https://mirror.ghproxy.com/https://raw.githubusercontent.com/intel-gpu/intel-gpu-firmware/main/firmware/tgl_guc_70.9.1.bin

下载 intel-i915-dkms.deb 包后通过 dpkg 命令安装:

dpkg -i "intel-i915-dkms-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 并开启远程桌面权限后关机。

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

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

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

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

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

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

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

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

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 文件,修改为如下内容:

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

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 大小核All-In-One主机PVE玩机入门

然后修改 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性能不强拆分后就更弱了,所以核显虚拟化主要还是满足主系统显示以及子系统解码需求。

常见问题解答:

  1. 核显无法拆分

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

  1. Windows 主机核显 43 错误

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

展开 收起
19评论

  • 精彩
  • 最新
  • 現在也是5600g 做的unraid 唯一的不好就是待機功耗高,還有jellyfin解碼還是不行 [高兴]

    校验提示文案

    提交
  • 我的12700h 每次重启都会出43 只能每次启动前重新指派一个pf

    校验提示文案

    提交
    没有遇到过,目前调试之后很稳定。你是显卡虚拟化还是直通?

    校验提示文案

    提交
    dkms status看下是不是有报错的驱动

    校验提示文案

    提交
    收起所有回复
  • 有amd的教程吗

    校验提示文案

    提交
    AMD直通,我之前写过,这次折腾Intel是玩vGPU

    校验提示文案

    提交
    收起所有回复
  • pve需要升级,到最高更新版本吗?以前安装的pve很少升级,升级有必要吗

    校验提示文案

    提交
    我用的还是PVE6呢,稳定千万别动,别问我为什么!!

    校验提示文案

    提交
    一听就是有故事的

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 直接 pve source吧

    校验提示文案

    提交
    以前也用一键工具,后来不用了

    校验提示文案

    提交
    收起所有回复
  • 这篇文章很实用,感谢分享!Intel大小核的虚拟化技术真是让人眼前一亮。希望能看到更多技术细节和案例分享!

    校验提示文案

    提交
  • 之前有大佬用混江龙直接弄了allinone

    校验提示文案

    提交
  • 谢谢啦

    校验提示文案

    提交
  • 12代es魔改板u能用吗?

    校验提示文案

    提交
  • cpu都设置满核+权重就好了,提高单vm性能上限还能减少性能空余

    校验提示文案

    提交
  • 大佬 请假下 能不能给下你pve安装的openwrt安装包地址,istoreos上插件太少了,我还是安装openwrt好了,找不到合适的版本,恩山上人人都说用的自己编译的openwrt(惹不起哎)。然后 爱快的docker仓库地址填多少能用?现在狠多大陆镜像源都封了啊?求提供。
    另外N100 PVE下跑ltsc版本的win11还是win10比较流畅?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
214
扫一下,分享更方便,购买更轻松