Jump to content

Disabling NVIDIA Optimus card on all laptops

Optimus Disable NVidia Acer Laptop V3-571G

  • Please log in to reply
273 replies to this topic

#1
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

Edited the 15/07/2014

Hi all !

 

After months of passive research i have found on some different forums a DSDT solution for disabling the NVidia card.

Disabling Nvidia allow to save battery power of 2x and temperature of laptop too.

 

 

 

 

My Specs

 

Acer Aspire V3-571G-73614G50Makk

:: Processor
:: Mainboard
Intel HM77 (Panther Point)
:: Memory
4096 MB
:: Graphics adapter
NVIDIA GeForce GT 640M - 2048 MB, Core: 708 MHz, Memory: 900 MHz, DDR3, 80.07.14.00.09, Optimus
:: Display
15.6 inch 16:9, 1366x768 pixel, LG Philips LP156WH4-TLA1, TFT LED
:: Soundcard
Realtek ALC269 @ Intel Panther Point PCH - High Definition Audio Controller
:: Networking
Broadcom NetLink BCM57785 PCI-E Gigabit Ethernet Controller (10/100/1000MBit), Atheros AR5BWB222 Wireless Network Adapter (b g n ), 4.0 Bluetooth
:: Optical drive
MAT{censored}A DVD-RAM UJ8B0AW
:: Hackintosh Config
 
 
 
 
DSDT Methods (work with all bootloader)

 

Instructions

Needed 

  • AIDA64 version 2.80 --> link
  • ssdtPRGen.sh --> link
  • AppleIntelCPUPowerManagementInfo.kext --> link
  • MacIASL --> link

 

Disabling NVidia card

  • In the first step, dump your dsdt from Windows with AIDA64 (version 2.80 max) --> tuto YouTube
  • Reboot on OSX
  • This patch don't need to extract or modify any SSDT. You can see the DSDT edits in the link of qwerty12 topic in credits. Quickly, in DSDT, i call external method for disabling the card. These links calls methods of SSDT-4 in my config but can be different with your machine. You don't need to copy manually the _OFF method from SSDT to DSDT. Add these lines if you don't have them to the top of your DSDT :
[...]

External (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)
External (_SB_.PCI0.PEG0.PEGP._PS0, MethodObj)
External (_SB_.PCI0.PEG0.PEGP._OFF, MethodObj)
External (_SB_.PCI0.PEG0.PEGP._ON, MethodObj)
External (_SB_.PCI0.PEG0.PEGP.SGOF, MethodObj)
External (_SB_.PCI0.PEG0.PEGP.SGON, MethodObj)

[...]
  • I added the method  M_OF before the _WAK method : 
[...]

Method (M_OF, 0, NotSerialized)
    {
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._OFF)) 
        { 
            \_SB_.PCI0.PEG0.PEGP._OFF()
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS3))
        {
            \_SB_.PCI0.PEG0.PEGP._PS3()
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP.SGOF))
        {
            \_SB_.PCI0.PEG0.PEGP.SGOF()
        }
​    }

[...]

 

  • After that, i call the M_OF method in _WAK :
[...]
Method (_WAK, 1, Serialized)
     {
         M_OF ()
         If (LAnd (LEqual (\_SB.PCI0.LPCB.EC0.AAST, One), LEqual (\_SB.PCI0.LPCB.EC0.AAEN, One)))
         {
             Store (Zero, GP53)
[...]
  • And i call the M_OF method in the _INI method :
[...]
Method (_INI, 0, NotSerialized)
         {
             Store (0x07D0, OSYS)
             M_OF ()
             If (CondRefOf (\_OSI, Local0))
             {
                 If (_OSI ("Windows 2001"))
[...]
  •  chameleon.png If you use Chameleon or branch, paste your modified DSDT to your Extra folder and add these options to your org.chameleon.Boot.plist :
<key>DSDT</key>
<string>/Extra/DSDT.aml</string>
<key>DropSSDT</key>
<string>No</string>
  • four-leaf-clover.png If you use Clover Bootloader, copy DSDT file in "EFI/CLOVER/ACPI/Patched"
  • Reboot and go to Applications/Utilities/System Information 
  • Go to Graphics Card Section, if the NVidia Chipset not appear, it’s working.

126051Capturedcran20140125174958.png

 

 

 

 

Enable the SpeedStep management

 

The only problem with this technic is the Power Management. When your turn off the DropSSDT flags in org.chameleon.Boot.plist, Chameleon don’t go dump your SSDT tables in the ACPI tables of your machine.

For enabling SpeedStepper with that fix, you should make a patched SSDT with the ssdtPRGen method :

 

  • Download the later ssdtPRGen.sh
  • Be sure that your SMBios.plist is appropriate with your CPU and system (A good SMBios can fix the iMessage, iCloud, iTunes and Apple Store connexion and login bugs). With my V3-571G core i7, i prefer the Macmini6,2 model for more speed steps.
  • In Terminal app, launch the ssdtPRGen.sh with command :
sudo sh /the_way_of_your_file/ssdtPRGen.sh
  • chameleon.png  Write your password and type "y" when it’s demanded for make a ssdt_pr.aml in your Extra folder only if you use Chameleon bootloader.
  • four-leaf-clover.png  If you use clover, copy this file in "EFI/CLOVER/ACPI/Patched" and rename it to ssdt-1.aml. If you have already a ssdt-1, rename it to ssdt-2... :hyper:
  • Reboot 
  • To be sure that your Speed Stepper is patched, download the AppleIntelCPUPowerManagementInfo.kext and add it to your System/Library/Extensions/ folder with the kext installer of your choice. I for one better in Kext Utility.
  • Rebuild cache with the app of your choice (kext utility make that automaticly) and reboot.
  • At start, open your terminal app and type this command : 
cat /var/log/system.log | grep "AICPUPMI:"
  • If you can see a lot of P-States, you did a good job.

 

157136Capturedcran20140125174245.png

 

 

 

 

 

 

 

About problems

 

Problem with auto ON after sleep

  • Past this method before the M_OF method in your DSDT :
Method (M_ON, 0, NotSerialized)
{
If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._ON))
{
\_SB_.PCI0.PEG0.PEGP._ON()
}
If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS0))
        {
            \_SB_.PCI0.PEG0.PEGP._PS0()
        }
If (CondRefOf(\_SB_.PCI0.PEG0.PEGP.SGON))
        {
            \_SB_.PCI0.PEG0.PEGP.SGON()
        }
​ }
  • After that, call M_ON method in _PTS (Prepare To Sleep) so that the _WAK after sleep can shutdown the card. (thanks to RehabMan)
