Jump to content

Disabling NVIDIA Optimus card on all laptops


Whit3Spirit
 Share

345 posts in this topic

Recommended Posts

Hi guys,

 

I tried to follow this guide but my discrete graphic card is still visible at System Info.

 

My modell is:

 

Vizio CN15-A5

CPU: 2.3 GHz Core i7-3610QM Ivy Bridge

IGPU: HD4000

GPU: NVIDIA GeForce GT 640M LE - 1 GB

 

I attached the unpatched DSDT.aml as well as all SSDT's.

 

Another question:

Do i have to add the SSDT's as well to the Extra folder (Chimera Bootloader) ??

 

Thanks for the help

DSDT_SSDT_Vizio_CN15_A5.zip

Link to comment
Share on other sites

Hi guys,

 

I tried to follow this guide but my discrete graphic card is still visible at System Info.

 

My modell is:

 

Vizio CN15-A5

CPU: 2.3 GHz Core i7-3610QM Ivy Bridge

IGPU: HD4000

GPU: NVIDIA GeForce GT 640M LE - 1 GB

 

I attached the unpatched DSDT.aml as well as all SSDT's.

 

Another question:

Do i have to add the SSDT's as well to the Extra folder (Chimera Bootloader) ??

 

Thanks for the help

Your _OFF method is in ssdt-7. _INI for PEGP is in ssdt-6.

 

See post #227 for the general idea. Call _OFF from _INI in ssdt-6:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
            External (\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
            \_SB.PCI0.PEG0.PEGP._OFF()
        }
Include at least ssdt-6/ssdt-7 in /Extra. Make sure renames are done equally to all DSDT/SSDTs (eg. if you're renaming GFX0 -> IGPU for IGPU power management). Make sure you Drop OEM SSDTs in order to provide patched ones.
Link to comment
Share on other sites

Hi

 

My Laptop model is:

 

Dell XPS 15 L502x

CPU:Intel Core i7-2630QM

IGPU: Intel HD3000

GPU: GeForce GT 540M

Is there a question, or are you just posting your files (which appear to be patched already for turning the dGPU off) for the fun of it?

Link to comment
Share on other sites

Is there a question, or are you just posting your files (which appear to be patched already for turning the dGPU off) for the fun of it?

Hi

 

I posted my files because I've been asked to do so by legot28 in post #229. And yes i have a question. After using your method i cannot reboot my system. I get a black screen and i have to force shutdown by pressing power button. Is there any other way to disable Nvidia Optimus?

Link to comment
Share on other sites

Hi

 

I posted my files because I've been asked to do so by legot28 in post #229. And yes i have a question.

Good reason to use quoted replies.

 

After using your method i cannot reboot my system. I get a black screen and i have to force shutdown by pressing power button. Is there any other way to disable Nvidia Optimus?

Verify that it is only the call to _OFF that causes the problem. Temporarily remove the _OFF call in SSDT-2.aml:

 

From:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
            _OFF ()
        }
To:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
            if (0) { _OFF () }
        }
It could be you're not injecting the proper properties for your HD3000 (depends on screen resolution, which you haven't specified). I don't see any HD3000 patches in DSDT for IGPU, and Clover will not do it correctly for laptops. Not to mention, that config.plist/Graphics/Inject/Intel is false in your config.plist. See here for HD3000 patches: https://github.com/RehabMan/Laptop-DSDT-Patch

 

Note: Sometimes it is better to call _PS3 instead of _OFF.

Link to comment
Share on other sites

Good reason to use quoted replies.

 

 

Verify that it is only the call to _OFF that causes the problem. Temporarily remove the _OFF call in SSDT-2.aml:

 

From:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
            _OFF ()
        }
To:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
            if (0) { _OFF () }
        }
It could be you're not injecting the proper properties for your HD3000 (depends on screen resolution, which you haven't specified). I don't see any HD3000 patches in DSDT for IGPU, and Clover will not do it correctly for laptops. Not to mention, that config.plist/Graphics/Inject/Intel is false in your config.plist. See here for HD3000 patches: https://github.com/RehabMan/Laptop-DSDT-Patch

 

Note: Sometimes it is better to call _PS3 instead of _OFF.

 

I'm 100 % sure I can't reboot because of _OFF method. I tried _PS3 method but it didn't work.

 

Your patch graphics_HD3K_low breaks my Google Chrome(It hangs at startup) that's why i don't use it.

I boot with config.plist/Graphics/Inject/Intel False because True causes green screen and I cannot boot the system.

Link to comment
Share on other sites

I'm 100 % sure I can't reboot because of _OFF method. I tried _PS3 method but it didn't work.

You need to test it (as I described above) to be sure.

 

After you confirm, there are other things that can be looked at.

 

Your patch graphics_HD3K_low breaks my Google Chrome(It hangs at startup) that's why i don't use it.

I boot with config.plist/Graphics/Inject/Intel False because True causes green screen and I cannot boot the system.

I think you have basic config issues with your HD3000...
Link to comment
Share on other sites

You need to test it (as I described above) to be sure.

 

After you confirm, there are other things that can be looked at.

 

I think you have basic config issues with your HD3000...

 

I have tested it as you describe and NVidia is On and reboot works.

 

How to solve those config issues?

Link to comment
Share on other sites

I have tested it as you describe and NVidia is On and reboot works.

 

How to solve those config issues?

Post ioreg using IORegistryExplorer v2.1.

 

Also, please clarify what you mean by "can't reboot my system". Do you mean that you can cold boot, but not boot via Apple->Restart?

 

If so, that is is a known problem with known solution (call _ON from _PTS, and _OFF from _WAK).

Link to comment
Share on other sites

Post ioreg using IORegistryExplorer v2.1.

 

