Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

Joined
Nov 20, 2011
Messages
31
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
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

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,052
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
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
192,052
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
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
31
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
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

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,052
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
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
31
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
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

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,052
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
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
31
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
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

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,052
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
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
31
Motherboard
Dell Precision M4800 (Clover)
CPU
i7-4800mq / Chipset QM87
Graphics
nVidia Quadro K1100m 2GB
Mobile Phone
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

Top