Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

Joined
Nov 20, 2011
Messages
27
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
  1. iOS
Hi,

I tried to patch DSDT, SSDT to disable nVidia Quadro 2000M on laptop. I read your guide, but somewhere I make a mistake. I have poor experiencies with patching ACPI tables, so could you help me with them?

If I try to test them, my system OSX 10.9.5 wont boot using Chameleon and Optimus Enabled in Bios. I post here my tables: Fresh extracted using F4 Clover method and patched with nVidia disabled, but got kernel panic after testing.
 

Attachments

  • ACPI original extracted.zip
    21.4 KB · Views: 95
  • ACPI patched nvidia disabled.zip
    17.5 KB · Views: 107
  • IMG_0005.jpg
    IMG_0005.jpg
    875.1 KB · Views: 394

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,164
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hi,

I tried to patch DSDT, SSDT to disable nVidia Quadro 2000M on laptop. I read your guide, but somewhere I make a mistake. I have poor experiencies with patching ACPI tables, so could you help me with them?

If I try to test them, my system OSX 10.9.5 wont boot using Chameleon and Optimus Enabled in Bios. I post here my tables: Fresh extracted using F4 Clover method and patched with nVidia disabled, but got kernel panic after testing.

No files attached.

Read post #1 "Problem reporting".
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,164
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hi,

I tried to patch DSDT, SSDT to disable nVidia Quadro 2000M on laptop. I read your guide, but somewhere I make a mistake. I have poor experiencies with patching ACPI tables, so could you help me with them?

If I try to test them, my system OSX 10.9.5 wont boot using Chameleon and Optimus Enabled in Bios. I post here my tables: Fresh extracted using F4 Clover method and patched with nVidia disabled, but got kernel panic after testing.

Patches are incorrect. You should NOT rename _SB.PCI0.PEG0.VID -> IGPU.

Also would need to see your Clover config.plist.

No chance of PEGP._OFF working (from _REG) as your discrete device is originally at _SB.PCI0.PEG0.VID (renamed to _SB.PCI0.PEG0.IGPU).
 
Joined
Nov 20, 2011
Messages
27
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
  1. iOS
Patches are incorrect. You should NOT rename _SB.PCI0.PEG0.VID -> IGPU.

Also would need to see your Clover config.plist.

No chance of PEGP._OFF working (from _REG) as your discrete device is originally at _SB.PCI0.PEG0.VID (renamed to _SB.PCI0.PEG0.IGPU).

OK, so I do not replace names VID to IGPU in DSDT and SSDT-6?

I posted clover config file and kext 10.10 in Clover
 

Attachments

  • 10.10.zip
    813.9 KB · Views: 115
  • config.plist.zip
    1.7 KB · Views: 110

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,164
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
OK, so I do not replace names VID to IGPU in DSDT and SSDT-6?

Only _SB.PCI0.VID should be renamed to IGPU.
_SB.PCI0.PEGP.VID should be left as-is.

There is "Rename PCI0.VID to PCI0.IGPU", so you should start with that. It will get some of the work done for you. But it will miss a few of them as it is not possible to have an automatic solution when both names are VID. Fix the remaining ones manually.
 
Joined
Nov 20, 2011
Messages
27
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
  1. iOS
Only _SB.PCI0.VID should be renamed to IGPU.
_SB.PCI0.PEGP.VID should be left as-is.

There is "Rename PCI0.VID to PCI0.IGPU", so you should start with that. It will get some of the work done for you. But it will miss a few of them as it is not possible to have an automatic solution when both names are VID. Fix the remaining ones manually.

OK, I rename VID to IGPU once again in DSDT, some from laptop patch, some names manualy, as you write. And used some patches from your guide.
But in DSDT.dsl I get 1 error, so I can't comile it for testing.
8405, 4090, Existing object has invalid type for Scope operator (_SB.PCI0.PEG0.VID [Untyped])

here are patched DSDT.dsl and SSDT.dsl
 

Attachments

  • nvidia disable.zip
    37.7 KB · Views: 136

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,164
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
OK, I rename VID to IGPU once again in DSDT, some from laptop patch, some names manualy, as you write. And used some patches from your guide.
But in DSDT.dsl I get 1 error, so I can't comile it for testing.
8405, 4090, Existing object has invalid type for Scope operator (_SB.PCI0.PEG0.VID [Untyped])

here are patched DSDT.dsl and SSDT.dsl

You made renames from VID to IGPU that are not correct. Don't change any VID that is referring to _SB.PCI0.PEGP.VID. Only the ones that are _SB.PCI0.PEG0.VID.
 
Joined
Nov 20, 2011
Messages
27
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
  1. iOS
You made renames from VID to IGPU that are not correct. Don't change any VID that is referring to _SB.PCI0.PEGP.VID. Only the ones that are _SB.PCI0.PEG0.VID.

Hi, now DSDT is compiled without Errors. I use patch to disable nVidia GPU in DSDT, look at line no. 6080

But have one problem:
- If I enable Optimus in BIOS to use IntelHD3000+nVidia Quadro 2000M, I got kernel panic with AppleIntelCPUPowermanagement.kext
- If I disable Optimus in BIOS to use only nVidia Quadro 2000M, my system boot but get black screen.
 

Attachments

  • DSDT.dsl.zip
    30.6 KB · Views: 116

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,164
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hi, now DSDT is compiled without Errors. I use patch to disable nVidia GPU in DSDT, look at line no. 6080

But have one problem:
- If I enable Optimus in BIOS to use IntelHD3000+nVidia Quadro 2000M, I got kernel panic with AppleIntelCPUPowermanagement.kext
- If I disable Optimus in BIOS to use only nVidia Quadro 2000M, my system boot but get black screen.

The patch is wrong.

- Your _OFF is at _SB.PCI0.PEG0.VID_OFF, the patch is calling \_SB.PCI0.PEG0.PEGP._OFF (which doesn't exist).

- It is best to call _OFF from _INI as described in post #1. Unless it accesses the EC.
 
Joined
Nov 20, 2011
Messages
27
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
  1. iOS
The patch is wrong.

- Your _OFF is at _SB.PCI0.PEG0.VID_OFF, the patch is calling \_SB.PCI0.PEG0.PEGP._OFF (which doesn't exist).

- It is best to call _OFF from _INI as described in post #1. Unless it accesses the EC.

OK, there are ACPI tables, where I used some patched to correct it again, but finaly patch to disable discrete GPU is still missing and I don't know how to do.

if I search code:
grep -l Method.*_OFF *.dsl
got this: SSDT-6.dsl

if I search code:
grep -l Method.*_INI *.dsl
got this: DSDT.dsl

But the lines in acpi tables are different as in your GUIDE in post no. 1 and I am at my wit's end. So I appreciative yout help with it.

THANKS
 

Attachments

  • nvidia disable.zip
    37.6 KB · Views: 115
Top