Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

Hello RehabMan,
Thanks for looking into it.

This is a Dell from work so I don't have the liberty to play around with it, and always rebooting is slowing my work down.
Since booting into OSX makes it basically headless, I can't access anything, everything that I got and submitted has been through the single user mode (-x).

I did the entire thing again during my break, what I don't get is why I don't have that many SSDTs, after the 6th, nothing else. I wish I would get them so I would be keeping on going with your tutorial.

I re-read the problem reporting section (post 1 of this thread), but except for the ioreg from the actual app that I cannot get, I'm clueless, what files did I forgot ?

Anyway, thanks again
 

Attachments

  • Dell XPS 2710.zip
    2.8 MB · Views: 70
Hello RehabMan,
Thanks for looking into it.

This is a Dell from work so I don't have the liberty to play around with it, and always rebooting is slowing my work down.
Since booting into OSX makes it basically headless, I can't access anything, everything that I got and submitted has been through the single user mode (-x).

I did the entire thing again during my break, what I don't get is why I don't have that many SSDTs, after the 6th, nothing else. I wish I would get them so I would be keeping on going with your tutorial.

I re-read the problem reporting section (post 1 of this thread), but except for the ioreg from the actual app that I cannot get, I'm clueless, what files did I forgot ?

Anyway, thanks again

You didn't provide any information on what the current symptoms/problems are with these files.
Must describe the problem.
That said, I went ahead and looked at your ACPI patching/setup.
Problems:
- You used the wrong _PRW patch (your DSDT uses 0x0d, not 0x6d)
- I see no sign of Nvidia Optimus in your ACPI/origin files
 
Whoah, I apologize, I was so caught up in having DSDT and SSDT extracted properly that I forgot to explain what was going on.

The Dell XPS 2710 is All-In-One PC with an i7-3770S Intel CPU (Desktop HD4000) and a Nvidia GT640M soldered on logic board. The Bios doesn't allow for any disabling of any video card.

What happens is that after the boot sequence, just after it loads the sound card and video card, the screen goes black and kinda flickers (like it would receive an unsupported resolution). Accessing remotely doesn't work.

I tried to activate the Nvidia Web drivers or completely remove the Nvidia drivers but that didn't change anything, so I was hoping that your trick with DSDT and SSDT would allow the computer to boot up.
Weird is that on the Verbose boot, you can see the Nvidia driver is loaded.
But even if I use GraphicsEnabler=No, I still end up with a black screen

For the HD4000 I tried different ig-platform-ids, but if I select another one than 0x0166000a, it doesn't work. stays on gIOScreenLockState.

Maybe the system is sending a non-working resolution to the display, but the display, being an all-in-one, is not offering a proper OSD with details on the resolution...
All of this trying to deactivate the Nvidia, but maybe the problem doesn't lie there.

Regardless, thanks to you, I've learned quite a couple of great things with DSDT and SSDTs, my home rig is now KP free waking up from sleep :)
 
Whoah, I apologize, I was so caught up in having DSDT and SSDT extracted properly that I forgot to explain what was going on.

The Dell XPS 2710 is All-In-One PC with an i7-3770S Intel CPU (Desktop HD4000) and a Nvidia GT640M soldered on logic board. The Bios doesn't allow for any disabling of any video card.

What happens is that after the boot sequence, just after it loads the sound card and video card, the screen goes black and kinda flickers (like it would receive an unsupported resolution). Accessing remotely doesn't work.

I tried to activate the Nvidia Web drivers or completely remove the Nvidia drivers but that didn't change anything, so I was hoping that your trick with DSDT and SSDT would allow the computer to boot up.
Weird is that on the Verbose boot, you can see the Nvidia driver is loaded.
But even if I use GraphicsEnabler=No, I still end up with a black screen

For the HD4000 I tried different ig-platform-ids, but if I select another one than 0x0166000a, it doesn't work. stays on gIOScreenLockState.

Maybe the system is sending a non-working resolution to the display, but the display, being an all-in-one, is not offering a proper OSD with details on the resolution...
All of this trying to deactivate the Nvidia, but maybe the problem doesn't lie there.

