视频教程
前言
本次给大家介绍PVE核显的直通,我主要是用的是Mac系统,这一期我是用的核显是UHD630,如果您使用的也是同型号的核显,那么恭喜你,你可以完全复制我的所有操作,就可以成功直通UHD630核显,如果是其他型号的核显,我也尽可能的分享我自己折腾的经验,给大家做一些参考,需要注意,Mac系统不支持英特尔十代以上的核显,本期介绍的方式在我两台设备上得到了验证,均可以直通成功,以下就是我两台电脑的配置,大家主要看CPU核显部分,只要核显型号一致,都没问题,如果是其他4-8代的英特尔核显,这个方式也可以参考,这种方式理论上也适用4-8代的英特尔核显,只不过需要修改EFI引导来驱动核显就可以!
已测试电脑配置
# 电脑配置一 电脑型号 MINISFORUM-H31-i7 9700 台式电脑 处理器 英特尔 Core i7-9700 @ 3.00GHz 八核 主板 BESSTAR TECH LIMITED H31 ( 300 Series 芯片组 Family - A2CA ) 主显卡 英特尔 UHD Graphics 630 ( 128 MB / 英特尔 ) 内存 16 GB ( 金士顿 DDR4 2666MHz ) 主硬盘 minisforum ( 256 GB / 固态硬盘 ) 声卡 英特尔 High Definition Audio 控制器 网卡 英特尔 Wi-Fi 6 AX200 160MHz #2
# 电脑配置二 电脑型号 联想 Lenovo Product M70Q 处理器 英特尔 Core i3-10105 @ 3.70GHz 四核 主板 联想 316E(LPC Controller - 0684) 显卡 英特尔 UHD Graphics 630 ( 128 MB / 联想 ) 内存 8 GB ( 三星 DDR4 2400MHz 8GB ) 主硬盘 金士顿 OM8PDP3256B-A01 (256 GB / 固态硬盘) 显示器 三星 SAM0B26 S27D360 ( 27 英寸 ) 声卡 瑞昱 @ 英特尔 High Definition Audio 控制器 网卡 英特尔 Ethernet Connection I219-V / 联想
本文是基于你已经在PVE下安装了macOS苹果系统的基础上操作的,如果您还未在PVE下安装macOS苹果系统,请按下面的教程操作
- Proxmox(PVE)系统环境搭建安装教程https://imacos.top/2023/07/18/pve/
- PVE环境安装macOS苹果系统教程https://imacos.top/2023/07/29/pve-macos/
- PVE(Proxmox VE)一键安装macOS苹果系统:https://imacos.top/2024/04/18/pvemac/
- 定制rom实现PVE环境UEFI模式直通核显:https://imacos.top/2023/10/26/rom/
关于哪些核显直通后能在macOS系统下正常工作的问题,一般在黑苹果能驱动的一些核显,都是可以正常使用的,我这里列一些本站前期整理的一些显卡列表,因本文主要是讲解核显直通的,以下文章中包含了独显与核显,如果你只有核显,只要看核显部分就可以了.
- 黑苹果 macOS 兼容 Intel 与 AMD 处理器 CPU 的列表-速查表https://imacos.top/2023/05/12/intel-amd/
- 黑苹果 macOS Big Sur/Catalina 显卡支持列表-速查表https://imacos.top/2022/02/09/1017-4/
- 2021 Hackintosh黑苹果兼容显卡购买建议-速查表https://imacos.top/2021/05/09/0741/
- 黑苹果免驱显卡速查表https://imacos.top/2020/01/14/1753/
准备工作
1.使设备正常工作的重要 BIOS 设置
启用 VT-d 禁用 CSM #i44fx机型建议开启此项,并且设置csm里的其他项目为UEFI ACS Enable # 如果存在,设置为已启用(自动不起作用) 启用 4G解码 4G Decoding 禁用 Resizable BAR/Smart Access Memory智能访问内存 #(如果启用,AMD GPUS(Vega 及更高版本)会遇到“代码 43 错误”) 启用 IOMMU # 如果存在,主要用于 AMD 主板 将主显示器设置为 CPU/iGPU # 如果您的 CPU 有 iGPU 预分配内存为 64M
2.将获取到的核显rom上传到PVE的指定目录中(PVE开机状态),上传路径:/usr/share/kvm
- win下推荐上传工具:WinSCP下载地址https://winscp.net/eng/index.php
- Mac下我使用的上传工具是Transmit.app,本站下载地址:https://imacos.top/2024/01/15/transmit-5-for-mac-v5-9-2/
操作步骤-PVE开启iommu直通
1.进入PVE WEB端的管理页面并登陆,打开PVE节点的shell,输入命令:
要忽略 dmesg 输出中的一些烦人的错误, 请运行以下命令(# 这一步对于直通来说不是必需的,但有助于保持干净。)
nano /etc/modprobe.d/kvm.conf options kvm ignore_msrs=Y report_ignored_msrs=0 # 按 Ctrl + X,然后按 Y + Enter 保存更改。
2.启动内核IOMMU支持
IOMMU(Input-Output Memory Management Unit)是一种硬件功能,用于管理设备对系统内存的访问。启用 IOMMU 后,可以在虚拟机中直接访问物理设备,并允许虚拟机独立于主机操作系统运行
nano /etc/default/grub # 将以下行粘贴到其中,并在旧标签前面添加一个注释标签#,以下为常用的一些写法。 # 对于 Intel CPU GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf" # 对于 AMD CPU (本文不涉及) GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf" # 其他的一些写法(如果是AMD处理器,将intel改为amd) GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off" # 这是GVT模式,也就是共享模式,少部分cpu支持,但体验很好 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off" # 这是独占模式,都支持,但显示器没有pve的控制台输出,也只能直通个一个虚拟机 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" #本期教程我使用的就是这个 # 参数释义 1.iommu=pt:启用 Intel VT-d 或 AMD-Vi 的 IOMMU。这是一种硬件功能,用于管理设备对系统内存的访问。在虚拟化环境中,启用 IOMMU 后,可以将物理设备直通到虚拟机中,以便虚拟机可以直接访问硬件设备。“iommu=pt”不是必须的,PT模式只在必要的时候开启设备的IOMMU转换,可以提高未直通设备PCIe的性能,建议添加。 2.initcall_blacklist=sysfb_init:禁用 sysfb_init 内核初始化函数。这个函数通常用于在内核启动过程中初始化系统帧缓冲。在使用 GPU 直通的情况下,这个函数可能会干扰直通操作,因此需要禁用它。 3.i915.enable_gvt=1:启用 Intel GVT-g 虚拟 GPU 技术。这个选项用于创建一个虚拟的 Intel GPU 设备,以便多个虚拟机可以共享物理 GPU 设备。启用 GVT-g 需要在支持虚拟 GPU 的 Intel CPU 和主板上运行,并且需要正确配置内核和虚拟机。想开启GVT-g的就添加这条,显卡直通的就不要添加了。 4.initcall_blacklist=sysfb_init:屏蔽掉pve7.2以上的一个bug,方便启动时候就屏蔽核显等设备驱动; 5.pcie_acs_override=downstream,multifunction:便于iommu每个设备单独分组,以免直通导致物理机卡死等问题 6.pci=nommconf:意思是禁用pci配置空间的内存映射,所有的 PCI 设备都有一个描述该设备的区域(您可以看到lspci -vv),访问该区域的最初方法是通过 I/O 端口,而 PCIe 允许将此空间映射到内存以便更简单地访问。
3.使用以下命令更新 grub
update-grub
更新后可以重启电脑
reboot
4.主机重新启动并运行后,运行以下命令,验证是否开启iommu
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi # 如果没有输出,则说明有问题。你应该看到这样的东西;“DMAR: IOMMU enabled” # 另外一种验证方式 dmesg | grep iommu # 出现如下例子。则代表成功 [ 1.341100] pci 0000:00:00.0: Adding to iommu group 0 [ 1.341116] pci 0000:00:01.0: Adding to iommu group 1 [ 1.341126] pci 0000:00:02.0: Adding to iommu group 2 [ 1.341137] pci 0000:00:14.0: Adding to iommu group 3 [ 1.341146] pci 0000:00:17.0: Adding to iommu group 4 # 此时输入命令 find /sys/kernel/iommu_groups/ -type l # 出现很多直通组,就代表成功了。如果没有任何东西,就是没有开启
5.对于某些平台,可能需要允许不安全中断。运行以下命令
nano /etc/modprobe.d/iommu_unsafe_interrupts.conf # 添加以下行;请注意,此选项可能会使您的系统不稳定。 options vfio_iommu_type1 allow_unsafe_interrupts=1
6.启用必要的内核模块,运行以下命令
nano /etc/modules # 添加以下行; vfio vfio_iommu_type1 vfio_pci vfio_virqfd
7.将驱动程序模块列入黑名单,以使虚拟机能够完全访问显卡等。运行以下命令
nano /etc/modprobe.d/pve-blacklist.conf # 添加以下行; blacklist nouveau blacklist nvidia blacklist nvidiafb blacklist snd_hda_codec_hdmi blacklist snd_hda_intel blacklist snd_hda_codec blacklist snd_hda_core blacklist radeon blacklist amdgpu blacklist i915 options vfio_iommu_type1 allow_unsafe_interrupts=1 # 如果有重复项,记得删除,解释:屏蔽三大显卡驱动,屏蔽hdmi声音驱动;options
8.通过设备ID绑定vfio-pci
#执行 lspci -nn 命令,您应该看到如下内容,找到有vga标识的一行,记录核显VendorID 和 DeviceID,这里的两个ID如果定制rom也会用到 “0x:00.x VGA compatible controller … [1234:5678]” “0x.00.x Audio Device … [1234:5678]” # 无需记下 GPU 音频 ID。 “0x.00.x USB controller … [1234:5678]”
nano /etc/modprobe.d/vifo.conf
# 添加以下行; options vfio-pci ids=8086:5917
9.更新模块并重新启动主机以应用更改
update-initramfs -u -k all
reboot
10.注意:
我这里分享一下我在直通的时候遇到的一个问题,大家一定要注意,我们在没有做PVE直通的操作前,PVE画面的输出是会显示像这张图片上的样式
有PVE登录的IP地址,一旦你做了PVE直通的操作后,重启PVE,如果直通操作成功的话,是一定不会看到PVE登录的IP地址,我这里,操作直通成功重启后的画面是如下图这样的
也许你的直通操作成功后,画面样式与我的会有一定的区别,但是请记住,如果你操作直通后通过上述介绍的,在PVE的Shell节点下验证成功了,但是PVE开机画面还是会显示登录的IP地址,这种情况一定是直通的启动内核IOMMU支持代码不对,换一种写法继续尝试,直到PVE重启看不到登录的IP地址才算成功。
Mac虚拟机配置
Mac系统还没有安装的,按照这个教程安装,PVE一键安装macOS苹果系统:https://imacos.top/2024/04/18/pvemac/
1.开启虚拟机进入Mac系统
注意:我们直通了核显时候,是需要关闭虚拟显示器的,所以在直通前,要准备好2到3个左右靠谱的远程工具,直通后使用远程工具控制电脑,可以使用Mac 系统自带的屏幕共享,也可以安装向日葵 ToDesk等远程控制工具
2.找到放OC引导的EFI分区,只要使用的是本站Mac一键安装包的,会有个IMACOS_TOP盘,里面就是OC的EFI引导,同时你还会看到EFIs的文件夹中有UHD630的EFI,将这份EFI拷贝到IMACOS_TOP磁盘根目录,替换掉原来的EFI
注意:如果你的Mac系统是自行安装的,您需要在本期介绍的图文地址中,下载UHD630的EFI引导来替换
3.拷贝好之后关机,转到PVE虚拟机Mac系统硬件下,将显示修改为无,添加PCI设备,选择UHD Graphics 630核显,将高级选项启用,参照我这里将其与可选项全部启用
4.配置好之后回到控制台启动虚拟机,这里我们关闭了虚拟显示器,出现noVNC是正常的,等待一段时间,系统启动后,就可以用远程工具来连接这个Mac系统啦
结束语
关于黑苹果系统的安装,前期给大家介绍PVE安装macOS系统(https://imacos.top/2023/07/29/pve-macos/),机型选择的是q35,如果你想核显直通选择i440fx,经过站长的测试,选择i440fx也一样可以安装macOS系统,大致思路就是使用本站点已经安装好的macOS备份恢复版本https://imacos.top/category/pve/pvemac/需要注意的是,i440fx 机行需要修改配置文件的args:这一行,我列出来,大家可以参考,修改机型后还需要修改或配置自己的OC引导
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on
附:PVE使用常见问题及使用合集链接
PVE OC Mac系统:https://imacos.top/category/pve/pvemac/
Proxmox(PVE)系统环境搭建安装教程https://imacos.top/2023/07/18/pve/
定制OVMF固件实现PVE环境UEFI模式直通Intel核显并显示BIOS画面可以外接显示https://imacos.top/2023/10/09/152/
PVE(Proxmox VE) 启动各种报错问题合集篇(持续更新)https://imacos.top/2023/09/17/89/
PVE(Proxmox VE) 使用常见问题及笔记合集篇(持续更新)https://imacos.top/2023/09/17/2-2/
PVE(Proxmox)安装macOS苹果系统遇到的一些错误经验分享(持续更新)https://imacos.top/2023/08/27/macos/
PVE(Proxmox VE)安装Windows 11虚拟机直通独立显卡https://imacos.top/2023/09/07/pve-windows-11/
PVE下macOS苹果系统PCI直通AMD 580显卡硬件直通实例提取显卡rom教程https://imacos.top/2023/08/01/580/
PVE下如何启用 PCI直通显卡GPU/iGPU/USB/声卡AUDIO等硬件直通教程https://imacos.top/2023/07/31/pci/
PVE环境安装macOS苹果系统https://imacos.top/2023/07/29/pve-macos/
win系统安装请看我之前发布的教程(https://imacos.top/2023/09/07/pve-windows-11/)
文件解压密码:imacos.top
评论2