Also, please clarify what you mean by "can't reboot my system". Do you mean that you can cold boot, but not boot via Apple->Restart?

 

If so, that is is a known problem with known solution (call _ON from _PTS, and _OFF from _WAK).

By saying I can't reboot I meant: Screen turns off but everything else (fan, keyboard) works and it stay like this. I hope you understand what i mean

Hitei’s MacBook Pro.zip

Link to comment
Share on other sites

By saying I can't reboot I meant: Screen turns off but everything else (fan, keyboard) works and it stay like this. I hope you understand what i mean

Try suggestion proposed in post #239.

Link to comment
Share on other sites

It didn't work. Still the same problem(black screen, fan on) when rebooting. I think i can live without reboot :P

Post ioreg with v2.1 IORegistryExplorer if you want me to look at what you did.

Link to comment
Share on other sites

XPS machines don't turn off by just using the PS3 or OFF methods. If you are using DSDT then I suggest you to download my DSDT from the downloads section and compare it with yours. Basically looking at OFF and PS3 methods and putting those in your DSDT. http://www.insanelymac.com/forum/files/file/32-dell-xps-l702x-bios-a19/

 

If you are using Clover then you can use Timewalker's package and get the SSDT from there: http://www.insanelymac.com/forum/topic/293246-osx-on-dell-vostro-3450-inspiron-n4110-xps-l702x-uefi-clover/

Link to comment
Share on other sites

There are no calls to _OFF/_ON from DSDT and or SSDT-1 in this ioreg.

Sorry, DSDT editing is like a black magic for me. I'll try again later.

 

@ HiteiKan - read my post if you want to fix your restart problem.

Thanks I'll look in to that.

 

webcivilian 

EDIT: I found those diffrences but when i try to copy-paste i get like 30 errors :/

I'll try again tomorrow.

Link to comment
Share on other sites

@HiteiKan - It's because it has the Optimus SSDT. If your DSDT does not have Optimus SSDT sections then you might have an SSDT. Copy the _OFF to your Optimus SSDT or better remove your SSDT completely and get the SSDT from Timewalker's DELL installer.


There are no calls to _OFF/_ON from DSDT and or SSDT-1 in this ioreg.

 

On XPS L702X and L502X the methods are called OPON and OPOF. It's just better to call _PS3 but we still have to modify the OPOF method as it does not turn off the card in a way that it can be turned on again.

Link to comment
Share on other sites

@HiteiKan - It's because it has the Optimus SSDT. If your DSDT does not have Optimus SSDT sections then you might have an SSDT. Copy the _OFF to your Optimus SSDT or better remove your SSDT completely and get the SSDT from Timewalker's DELL installer.

Each opinion varies, but I prefer to essentially leave the SSDTs in place and patch them (and DSDT if necessary). It is simpler than copying a bunch of code out of the SSDT into DSDT.

 

 

On XPS L702X and L502X the methods are called OPON and OPOF. It's just better to call _PS3 but we still have to modify the OPOF method as it does not turn off the card in a way that it can be turned on again.

Not on this model...

Link to comment
Share on other sites

What do you mean by not on this model?

 

  post-1093852-0-83306500-1410127027.png

 

post-1093852-0-09250400-1410127264.png


Each opinion varies, but I prefer to essentially leave the SSDTs in place and patch them (and DSDT if necessary). It is simpler than copying a bunch of code out of the SSDT into DSDT.
 

 

That's what I mean. HiteiKan is using the Optimus SSDT and does not have the Optimus methods in DSDT that is why he is getting the errors. So to get rid of the error its better to get rid of the SSDT and just the Optimus off SSDT instead of a full SSDT.

Link to comment
Share on other sites

...

That's what I mean. HiteiKan is using the Optimus SSDT and does not have the Optimus methods in DSDT that is why he is getting the errors. So to get rid of the error its better to get rid of the SSDT and just the Optimus off SSDT instead of a full SSDT.

Problem is what I mention in post #247. You have to actually call _OFF/_ON/etc as I described earlier to get any results. It is simple... No patches, no results.

 

I disagree with your assertion that is better to "get rid of the SSDT". In my opinion, it is better to use it.

Link to comment
Share on other sites

There are no _OFF/_ON methods on Dell L502X/L702X as I stated, they are OPOF/OPON. And you can't call them directly. You have to set the correct value for several objects and then call _PS3 else either the card will not turn off or restart will be broken. 

 

Again I'm not saying to get rid of the system Optimus SSDT. If you look at the attached files by HiteiKan, he has an extracted Optimus SSDT in the ACPI/patched folder. This SSDT is not needed but only a SSDT which has the _PS3 method call to turn off the card.

 

I had the same problems with restart as it would shutdown the computer. The below SSDT that I had posted earlier on post #73 will turn off the card but restart would break.

DefinitionBlock ("SSDT-1.aml", "SSDT", 2, "DELL ", "Optimus", 0x00001000)
{
    External (\_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)    
    External (\_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)    
    Method (\_SB._INI, 0, NotSerialized)
    {
        \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
            {
                /* 0000 */   0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                /* 0008 */   0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
            }, 0x0100, 0x1A, Buffer (0x04)
            {
                 0x01, 0x00, 0x00, 0x03
            })
        If (One)
        {
            \_SB.PCI0.PEG0.PEGP._PS3 ()
        }
    }
}

To fix the restart you have to set several objects and call PS3. I have fixed this issue on XPS laptops and the card turns off with a working restart.

The updated SSDT is included in Timewalker's DELL package: http://www.insanelymac.com/forum/topic/293246-osx-on-dell-vostro-3450-inspiron-n4110-xps-l702x-uefi-clover/

Link to comment
Share on other sites

 Share

×
×
  • Create New...