系统优化
片言碎语¶
由于黑苹果又是另一个领域的知识点了,而且知识点有点繁杂,所以不适合在本 PVE 教程里面详细展开,想深入黑苹果的网友可以转到我的另一个黑苹果教程:国光的黑苹果安装教程:手把手教你配置 OpenCore
EFI 是黑苹果中最核心的一个文件夹,这里面包含着机器相关的所有驱动,这也就是为什么我们之前使用了 Github 开源的 OpenCore 镜像可以引导安装 macOS 系统的原因了,是因为那个 iso 里面封装了 PVE 虚拟机的相关 EFI 驱动:
但是呢,我们不能一直使用 CD 光盘来引导系统吧,主要原因如下:
- 官方项目的 EFI 有待定制,比如一些独显参数优化啥的都缺失
- 官方的 EFI 挂载在光盘里面,可以当做备份,平时我们改放到硬盘本地的 EFI 就行了
- VM 虚拟机一直插着光盘不优雅,就像物理机启动系统一直插着 U 盘一样,太滑稽了
EFI 归位¶
接下来我们需要把这个 OpenCore 的 ISO 镜像的 EFI 引导文件夹拷贝到硬盘当中,因为系统已经安装好了,开机前我们先移除掉之前挂载的苹果安装镜像,只保留 OpenCore 引导镜像:
接着进系统后,使用 OpenCore Configurator 挂载硬盘 以及 ISO 光盘后,直接将 ISO 光盘的 EFI 拷贝到硬盘里面即可:
如果 OCC 软件无法打开的话...... 点击展开解决办法 👉
对第一次使用苹果的用户可能比较不友好,直接打开可能看到下面的提示: 有两种解决办法: 1. 下图左边这种,直接鼠标右键,点击打开即可 2. 下图右边这种,先打开软件,失败后到「设置」-「安全与隐私」-「通用」里面点击无论如何打开就行:
拷贝完成后关机,就可以移除 OpenCore ISO 镜像了,然后应该可以正常进入系统,这是因为我们放入到硬盘的 EFI 开始生效了。之后我们就可以直接编辑本地的 EFI 配置文件了,就像物理机黑苹果那样:
有黑苹果基础的同学还可以直接优化 EFI 配置,或者升级 OC 版本,没有基础的同学也没有关系,可以参考我写的这个教程慢慢来:国光的黑苹果安装教程:手把手教你配置 OpenCore
所以下面教程国光我只优化一些基础操作,进阶的操作需要大家自己花时间琢磨研究。
直通 USB¶
细心的小伙伴会发现,目前通过 PVE 的 Web 界面操作我们的键鼠实际上是有延迟的,毕竟还是走得 VNC 网络传输协议,为了更好的体验,我们可以分配一个键鼠直通到 PVE 虚拟机中:
PVE 支持几种 USB 设备添加,下面简单挑着解释一下:
- 使用 USB 供应商 / 设备 ID
- 根据你的设备名称添加
- 就算你的 USB 拔掉换其他接口也可以正常直通到虚拟机的
- 使用 USB 端口
- 根据 USB 物理端口添加
- 你这个接口插鼠标,那么鼠标就直通到虚拟机了;插键盘,那么键盘就直通到虚拟机了
- 根据实际情况勾选,USB3 是 USB2 和 USB3 的合体,所以如果你的 物理端口是 USB 3 请勾选 USB 3
因为国光我我更偏向于前者者,使用 USB 的设备 ID:
直通独显¶
直通独显需要 PVE 本身配置好才可以
确保自己按照前面的教程:国光的 PVE & Linux 生产力环境搭建教程 - 硬件直通 操作完后再进行直通独显操作。
独显参数¶
然后关掉原来的 Vmware 兼容显示设备,最终的硬件如下:
因为 OC 引导黑苹果的话,使用 RX5500/5600/5700/6600/6800/6900 系列新的免驱系列显卡启动过程中会黑屏,所以先需要编辑我们的 OC 配置文件,在启动项添加 agdpmod=pikera
参数:
保存配置文件后关闭 PVE 黑苹果虚拟机。
添加 PCI 设备,找到我们的 RX 6600XT ,这里没有显示出来,但是 Navi 23 确实是这个显卡的架构:
然后勾选如下选项:
指定 romfile¶
接着我们编辑 VM 配置文件,让显卡加载到上传到 PVE 里面的 ROM:
在显卡的 PCIe 选项中添加romfile=xxxx.rom
参数即可
PVE 下存放 ROM 文件的路径为 /usr/share/kvm/
使用 SCP 命令将我们之前显卡中提取的 ROM 或者官网下载的 ROM 文件放入到 PVE 的 /usr/share/kvm/ 下
然后关掉原来的 Vmware 兼容显示设备,最终的硬件如下:
agent: 1
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
balloon: 0
bios: ovmf
boot: order=sata0
cores: 16
cpu: host
efidisk0: local-lvm:vm-103-disk-0,efitype=4m,size=4M
hostpci0: 0000:85:00,romfile=RX6600XT.rom,x-vga=1 # (1)
machine: q35
memory: 32768
meta: creation-qemu=7.1.0,ctime=1670939163
name: macOS-Monterey
net0: virtio=92:1A:24:B9:6B:EE,bridge=vmbr2,firewall=1
numa: 1
ostype: other
sata0: ssd3-nvme-2tb-WD-AN1500:103/vm-103-disk-0.qcow2,cache=unsafe,discard=on,size=320G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=2896b313-d40d-41ab-a288-8ea8df452dfb
sockets: 1
usb0: host=046d:c092
usb1: host=0f39:0611
vga: none
vmgenid: ca66aaea-9bd3-4312-88b7-1ba05e7eaadd
- 主要就是添加了这个 romfile=RX6600XT.rom 参数
部分显卡不需要 romfile 参数也可以直通
- AMD RX400、RX500 系列测试无需 romfile 参数也可以直通
- AMD RX5000、RX6000 系列大多数需要 romfile 参数才可以顺利直通
直通效果¶
最终直通后进系统,此时插在 6600XT 显卡上的显示器会正常点亮,使用键鼠都可以正常操作,就和物理机黑苹果的体验是差不多的:
直通网卡¶
直通 WiFi¶
因为我的 BCM94360CD 插的也是 PCIe 接口,而且是免驱无线网卡,所以需要再额外修改 EFI 文件。我们可以在 PCI 设备里面找到我们的无线网卡:
也给他添加到虚拟机中:
国光小课堂
如果上图这样直通 WiFi 无线网卡失败的话,不妨只勾选「所有功能」和「ROM-Bar」或者只勾选「所有功能」
直通蓝牙¶
要想实现免驱网卡的所有功能,光有 WiFi 是不够的,蓝牙也得需要直通进去,蓝牙走的是 USB 协议,所以我们可以在 USB 设备中添加我们的蓝牙设备:
记得取消 USB3 勾选。
直通效果¶
WiFi、蓝牙 隔空投送均可以正常工作:
直通声卡¶
其实音频设备不添加的话也没有关系,默认我可以直通的两个独显是可以通过 DP/HDMI 传输音频数据的,需要直通显卡负责 HDMI/DP 音频传输的 PCIe 设备:
也可以通过蓝牙来传输音频数据:
或者使用下图中这种 USB 声卡也是可以的,大多数这种 USB 声卡都是免驱的,直接 UBS 设备直通到虚拟机里即可使用:
当然我们主板自带的声卡也是可以直通的,
机型设置¶
因为我这个双路 E5 没有核显,而且很符合工作站性质,所以国光我将机型换成了 MacPro7,1 CPU 型号这里就换成 Mac Pro 自带的 3842 即可(CPU 代号需要自己查表计算,这属于进阶技能,国光这里不展开说了):
最终机型和 CPU 型号成功识别:
内存定制¶
细心的网友会发现我们的 MacPro 7,1 机型下,内存显示不正常,频率是未知的,而且还有告警提示:
作为黑苹果职业玩家,这怎么能忍,必须定制一下:
最终 MacPro7,1 机型内存修正后的效果如下:
硬盘对比¶
VirtIO Block 硬盘类型是黑苹果下最快的硬盘类型了,在 4k 测试下提升尤为明显,但是此时 QQ 会无法打开,只能换兼容性好的 SATA 硬盘才可以解决问题。
硬盘内建¶
默认 PVE 下的 VM 把我们的 SATA 硬盘识别成了外置驱动器,这怎么能忍(VirtIO Block 硬盘类型则不会出现这种情况):
使用 OCC 编辑器添加当前的两个 SATA controller:
然后均添加 built-in 属性,值为:01000000
重启后,最终硬盘内建的效果如下:
开机自启¶
默认的 OpenCore 如果我们不按回车的话,会一直卡在系统选择界面导致无法自动进入系统:
我们只需要编辑 OpenCore 的 config.plist 文件,找到「Musc-其他设置」取消勾选「Show Picker 显示引导菜单」即可: