黑苹果 RX 6950 XT

2022-12-25 ⏳1.3分钟(0.5千字)

本文介绍了黑苹果主机从 RX590 升级 RX 6950 XT 的过程.

缘起

之前自己配置了一台黑苹果主机, 由于原来的 RX590 老是出现掉驱动和黑屏的情况, 不知道是不是买了矿卡, 一怒之下二手东入手了 RX 6950 XT. OpenCore 配置

配置

遇到的问题

升级之前做了功课, RX 6950 XT 在 11.4 之后才开始被支持, 这条满足, 我的黑苹果系统一直保持最新, 但是不像 6900 XT 是免驱的, 需要进行仿冒。

什么是仿冒?就是指把一个硬件的 DeviceID 换成另外一个。举个🌰: RX6950 的 DeviceID 其实是 0x73AF 但是我们要把它改成被支持的 6900XT 的 DeviceID, 也就是 0x73BF.

准备工作

获取设备路径

打开 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.

IORegistryExplorer

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 不然会黑屏. 参考这里

总结

大家选新显卡的时候一定要做好功课. 参考内容