Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

Poor wording on my part. I've attached the clover folder and a folder containing the disassembled files that I am making my edits to. Inside that folder is another folder with the AML files that I save as I go.
These are identical to the ones inside the clover Patched folder. So working as in Work in progress.
Sorry for the confusion.

All I need to know is whether the files in ACPI/patched (and the rest of CLOVER setup/config.plist/etc) represent the problem scenario.
.dsl files are immaterial as Clover does not read them.
 
All I need to know is whether the files in ACPI/patched (and the rest of CLOVER setup/config.plist/etc) represent the problem scenario.
.dsl files are immaterial as Clover does not read them.


Short answer is yes.
Thanks
 
Short answer is yes.
Thanks

You will need to use ACPIDebug to debug your _OFF and HGOF methods to find out why they are not doing what you expect them to (and to verify they are being called).

Also, consider using partial hotpatch with AutoMerge=true.
That way you can do renames via config.plist/ACPI/DSDT/Patches.
And only the files that need patches (eg. DSDT.aml, SSDT-10.aml) need be placed in ACPI/patched.
See hints in guide:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
(It would make analyzing diffs between ACPI/patched and ACPI/origin much easier)
 
Last edited:
Installed acpidebug kext, patched DSDT with DSDT patch and the SSDT patch adding external methods to SSDT 10 (where _OFF and HGOF are located.
I insert the push code into each method like this for OFF?

Method (_OFF, 0, Serialized) // _OFF: Power Off
{
\RMDT.PUSH(_OFF)
If (LEqual (CCHK (Zero), Zero))
{
Return (Zero)
}

If (LNotEqual (GPRF, One))
{
Store (VREG, VGAB)
}

HGOF ()
Return (Zero)
}
 
Installed acpidebug kext, patched DSDT with DSDT patch and the SSDT patch adding external methods to SSDT 10 (where _OFF and HGOF are located.
I insert the push code into each method like this for OFF?

Method (_OFF, 0, Serialized) // _OFF: Power Off
{
\RMDT.PUSH(_OFF)
If (LEqual (CCHK (Zero), Zero))
{
Return (Zero)
}

If (LNotEqual (GPRF, One))
{
Store (VREG, VGAB)
}

HGOF ()
Return (Zero)
}

Your code won't compile... \RMDT.PUSH(_OFF) is nonsense.

Typically, you output strings to indicate execution progress and/or contents of variables.
For example:
Code:
Method (_OFF, 0, Serialized)  // _OFF: Power Off
{
\rmdt.p1("entered _OFF")
           If (LEqual (CCHK (Zero), Zero))
            {
\rmdt.p1("early exit from _OFF due to CCHK(0)==0")
                Return (Zero)
            }
\rmdt.p1("before GPRF test")
            If (LNotEqual (GPRF, One))
            {
\rmdt.p1("before VREG->VGAB store")
                Store (VREG, VGAB)
            }
\rmdt.p1("before calling HGOF")
            HGOF ()
\rmdt.p1("after calling HGOF, returning")
            Return (Zero)
}
 
Good morning,

I've successfully disabled the nvidia GPU without having to resort to messing around with the _REG.
Problem: I need to apply the "Disable/Enable on _WAK/_PTS" patch

Observed behaviour: (DSDT.dsl) When I click the patch it reports "2 patches, 0 changes" (guessing it can't find the external resource) when I click the patch on the Pre-modified DSDT (Default dsdt when MacAISL is opened) the 2 changes are applicable.

I did change the path from PEGP0 to RP01.

Please find attached the report files.

Regards

Edit:
Code:
kextstat|grep -y acpiplat

   15    2 0xffffff7f81e06000 0xa5000    0xa5000    com.apple.driver.AppleACPIPlatform (6.1) 33FE0184-9235-32DF-8BC2-0B2B11971EDB <14 13 12 11 7 6 5 4 3 1>

sudo touch /System/Library/Extensions && sudo kextcache -u /

Password:
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b861330 [0x7fffb1db1570]> { URL = "FakeSMC.kext/ -- file:///Library/Extensions/", ID = "org.netkas.driver.FakeSMC" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b877790 [0x7fffb1db1570]> { URL = "VoodooPS2Mouse.kext/ -- file:///Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Mouse" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b85d0b0 [0x7fffb1db1570]> { URL = "VoodooPS2Controller.kext/ -- file:///Library/Extensions/", ID = "org.rehabman.voodoo.driver.PS2Controller" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b86c4d0 [0x7fffb1db1570]> { URL = "VoodooPS2Keyboard.kext/ -- file:///Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Keyboard" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b862110 [0x7fffb1db1570]> { URL = "VoodooPS2Trackpad.kext/ -- file:///Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Trackpad" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b84bdf0 [0x7fffb1db1570]> { URL = "RealtekRTL8111.kext/ -- file:///Library/Extensions/", ID = "com.insanelymac.RealtekRTL8111" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb538c08400 [0x7fffb1db1570]> { URL = "ACPIBatteryManager.kext/ -- file:///Library/Extensions/", ID = "org.rehabman.driver.AppleSmartBatteryManager" }
KernelCache ID: 6328957269FA81D9E8DD52B0F20AF8E5

There is no info for both appleintelcpu and applelpc
 

Attachments

  • CLOVER.zip
    1.8 MB · Views: 73
  • IOReg.ioreg
    5.4 MB · Views: 112
  • Rehabman.zip
    46.4 KB · Views: 60
Last edited:
Good morning,

I've successfully disabled the nvidia GPU without having to resort to messing around with the _REG.
Problem: I need to apply the "Disable/Enable on _WAK/_PTS" patch

Observed behaviour: (DSDT.dsl) When I click the patch it reports "2 patches, 0 changes" (guessing it can't find the external resource) when I click the patch on the Pre-modified DSDT (Default dsdt when MacAISL is opened) the 2 changes are applicable.

I did change the path from PEGP0 to RP01.

Please find attached the report files.

Regards

Edit:
Code:
kextstat|grep -y acpiplat

   15    2 0xffffff7f81e06000 0xa5000    0xa5000    com.apple.driver.AppleACPIPlatform (6.1) 33FE0184-9235-32DF-8BC2-0B2B11971EDB <14 13 12 11 7 6 5 4 3 1>

sudo touch /System/Library/Extensions && sudo kextcache -u /

Password:
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b861330 [0x7fffb1db1570]> { URL = "FakeSMC.kext/ -- file:///Library/Extensions/", ID = "org.netkas.driver.FakeSMC" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b877790 [0x7fffb1db1570]> { URL = "VoodooPS2Mouse.kext/ -- file:///Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Mouse" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b85d0b0 [0x7fffb1db1570]> { URL = "VoodooPS2Controller.kext/ -- file:///Library/Extensions/", ID = "org.rehabman.voodoo.driver.PS2Controller" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b86c4d0 [0x7fffb1db1570]> { URL = "VoodooPS2Keyboard.kext/ -- file:///Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Keyboard" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b862110 [0x7fffb1db1570]> { URL = "VoodooPS2Trackpad.kext/ -- file:///Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Trackpad" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb53b84bdf0 [0x7fffb1db1570]> { URL = "RealtekRTL8111.kext/ -- file:///Library/Extensions/", ID = "com.insanelymac.RealtekRTL8111" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb538c08400 [0x7fffb1db1570]> { URL = "ACPIBatteryManager.kext/ -- file:///Library/Extensions/", ID = "org.rehabman.driver.AppleSmartBatteryManager" }
KernelCache ID: 6328957269FA81D9E8DD52B0F20AF8E5

There is no info for both appleintelcpu and applelpc

What patch are you trying to apply?
Note that your native DSDT reads \_WAK, not _WAK, and \_PTS, not _PTS so make sure you make the appropriate edit.
 
Basic patching

It is important to understand how to extract, disassemble and patch your DSDT/SSDT files, and how to install them for your bootloader, etc. This subject is covered in my guide: http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html. You should be familiar with it before attempting this guide.

Because patching for the basics is important, we'll do that first here before getting started on the patching required for disabling the Nvidia card in the example.

This guide will assume that most common rename patches are done in config.plist/ACPI/DSDT/Patches. And it will assume that AutoMerge=true (relatively new Clover feature, added by RehabMan). These patches and settings are default in the guide plists: https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

Note: Post #1 rewritten to assume new Clover feature AutoMerge=true, and common renames via config.plist/ACPI/DSDT/Patches.
 
Last edited:
What patch are you trying to apply?
Note that your native DSDT reads \_WAK, not _WAK, and \_PTS, not _PTS so make sure you make the appropriate edit.
You're right, I couldn't apply the patch to enable discrete gpu on PTS and disable it on WAK because of the way it reads. I don't really need the patch anyway after all, laptop sleeps, restarts and shuts down just fine.
 
Back
Top