Method (_PTS, 1, NotSerialized)
    {
        M_ON ()
[...]

Error of compilation

 

If you find an error of compilation in MacIASL after have make a clean DSDT (with no error), like "Line 1 : Input file does not appear to be an ASL or data table source file"

 

413958Capturede769cran20140715a768192227

 

 

Try to delete all return to the line in the M_ON or M_OF method or just replace it like that :

 

  • M_OF
Method (M_OF, 0, NotSerialized){If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._OFF)){\_SB_.PCI0.PEG0.PEGP._OFF()}If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS3)){\_SB_.PCI0.PEG0.PEGP._PS3()}If (CondRefOf(\_SB_.PCI0.PEG0.PEGP.SGOF)){\_SB_.PCI0.PEG0.PEGP.SGOF()}}
  • M_ON
Method (M_ON, 0, NotSerialized){If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._ON)){\_SB_.PCI0.PEG0.PEGP._ON()}If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS0)){\_SB_.PCI0.PEG0.PEGP._PS0()}If (CondRefOf(\_SB_.PCI0.PEG0.PEGP.SGON)){\_SB_.PCI0.PEG0.PEGP.SGON()}}

Credit

 

Thanks to PikeRAlpha for ssdtPRGen.sh

Thanks to 'qwerty12' for all informations --> link of her topic

Thanks to 'Skvo' for speedster and SSDT solution --> link of her post

Thanks to RehabMan for their instructions

Thanks to Webcivillian for the SSDT method



#2
badaxe2

badaxe2

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 148 posts
  • Gender:Male

Great work man, do you think that your patch is compatible or can be modified to work on my dsdt ? Nvidia card is 670mx with hd4000

 

DSDT https://www.dropbox....n1440d/DSDT.aml

IOREG https://www.dropbox....qz7/ioreg.ioreg



#3
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

Great work man, do you think that your patch is compatible or can be modified to work on my dsdt ? Nvidia card is 670mx with hd4000

 

DSDT https://www.dropbox....n1440d/DSDT.aml

IOREG https://www.dropbox....qz7/ioreg.ioreg

 

Hi Badaxe, try with that and say to me if your card is disabled.

link



#4
Demonbane

Demonbane

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 133 posts

nice guide!



#5
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

thanks :)



#6
mo.1

mo.1

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts
  • Gender:Male
  • Location:Germany
  • Interests:Laptop: (Clover) MSI GS60-2PEi716SR21 (1080p), i7-4710HQ, GTX 870m (disabled), Intel HD 4600, O...

Hey, do you think that your patch is compatible or can be modified to work on my dsdt? I have a Nvidia GTX 765m and a Intel HD4600

 

DSDT https://www.dropbox....270qcc/DSDT.aml

IOREG https://www.dropbox..../XMG C702.ioreg

 
Is it important that I create my DSDT with AIDA64, or can I create my DSDT with DSDT Editor on Mac?
I use Clover v.2330.


#7
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

Is it important that I create my DSDT with AIDA64, or can I create my DSDT with DSDT Editor on Mac?

 

 

DSDT Editor is a good editor but it can only extract the DSDT. AIDA can extract DSDT, SSDT, and all ACPI's tables. 

Can you extract your SSDT tables and upload it here ?



#8
mo.1

mo.1

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts
  • Gender:Male
  • Location:Germany
  • Interests:Laptop: (Clover) MSI GS60-2PEi716SR21 (1080p), i7-4710HQ, GTX 870m (disabled), Intel HD 4600, O...
I got some Problems.
 