Regardless, thanks to you, I've learned quite a couple of great things with DSDT and SSDTs, my home rig is now KP free waking up from sleep :)

Your Nvidia might be dedicated (external port somewhere), not switched/Optimus.
You should read here: https://www.tonymacx86.com/threads/...-only-ran-for-0-seconds-with-dual-gpu.233092/
The ACPI path of your Nvidia is probably: _SB.PCI0.PEG0.PEGP (just did a quick look at DSDT.aml)
But you should verify in Windows 10 (look in Device Manager, Properties of Nvidia, find "BIOS name" in list)
While you're there, check to see what graphics device the main display is connected to.
And for the internal screen, you might have to inject EDID (look into Clover options at config.plist/Graphics/EDID).
 
Thanks Rehab, you're definitely a well of knowledge, that I'm happy to drink from.
I'll look into the other thread that is indeed something that is more resemblant to my issue.
 
when I try to disassemble I get this :

rex:ACPI_Files esmith$ iasl -da -dl DSDT.aml SSDT*.aml

Unknown option: -dl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130117-64 [Jan 19 2013]
Copyright (c) 2000 - 2013 Intel Corporation

What I am doing wrong... followed the directions...
 
I downloaded the iasl that's up on the site...
Upzipped it...
is there some binary that's missing...

You are not using the recommended version.
The recommended version (this is output from iasl -v):
Code:
Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20161210-64(RM)
 
This is what I got...

It seems to decompile, but the same files are still there... I think...

You are not using the recommended version.
The recommended version (this is output from iasl -v):
Code:
Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20161210-64(RM)

rex:~ esmith$ cd /Users/esmith/Documents/ACPI_Files

rex:ACPI_Files esmith$ iasl -da -dl DSDT.aml SSDT*.aml


Intel ACPI Component Architecture

ASL+ Optimizing Compiler version 20161210-64(RM)

Copyright (c) 2000 - 2016 Intel Corporation

Input file DSDT.aml, Length 0xA562 (42338) bytes
ACPI: DSDT 0x0000000000000000 00A562 (v02 DELL CBX3 00000021 INTL 20091112)
External object resolution file SSDT-7-NvdTabl.aml
Input file SSDT-7-NvdTabl.aml, Length 0x198A (6538) bytes
ACPI: SSDT 0x0000000000000000 00198A (v01 NvdRef NvdTabl 00001000 INTL 20091112)
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
External object resolution file SSDT-6x-ApCst.aml
Input file SSDT-6x-ApCst.aml, Length 0x119 (281) bytes
ACPI: SSDT 0x0000000000000000 000119 (v01 PmRef ApCst 00003000 INTL 20051117)
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
External object resolution file SSDT-5x-Cpu0Cst.aml
Input file SSDT-5x-Cpu0Cst.aml, Length 0x523 (1315) bytes
ACPI: SSDT 0x0000000000000000 000523 (v01 PmRef Cpu0Cst 00003001 INTL 20051117)
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
External object resolution file SSDT-4x-ApIst.aml
Input file SSDT-4x-ApIst.aml, Length 0x303 (771) bytes
ACPI: SSDT 0x0000000000000000 000303 (v01 PmRef ApIst 00003000 INTL 20051117)
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
External object resolution file SSDT-3x-CpuPm.aml
Input file SSDT-3x-CpuPm.aml, Length 0xB22 (2850) bytes
ACPI: SSDT 0x0000000000000000 000B22 (v01 PmRef CpuPm 00003000 INTL 20051117)
Pass 1 parse of [SSDT]
Pass 2 parse of [SSDT]
External object resolution file SSDT-2-CpuPm.aml
Input file SSDT-2-CpuPm.aml, Length 0xB22 (2850) bytes
ACPI: SSDT 0x0000000000000000 000B22 (v01 PmRef CpuPm 00003000 INTL 20051117)
Pass 1 parse of [SSDT]
ACPI Error: [SSDT] Namespace lookup failure, AE_ALREADY_EXISTS (20161210/dswload-462)
ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (20161210/psobject-310)
Could not parse external ACPI tables, AE_ALREADY_EXISTS

rex:ACPI_Files esmith$
 
Back
Top