MACOS 에서 지원하지 않는 그래픽 카드 사용하지 않기
- Mactopia
- 455
- 1
Mactopia님의 기기정보
So for your BIOS, make sure to have the following enabled:
iGPU Multi-Monitor: Enabled
Primary Display: Enabled
And make sure to have your displays connected to the motherboards display outs
So this is probably the easiest of them all for users on here, all you need to do is add the following flag:
-wegnoegpu
Now all GPUs besides the iGPU will be disabled, this isn't guaranteed to always work and has the consequence of not allowing other discrete GPUs to be used instead
So to start, you'll need to open up your config.plist and navigate towards Devices -> Add Properties where you'll add the following:
Devices | Key | Value | Disabled | Value Type |
---|---|---|---|---|
NVidia | name | 23646973706C6179 | DATA | |
NVidia | IOName | #display | STRING | |
NVidia | class-code | FFFFFFFF | DATA |
And here's the XML for those who prefer Copy-paste:
<key>AddProperties</key>
<array>
<dict>
<key>Device</key>
<string>NVidia</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>name</string>
<key>Value</key>
<data>
I2Rpc3BsYXk=
</data>
</dict>
<dict>
<key>Device</key>
<string>NVidia</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>IOName</string>
<key>Value</key>
<string>#display</string>
</dict>
<dict>
<key>Device</key>
<string>NVidia</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>class-code</string>
<key>Value</key>
<data>
/////w==
</data>
</dict>
</array>
And now all Nvidia GPUs will be blocked from your system
And for those with Navi or other unsupported AMD GPUs, there's also some luck for you as well
Devices | Key | Value | Disabled | Value Type |
---|---|---|---|---|
ATI | name | 23646973706C6179 | DATA | |
ATI | IOName | #display | STRING | |
ATI | class-code | FFFFFFFF | DATA | |
ATI | vendor-id | FFFF0000 | DATA | |
ATI | device-id | FFFF0000 | DATA |
And that XML Goodness:
<key>AddProperties</key>
<array>
<dict>
<key>Device</key>
<string>ATI</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>name</string>
<key>Value</key>
<data>
I2Rpc3BsYXkA
</data>
</dict>
<dict>
<key>Device</key>
<string>ATI</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>IOName</string>
<key>Value</key>
<string>#display</string>
</dict>
<dict>
<key>Device</key>
<string>ATI</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>class-code</string>
<key>Value</key>
<data>
/////w==
</data>
</dict>
<dict>
<key>Device</key>
<string>ATI</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>vendor-id</string>
<key>Value</key>
<data>
//8AAA==
</data>
</dict>
<dict>
<key>Device</key>
<string>ATI</string>
<key>Disabled</key>
<false/>
<key>Key</key>
<string>device-id</string>
<key>Value</key>
<data>
//8AAA==
</data>
</dict>
</array>
For most this is considered the hardest as this requires the most amount of work, we'll be using Rehabman's SSDT patching to accomplish our Spoofing. The benefit of this method is that you can use a Kepler GPU with your system without any issues as we'll be blocking a device on the PCIe level
To start, you'll need the following:
An SSDT/DSDT dump(done by pressing F4 at Clover boot screen)
If you open your EFI and go within EFI/CLOVER/ACPI/origin, you'll find a bunch of .aml files. These are the files we'll be playing with so grab them and put them in a folder somewhere on your hack
Now you'll want to grab an AISL Complier to analyze these files, you can grab Rehabman's Compiler here.
Within finder, press Command+Shift+G, enter /usr/bin and paste the IASL file here(you will need to authenticate)
Now in terminal, running the following command will disassemble our .aml files:
cd "to directory where you placed all SSDT/DSDT"
iasl -da -dl DSDT.aml SSDT*.aml
Now you'll find a bunch of .dsl files in that folder as well
Next lets try and find _OFF, this is what is needed for disabling your GPU
cd "to directory where you placed all SSDT/DSDT"
grep -l Method.*_OFF *.dsl
Terminal should return a list of SSDT's with _OFF within them
Example:
SSDT-2-PegSsdt.dsl
SSDT-3-Ther_Rvp.dsl
We can also check where the _INI files are, these files are likely going to have some that match with _OFF which are likely the files we want
cd "to directory where you placed all SSDT/DSDT"
grep -l Method.*_INI *.dsl
Terminal should return a list of SSDT's with _INI within them
Example:
SSDT-2-PegSsdt.dsl
You'll need to open both of these files and examine, we want the file that corresponds to your GPU. My GPU was found under SSDT-2 but this isn't the same for everyone, you'll need to check whether the _OFF method is within a PowerShell macro or by itself(We want it by itself)
My GPU was found here:
\_SB.PCI0.PEG0.PEGP
And for those having issues finding the device path, you can also find it in windows by following the ACPI path in device Manager.
Properties->Details of the Nvidia device, scroll through the properties until you find "BIOS name"
- Rehabman
Now we can create our SSDT!
Let's open MaciASL, create a file, paste the text below and replace the device path with the one you have:
DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0)
{
Method(_SB.PCI0.RP05.PEGP._DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Return (Package()
{
"name", Buffer() { "#display" },
"IOName", "#display",
"class-code", Buffer() { 0xFF, 0xFF, 0xFF, 0xFF },
"vendor-id", Buffer() { 0xFF, 0xFF, 0, 0 },
"device-id", Buffer() { 0xFF, 0xFF, 0, 0 },
})
}
}
Now save your file as a ACPI Machine Language Binary and place it in EFI/Clover/ACPI/patched/SSDT-DiscreteSpoof.aml
(Don't forget to specify it in your Config.plist)
출처 : https://khronokernel-4.gitbook.io/disable-unsupported-gpus/
저 말은 모니터랑 연결하는 곳을 그래픽 카드가 아닌 메인보드 내 내장 그래픽으로 연결하는 포트에 연결해야 한다는 뜻인가요 ? ,, 165Hz 모니터라 DP로 그래픽 카드에 연결해뒀는데 HDMI로 메인보드에 연결하면 144Hz에서 안올라가던데 큰일이네요...