First is, I don't find the option "ACPI Tools" on Windows 8.1 at the actual AIDA64 Version. But I have found a older Version 3.20.2600 and there ist the option "ACPI Tools".
The Program says that my Motherboard was not found or is Unkown.
 
Second is, that when I use the old Version of AIDA64 in ACPI Tool and click on Save Table I see 7 Lists of SSDT.
Which one you need?
 
Attached File  image.jpeg   136.69KB   35 downloads
 
Should I upload all?
 
Here is a Zip with all SSDT 1 to 7 from up to down and the actual DSDT.
 


#9
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

Hi guy !

I have opened your DSDT, the first have a bug or is wrong and the second is so buggy ! I try to debbug it but i'm not sure to getting there...

I tell you quickly if i'm able to do it.


Can you upload your DSDT original extracted from AIDA too please ?


Edit : I have found your PS3 and DSM method in SSDT-7, i think that the hack will be functional.



#10
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,576 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

I got some Problems.
 
First is, I don't find the option "ACPI Tools" on Windows 8.1 at the actual AIDA64 Version. But I have found a older Version 3.20.2600 and there ist the option "ACPI Tools".
The Program says that my Motherboard was not found or is Unkown.
 
Second is, that when I use the old Version of AIDA64 in ACPI Tool and click on Save Table I see 7 Lists of SSDT.
Which one you need?
 
attachicon.gifimage.jpeg
 
Should I upload all?
 
Here is a Zip with all SSDT 1 to 7 from up to down and the actual DSDT.
 
https://www.dropbox....SSDT AIDA64.zip


Disassemble them correctly:
# in Terminal, with recent iasl
iasl -da *.bin *.aml
These patches for DSDT:
into method label ADBG replace_content begin //nothing end;
Remove all the lines 'Zero' starting at line ~6258.

You then have a DSDT which will compile with no errors.
  • jsl likes this

#11
MyDOOm3

MyDOOm3

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts

Hi all I have a samsung notebook series 3 with nvidia optimus and 520MX intel hd 3000 I would like to disable the secondary display adapter in order to use the video card intel 3000. This guide is fine for my notebook? thank you very much



#12
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

Hi Mydoom3.

 

Try it and if you have a problème, post there.

 

 

 

 


Disassemble them correctly:

# in Terminal, with recent iasl
iasl -da *.bin *.aml
These patches for DSDT:
into method label ADBG replace_content begin //nothing end;
Remove all the lines 'Zero' starting at line ~6258.

You then have a DSDT which will compile with no errors.

 

 

Yes but this dsdt was modified and have 160 errors. With the original DSDT, it's more simple ^_^



#13
vusun123

vusun123

    Watching Breaking Bad ...

  • Members
  • PipPipPipPip
  • 241 posts
  • Gender:Male

I think it's a bit easier to disable your nvidia optimus in your ssdt ( especially for Haswell ). And you should decompile your dsdt/ssdt through iasl to reduce errors to minimum

P/S: here an example for you, I patched it already, although this Alienware can use the GTX 765M: http://www.insanelym...-compile-error/



#14
mo.1

mo.1

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts
  • Gender:Male
  • Location:Germany
  • Interests:Laptop: (Clover) MSI GS60-2PEi716SR21 (1080p), i7-4710HQ, GTX 870m (disabled), Intel HD 4600, O...

Here is my DSDT original extracted from AIDA.

 

Attached File  AIDA64_dsdt.aml.zip   20.77KB   10 downloads



#15
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

i can't correct it, i'm sorry :(



#16
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,576 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

Here is my DSDT original extracted from AIDA.
 
attachicon.gifAIDA64_dsdt.aml.zip


See post #10.

#17
Whit3Spirit

Whit3Spirit

    InsanelyMac Protégé

  • Donators
  • 74 posts
  • Gender:Male
  • Location:Behind you
  • Interests:Problems...

Yes a


I see that but the DSDT is corrupted. I can't make a clean result for save in aml... Sorry dude, i did my best :(



#18
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,576 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

Yes a

I see that but the DSDT is corrupted. I can't make a clean result for save in aml... Sorry dude, i did my best :(


Post #10 contains instructions for obtaining an error free DSDT compile.

#19
mo.1

mo.1

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts
  • Gender:Male
  • Location:Germany
  • Interests:Laptop: (Clover) MSI GS60-2PEi716SR21 (1080p), i7-4710HQ, GTX 870m (disabled), Intel HD 4600, O...

To Post #10

I have no idea how your method works.
In which terminal I need to copy the code?

# in Terminal, with recent iasl
iasl -da *.bin *.aml

I need to use the program MaciASL, DSDT Editor or DSDTSE?

I found this: http://www.osx86.net...acpi-tools-x64/

Can you post a tutorial or some explanations?

 

At the moment I get about 150 Errors, but I don't use the Code in the Terminal...I don´t know how does it goes... :(

 

THANK YOU GUYS!!



#20
TimeWalker75a

TimeWalker75a

    InsanelyMac Legend

  • Gurus
  • 1,150 posts
  • Gender:Male
... Nice one. iasl is a binary tool .. Google acpica





Also tagged with one or more of these keywords: Optimus, Disable, NVidia, Acer, Laptop, V3-571G


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy