Jump to content

Disable Optimus Nvidia GT640M ?


Whit3Spirit
 Share

13 posts in this topic

Recommended Posts

Hi all !

 

I have a bad english, sorry in advance !

 

I have a big problem with my DSDT. I just wanna disabling Optimus on my DSDT. I have a HD4000 in couple with a Geforce GT 640M. My PC is the Acer Aspire V3-571G. 

 

All my config is ok but my battery have just 1h of charge, the temperature of my proc is 85° and i'm scary to burn my PC !

 

If the graphic card is disable, i can have a long life and less strong temperature and be happy and don't worry !

 

Can you help me to patch my DSDT ?

 

 

 

Tanks for any help !  :thumbsup_anim: 

 

WS

 

 

 

 

EDIT : Solution --> http://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/

V3-571G i7 DSDT modified.zip

V3-571G i7 SSDT+DSDT unmodified.zip

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Ok, my hackintosh boot normally with the new dsdt but my GT640M is loaded without NVidia's kext... 

In my DSDT i have removelly the Graphic card with the PINI method in _WAK and _INI (_INI in the PEGP).

 

In my PINI method, i have :

Method (PINI, 0, NotSerialized)
    {
        \_SB.PCI0.PEG0.PEGP._OFF ()
        \_SB.PCI0.PEG0.PEGP._PS3 ()
        Store (Zero, \_SB.PCI0.EHC1)
        Store (One, \_SB.PCI0.EHC1)
        Store (Zero, \_SB.PCI0.EHC2)
        Store (One, \_SB.PCI0.EHC2)
    }

in _WAK :

Method (_WAK, 1, Serialized)
    {
        PINI ()
        Store (Zero, P80D)
        If (NEXP)
        

        ...

in _INI :

Method (_INI, 0, NotSerialized)
                {
                    PINI ()
                    Store (Zero, _ADR)
                }

Where is the problème ? I don't have warnings or problem with the compilation of MacIASL...

Link to comment
Share on other sites

In my DSDT i have removelly the Graphic card with the PINI method in _WAK and _INI (_INI in the PEGP).

PINI is conventionally called from _INI inside the PCI0 scope, not the PEGP Device. (PINI has been christened "PCI0/Wake INI" and you're also doing other things inside PINI that are totally unrelated to the NVIDIA card.) I don't think it makes a difference, though, but I feel it's worth mentioning.

 

In my PINI method, i have :

Method (PINI, 0, NotSerialized)
    {
        \_SB.PCI0.PEG0.PEGP._OFF ()
        \_SB.PCI0.PEG0.PEGP._PS3 ()
[...]
    }

 

Look again carefully at your SSDT-4. _PS3() already calls _OFF to turn off the card but only if OMPR is set to 0x03. This makes the _PS3() call redundant but it's not recommended to call _OFF directly. So, make it so that calling _PS3() actually calls _OFF:

 

Look at this post to see how to correctly set OMPR and turn off the card. Use it as a base for your PINI() method and fix your _WAK and _INI (in PCI0) accordingly. If you're dropping SSDTs, you'll have to merge the correct sections from your SSDTs into the DSDT yourself and ignore the External lines.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
 Share

×
×
  • Create New...