本文理论上是全球首发了,因为谷歌确实没有搜索到有人 ESXi 黑苹果直通 A 卡成功的案例,大多数都是 N 卡直通黑苹果成功的,但是 N 卡从 macOS 10.14 系统开始基本上就是残废的状态,所以本文直通 A 卡成功的姿势对全球黑苹果和虚拟化玩家来说还是有一定意义的,此外出了最新发布的 ESXi 8.0 系统,理论上来说 ESXi 7.X 和 6.X 也是可以成功的,这个得需要网友们自己去尝试看看了。
写在前面
首先得先感谢一下 @darkless 好友的经验,让我在 ESXi 黑苹果直通这少走了很多弯路。
最近恰好 PVE 下黑苹果直通出了点小问题,那么乘次机会来尝试一下Vmware ESXi 8 看看。
准备工作
- ESXi 8.X 的安装镜像
- 需要 macOS Unlocker 一下,否则开启 macOS 虚拟机会无限重启
- https://pan.baidu.com/s/1aEeM9uTyQiu2dRy-gq3dbA?pwd=<付费专享>
- macOS 的安装镜像
- dmg 镜像需要转换成标准的 img 镜像,这样才可以被 ESXi 引导启动
- https://pan.baidu.com/s/15ca5iVKsn8frTNOGvWDs2w?pwd=<付费专享>
- 免驱的 AMD 独显 1 个:RX 4X0、RX 5X0、RX 5X00、RX 6X00 等
- 主板 BIOS 建议开启如下设置:
- 开启 Intel VMX 虚拟化技术(PCIe 硬件件直通必须)
- 开启 VT-d (PCIe 硬件直通必须)
- 开启 SR-IOV 虚拟化技术 (高效先进的虚拟技术)
- 开启 Above 4G Decoding(如果玩 vGPU 方案需要开启这个选项)
- 开启 Numa (多路 CPU 建议开启,提高多路 CPU 运行效率,合理分配负载)
- 开启 x2APIC(PCIe 硬件直通需要)
安装 ESXi
首先使用 Windows 下经典的 Rufus 制作一下 ESXi 启动盘
然后 ESXi 没啥可说的,谷歌一下,你就知道,本文重点的 ESXi 下的黑苹果,不能主次颠倒了。
很快啊,就安装好了,ESXi 8 的登录界面变了不少,符合现在的审美:
里面的界面布局感觉是没啥变化的:
安装 macOS
上传镜像
我们玩黑苹果的基本上都是搞的 dmg 镜像,自行转换成 img 镜像后上传到 ESXi 的存储空间里面去:
创建虚机
因为目前 esxi unlocker 项目还不完全支持 ESXi 8,所以这里虚拟机的兼容性设置成 ESXi 7.0 U2:
macOS 版本选择 macOS 12,时间上我们使用 macOS 12 安装 macOS 13 Ventura 也是完全 OK 的。
硬件这里设置 8 核 16GB,为了方便后面直接直通显卡,我们这里需要勾选一下「预留所有客户机内存」选项:
为了更好的网络性能,网卡设置成 VMXNET3 万兆类型,然后手动选择我们之前上传好的 iso 镜像文件:
系统安装
macOS 系统安装对于玩过黑苹果的用户来说很简单了,如果你没有黑苹果基础的话,关于 macOS 安装部分可以参考我的黑苹果专题文章:黑苹果系统安装 - 国光的 PVE 环境搭建教程
ESXi 方便就方便在还可以使用 Vmware Workstation 连接管理:
很快我们系统就安装好了:
安装 Vmware Tools
刚刚安装好的话,显存只有 3MB,虽然后面我们会直通独显,但是安装一下 Vmware Tools 总比没有安装的好。我们如果手动安装 Vmware Tools 的话,多半还是会提示我们:
我们去官方下载页面下载一个 darwin.iso 即可:
没有 VMware 账号的话可下载国光我上传到蓝奏云的链接
手动安装一下,根据提示引导一个个允许扩展即可:
安装好之后显存就是 128MB 了,而且 Vmware Workstation 去连接的话也会自适应窗口调整分辨率的大小:
直通 USB
首先在「管理」-「硬件」-「PCI 设备」-「搜索 USB」将我们的 USB Controller 切换直通,使其处在活动状态:
直通 USB 控制器
这样我们可以简单一点,以直通 PCI 的形式,直接将 USB 控制器添加到 VM 虚拟机中:
这种确实是简单高效的,仔细想一下,我们需要直通 USB 的 VM 没有这么多,最多也就是 Windows 打游戏和 macOS 黑苹果办公,恰好我这边正好有两个 USB Controller,每个 VM 占用一个也是个很不错的方案。
直通部分 USB 设备
其实通过上述一番操作之后,虚拟机系统也可以来识别一些 USB 设备信息,我们选择添加 USB 设备即可直通:
但是这些设备并不是很齐全,比如这里就确实了键盘和鼠标的 USB 信息。
直通任意 USB 设备
首先 ESXi 开启服务模式,SSH 进入 ESXi 的 shell 环境,使用
lsusb
查看列出目前 ESXi 宿主机的 USB 设备信息:
将上述需要直通的 USB 信息整理出下面的表格:
厂商 ID | 设备 ID | 设备说明 |
---|---|---|
0d8c | 0014 | USB 音频设备 |
08bb | 2902 | USB 音频设备 |
0f39 | 0611 | IKBC Poker 键盘 |
046d | c08b | 罗技 G502 鼠标 |
以 usb.quirks.device<编号> = "0x<厂商ID>:0x<设备ID> allow"
的格式,添加到 /etc/vmware/config 文件后面
vi /etc/vmware/config
根据我的情况文件末尾添加如下内容:
usb.quirks.device0 = "0x0d8c:0x0014 allow"
usb.quirks.device1 = "0x08bb:0x2902 allow"
usb.quirks.device2 = "0x0f39:0x0611 allow"
usb.quirks.device3 = "0x046d:0xc08b allow"
继续编辑 /bootbank/boot.cfg 启动引导文件,禁用掉VMkernel对上述设备获取控制权。:
vi /bootbank/boot.cfg
在 kernelopt
参数后面添加如下格式:
CONFIG./USB/quirks=0x<厂商ID>:0x<设备ID>::0xffff:UQ_KBD_IGNORE:0x<厂商ID>:0x<设备ID>::0xffff:UQ_KBD_IGNORE
最终国光我编辑的内容如下:
CONFIG./USB/quirks=0x0d8c:0x0014::0xffff:UQ_KBD_IGNORE:0x08bb:0x2902::0xffff:UQ_KBD_IGNORE:0x0f39:0x0611::0xffff:UQ_KBD_IGNORE:0x046d:0xc08b::0xffff:UQ_KBD_IGNORE
操作完成后,重启 ESXi 宿主机,然后我们就可以通过编辑虚拟机设置来灵活地添加 USB 键鼠设备了:
直通后我们就可以使用键盘和鼠标操作我们的黑苹果虚拟机了,进系统也发现可以正常识别了我们的 USB 设备:
直通网卡
因为 WiFi 无线网卡本身是走 PCIe 接口传输数据的,所以这里直通就很简单了,切换网口的直通状态,然后直通对应的 PCI 设备即可:
因为直通了免驱无线网卡的 WiFi 和蓝牙,所以理所应当的我们可以正常使用 macOS 原生的隔空投送和接力功能:
直通独显
补充一下,N 卡直通会比较简单,没那么曲折,但是众所周知 N 卡在 macOS 系统上基本上是半残废的状态,要想很棒的黑苹果体验,还是得准备一个 AMD 免驱独显才可以。
下面说到重头戏了,就是直通 AMD 免驱独显,本次使用的 RX 570 公版涡轮显卡来进行演示,实际上好友 darkless 他使用的是 RX 6600 也是成功直通使用的,而且不像黑苹果物理主机一下需要添加防黑苹果参数,这一点还是有点小意外的,话不多说,开始正式教程。
切换直通状态
直通 PCI 显卡
直通一下显卡相关的设备,一般就是显卡本身以及 HDMI 音频,部分带 Type-C 的显卡可能还需直通一下 Type-C 部分:
实际问题情况
显示器黑屏没有反应,但是系统报告信息里面已经识别到了 A 卡了,可惜就是无法驱动:
本打算这篇文章继续像保姆一样,亲手把饭喂到读者嘴边一样,正常详细地写完的,但是考虑到这并不是国光我原创的解决方案,国光我也无权利免费共享给大家,所以挨骂就挨骂吧,我国光要脸皮厚一点了。而且历史上国光我也写了很多免费的教程,虽然还是有网友鼓励支持的,但是那些蹬鼻子上脸的伸手党也无处不在,好像我们这些原创者欠他们似的?所以,从现在开始,国光我要放下助人情节,我要变坏,我要叛逆:
既然别人的 ESXi 镜像都可以卖 100 块钱,还很多人去付费购买,为什么我们黑苹果更硬核一点的玩家不可以这样做呢?经济基础决定上层建筑,先活下来,站点维持下去再讨论那些理想啥的吧,就这样决定了!
此处省略一些非常关键的操作,还有一些日以夜继日(2点睡 6点起)排错的坑点记录,想要实现 ESXi 完美黑苹果方案,有兴趣和有条件的朋友可以尝试知识付费一下……
- 提供 ESXi 8.0 解锁黑果和打包 NVME 以及网卡驱动的镜像
- 提供最新的 macOS 12.X 和 macOS 13.X ESXi 可引导原版镜像
- 提供傻瓜式 VMDK 黑苹果文件,一键安装黑苹果
- 提供 ESXi USB、独显直通等远程技术支持等
最终效果
无论是自己尝试,还是知识付费尝试都需要经历一番操作的,无非是知识付费走的弯路要少一点,但还是需要人力成本去解决问题,最终我们的 ESXi 成功直通了 AMD 显卡以及免驱的 BCM 博通无线网卡,以及直通了 USB 任意设备,最终我们的 ESXi 黑苹果基本上完美了,其实也足够单刃生产力工具了!!!
系统只是工具,我们要学会使用系统去创造价值,而不是沉迷如何安装系统上,这句话也送给大家。
最后来看看我们这个 ESXi 的直通效果怎么样吧:
系统信息
Vmware7,1 机型,系统报告里面可以明显看出这是一个虚拟机:
显卡信息
AMD RX 570 驱动正常,DP 接口正常带动 4K 120Hz 屏幕,且 HiDPi 原生识别正常:
网卡速率
ESXi 下使用网络类型默认 macOS 下免驱,这 10G 网卡可以妥妥的万兆网卡速率哦:
硬盘相关
ESXi 下的虚拟硬盘在 macOS 下识别为 SATA 类型,使用「厚置备,延迟置零」的情况下,手上这个 S500 Pro 1TB 速度测试都挺正常的,和直通的效果差不多:
软件测试
QQ 也可以正常打开,这一点要单独提一下,PVE 黑苹果使用 Virto 打不开 QQ 和一些软件,只能切换 SATA 类型硬盘使用,但是 4k 读写会变得巨慢,体验不好;ESXi 下黑苹果默认就是 SATA 硬盘,所以软件没遇到啥兼容性问题,且读写速度和真实的硬盘速度差不多,没啥损耗。
无线蓝牙
无线和蓝牙均正常使用:
隔空投送
隔空投送正常发送和接受文件:
Hackintool
三码序列号追求完美的话需要想办法重新定制一下,这里挖个坑,国光我后面会填的:
这里可以看到基本上设备都正常识别和驱动的:
不过这里 USB 驱动方式可能是 Vmware 自己定制的,Hackintool 虽然识别不到 USB,但是 macOS 系统报告里面可以正常识别:
Sensei
Sensei 也正常打开使用,我记得 PVE 下好像这块是也有点问题的:
传感器
因为这是虚拟机,所以除了显卡,其他是没有传感器的,但是比较有意思的腾讯柠檬居然可以显示这个温度信息,不过这可能是假的信息,一直不会动:
睡眠唤醒
虚拟机下讨论睡眠唤醒的意义好像不大,因为宿主机一直得开机,不过让人惊讶的是,这个 ESXi 黑苹果是支持睡眠唤醒的,晃晃鼠标即可唤醒睡眠状态下的黑苹果虚拟机。
睡眠的瞬间硬盘会读写存放数据,此时 CPU 使用 ESXi 下看可以看到还是以低频工作,不过此时显示器和鼠标都是熄灯的,确实和真的睡眠一样,且可以正常被晃鼠标或者敲键盘唤醒:
ToDoList
- 自定义 CPU 型号,解决系统未知问题
- 注入白果三码信息,更接近白苹果体验
- 研究一下 ESXi 使用 OpenCore 的可能性
- 深度测试一下 ESXi 的日常性能表现
- 单独做一期视频记录分享一下