前言

当前用户使用黑苹果双系统,在主板上安装双显卡(A/N卡),N卡在macOS 10.14 以后版本不支持了,有使用笔记本电脑黑果有独立N卡的设备,要如何在不拆机的情况下,少一些此类的设备,以下为简单的教学。

禁用 GPU

有以下三点:

  • Boot Flag
    • 禁用除 iGPU 之外的所有 GPU
  • DeviceProperties
    • 在每个插槽的基础上禁用 GPU
  • SSDT
    • 在每个插槽的基础上禁用 GPU

必须在 BIOS 中关闭 CSM 才能使设备工作正常,尤其是在基于 AMD CPU 的系统上。

Boot Flag

最简单的方式莫莫在引导参数加入以下代码 boot-arg:

-wegnoegpu

请注意,这将除掉 iGPU 之外的所有 GPU。

DeviceProperties-设备属性方法

gfxutil找到PCI路由后,採取欺騙的方式创建一个新的 DeviceProperties 部分:

path/to/gfxutil -f GFX0

输出将得到这样的结果:

DevicePath = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

有了这个,进入到 Root -> DeviceProperties -> Add 添加具有以下属性的 PCI:

Key Type Value
disable-gpu Boolean True
《普及PCIe设备的教学(OC版)》

使用SSDT禁用设备的方法

找到设备路径的方法有很多,但一般来说,最简单的就是进入windows下的设备管理器,找到PCI路径。在Mac底下可以使用hackintool工具。

假想该让的设备路径为:_SB.PCI0.PEG0.PEGP

DefinitionBlock ("", "SSDT", 2, "DRTNIA", "spoof", 0x00000000)
    {
       External (_SB_.PCI0.PEG0.PEGP, DeviceObj)

       Method (_SB.PCI0.PEG0.PEGP._DSM, 4, NotSerialized)
       {
          If ((!Arg2 || !(_OSI ("Darwin"))))
          {
             Return (Buffer (One)
             {
                0x03
             })
          }

          Return (Package (0x0A)
          {
             "name",
             Buffer (0x09)
             {
                "#display"
             },

             "IOName",
             "#display",
             "class-code",
             Buffer (0x04)
             {
                0xFF, 0xFF, 0xFF, 0xFF
             },
          })
       }
    }

可以在此找到 这个SSDT 的副本:Spoof-SSDT.dsl这个编译档案。请你千万不要忘记 ,这.aml是设置好的文件,.dsl是源代码。您可以通过选择 File -> Save As -> ACPI机器语言使用 MaciASL 进行编译。

结论

使用SSDT的设备,可以用在主板内建的网卡、声卡或者是其他的扩展代码设备,因为macOS在运行的同时,会自检PORT主机上的所有设备。假想你的主机上有很多的设备例如扩展卡之类的,但在macOS底下却无驱动支持,但系统一直被激活的动作时,有可能会造成系统卡之类的情况,那么除了拆掉设备以外,就是使用SSDT 这个方式了。