黑苹果 RX 6950 XT

2022-12-25 • 1.4分钟 • 0.6千字

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

TLDR

NootRX.kext 已经很成熟了, 不用再折腾了, 直接用就行.

缘起

之前自己配置了一台黑苹果主机, 由于原来的 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 不然会黑屏. 参考这里

总结

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