Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

I followed the guide and such but my nvidia card still shows up in the system profiler.

Due to my acpi path being the same as the repo patch, I just used the unmodified repo patch for the _ini on ssdt7 and uncommented the external line as the _off method was in ssdt8.
There was nothing referring to the EC so I didn't touch the DSDT. What did I miss?
 

Attachments

  • CLOVER.zip
    11.4 MB · Views: 128
  • kextstat output.png
    kextstat output.png
    24.6 KB · Views: 267
  • Patchmatic.zip
    34.8 KB · Views: 136
  • Zackptg5’s MacBook Pro.ioreg
    4.7 MB · Views: 212
I followed the guide and such but my nvidia card still shows up in the system profiler.

Due to my acpi path being the same as the repo patch, I just used the unmodified repo patch for the _ini on ssdt7 and uncommented the external line as the _off method was in ssdt8.
There was nothing referring to the EC so I didn't touch the DSDT. What did I miss?

_INI calls _OFF, _OFF calls SGOF. The first thing SGOF does is do some EC related things (TDRF writes to EC region TDRW) likely to abort. EC related code should be removed from SGOF and relocated to _REG as described in the guide.
 
_INI calls _OFF, _OFF calls SGOF. The first thing SGOF does is do some EC related things (TDRF writes to EC region TDRW) likely to abort. EC related code should be removed from SGOF and relocated to _REG as described in the guide.

Found it and followed the guide to relocate it to the _REG. The nvidia card is still present in the system profiler though. I couldn't find any other weird methods leading to the EC except one in SGON which I thought is the opposite of SGOF so I didn't touch it even though it is also a TDRF method
 

Attachments

  • CLOVER.zip
    11.4 MB · Views: 150
  • Zackptg5’s MacBook Pro.ioreg
    4.7 MB · Views: 216
  • patchmatic.zip
    35.2 KB · Views: 114
Found it and followed the guide to relocate it to the _REG. The nvidia card is still present in the system profiler though. I couldn't find any other weird methods leading to the EC except one in SGON which I thought is the opposite of SGOF so I didn't touch it even though it is also a TDRF method

Use ACPIDebug to see which methods are being reached.

You could also try calling _OFF from _REG (instead of _INI).

Make sure you didn't include any dynamic tables in ACPI/patched.
 
I do not have any dynamic tables present in clover partition. It appears that the methods are being called during boot
 

Attachments

  • Zackptg5’s MacBook Pro.ioreg
    4.7 MB · Views: 193
  • patchmatic.zip
    34.3 KB · Views: 110
  • All Messages.log.zip
    1.5 KB · Views: 114
  • Screen Shot 2015-05-31 at 9.59.24 PM.png
    Screen Shot 2015-05-31 at 9.59.24 PM.png
    130.3 KB · Views: 311
I do not have any dynamic tables present in clover partition. It appears that the methods are being called during boot

If they are being called and not working, I can think of a couple of causes:

- SystemMemory addresses in in patched files not correlated with real addresses in native. Fix: make sure your patched files are based on recent extract with current BIOS version, options, hardware config.

- Something else, such as methods are checking host operating system version. Make sure you have patched DSDT/etc as described in the guide. From my quick look at your DSDT (in patchmatic output), it does not appear you followed the guide.... For example there is no case for _OSI("Darwin").

Also, further debugging into the code path may be needed.

You could also try calling _PS3 instead of _OFF (as mentioned in post #1).
 
Assuming there are not additional SSDTs that may have your _INI...

Since you have no _INI for _SB.PCI0.PEG0.VID, create one.

Add to SSDT-6, just after _OFF:
Code:
Method(_INI) 
{
   _OFF()
}

Hi, now my patched ACPI tables are without errors and also I add to SSDT-6 _INI with _OFF.

But, when I enable OPTIMUS in BIOS to enable Intel HD3000, I got Kernel Panic, see snapshot.
When I disable OPTIMUS to run only nVidia Quadro 2000M, it looks like booting properly, but screen is black after 5 seconds because nVidia is disabled by patched SSDT. So I would like to welcome another tips and tricks.

thanks!
 

Attachments

  • quadro 2000M disable.zip
    36.8 KB · Views: 114
  • IMG_1339.jpg
    IMG_1339.jpg
    880.9 KB · Views: 202
Hi, now my patched ACPI tables are without errors and also I add to SSDT-6 _INI with _OFF.

But, when I enable OPTIMUS in BIOS to enable Intel HD3000, I got Kernel Panic, see snapshot.
When I disable OPTIMUS to run only nVidia Quadro 2000M, it looks like booting properly, but screen is black after 5 seconds because nVidia is disabled by patched SSDT. So I would like to welcome another tips and tricks.

thanks!

Which bootloader?

Please provide complete details in your profile/signature
(Profile/Settings link in upper right corner of this site)

System: manufacturer/model + bootloader(Clover/Chameleon/Chimera)
CPU: detailed CPU model + motherboard chipset
Graphics: all graphics devices + laptop internal screen resolution

For example, typical Ivy laptop:
System: HP ProBook 4540s (Clover)
CPU: i5-3320m/HM76
Graphics: HD4000, 1366x768

Use CPU-Z on Windows to find CPU (Core iX-xxx) and motherboard chipset (HMxx), and graphics capabilities. For a laptop, these details are important and affect critical installation procedures.
 
If they are being called and not working, I can think of a couple of causes:

- SystemMemory addresses in in patched files not correlated with real addresses in native. Fix: make sure your patched files are based on recent extract with current BIOS version, options, hardware config.

- Something else, such as methods are checking host operating system version. Make sure you have patched DSDT/etc as described in the guide. From my quick look at your DSDT (in patchmatic output), it does not appear you followed the guide.... For example there is no case for _OSI("Darwin").

Also, further debugging into the code path may be needed.

You could also try calling _PS3 instead of _OFF (as mentioned in post #1).

I tried option one and just re-extracted, decompiled, patched, etc and it seems to be disabled now. Not really sure what the difference is between the new extractions and the old ones.....but I think it works! Thanks!
 

Attachments

  • Screen Shot 2015-06-01 at 8.26.15 PM.png
    Screen Shot 2015-06-01 at 8.26.15 PM.png
    98 KB · Views: 319
I tried option one and just re-extracted, decompiled, patched, etc and it seems to be disabled now. Not really sure what the difference is between the new extractions and the old ones.....but I think it works! Thanks!

Probably SystemMemory addresses changed due to BIOS upgrade, BIOS option changes, or hardware changes (eg. amount of RAM installed).

You have to be extremely careful about always keeping patched files in sync with native.

Nice to hear you have found success. This is one of the more frustrating patches to accomplish because of its complex simplicity (after all, it really is only a one line change).
 
Back
Top