黑苹果 RX 6950 XT
曦子本文介绍了黑苹果主机从 RX590 升级 RX 6950 XT 的过程.
缘起
之前自己配置了一台黑苹果主机, 由于原来的 RX590 老是出现掉驱动和黑屏的情况, 不知道是不是买了矿卡, 一怒之下二手东入手了 RX 6950 XT. OpenCore 配置
配置
- 主板:Asrock EPC621D8A
- BIOS版本:C621D8A2.15E
- CPU:Intel GOLD 6278 二十六核心 (LGA3647)
- 显卡:RX 6950 XT 魔龙
- 内存:Samsung 32G x 2
- 硬盘:1. Intel P4500 for windows 2. C2000 pro for Mac OS
- 网卡:BCM943602CS
遇到的问题
升级之前做了功课, RX 6950 XT
在 11.4 之后才开始被支持, 这条满足, 我的黑苹果系统一直保持最新, 但是不像 6900 XT 是免驱的, 需要进行仿冒。
什么是仿冒?就是指把一个硬件的 DeviceID 换成另外一个。举个🌰: RX6950 的 DeviceID 其实是 0x73AF
但是我们要把它改成被支持的 6900XT 的 DeviceID, 也就是 0x73BF
.
准备工作
假设你熟悉一些编程语言, 熟悉 ACPI 所用的 AML 更好。
OCAuxiliaryTools 或者其他 OpenCore 的编辑器 or Plist 编辑器
gfxutil 他可以查看你的硬件设备路径
IORegistryExplorer 你有 Xcode 就有它
安装了 lilu.kext & WhatEverGreen
获取设备路径
打开 IORegistryExplorer 搜索 GFX0. 如下图.
假设你的路径为 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GPP8@3,1/IOPP/X161@0/IOPP/pci-bridge@0/IOPP/GFX0@0
我们把注意力集中在 pci-bridge 之前的部分, 那么路径为 PCI0.GPP8.X161.
IOService:/AppleACPIPlatformExpert/PC03@0/AppleACPIPCI/BR3A@0/IOPP/D04A@0/IOPP/BRG0@0/IOPP/GFX0@0
这里我们提取到路径为 PC03.BR3A.D04A, 这里已经被我修正了. 读者这里应该要截取到 pci-bridge.
编辑 AML
打开 MaciASL 输入以下内容
DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0x00000000)
{
External (_SB_.PC03.BR3A.D04A, DeviceObj) // 注意这里 PC03.BR3A.D04A 是我显卡的设备路径根据自己需要更改
Scope (\_SB.PC03.BR3A.D04A)
{
Device (BRG0) // 这里的名字不关键
{
Name (_ADR, Zero) // _ADR: Address
Device (GFX0)
{
Name (_ADR, Zero) // _ADR: Address
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LOr (LNot (Arg2), LNot (_OSI ("Darwin"))))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x04)
{
"device-id",
Buffer (0x04)
{
0xBF, 0x73, 0x00, 0x00
},
"model",
Buffer (0x13)
{
"AMD Radeon 6950 XT"
}
})
}
}
}
}
}
读者一定要根据自己设备情况调整路径, 抄写的作业只有在设备相同的情况下有效.
编译成 AML 后莫要忘记放到 OpenCore 使其生效.
额外的处理
有些设备需要把 WhateverGreen
更新到 1.5.2, 启动参数加上 agdpmod=pikera
不然会黑屏. 参考这里
总结
大家选新显卡的时候一定要做好功课. 参考内容