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

#261
pq3online

pq3online

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts
 

Yes, it is easy in concept. It is the details that trip people up.

Details:
- you must find the appropriate _INI method (the _INI on a device related to your discrete card... the one with _OFF)
- older machines do not have _OFF but contain similar methods... you have to search for them (use your brain)
- errors are reduced with 'iasl -da' but you may still have errors... fix them prior to applying patches
- even after your files are patched, errors corrected, if you open the patched/compiled .aml files, your errors may come back. The errors are not real, as they are created by the disassembly process. Always disassemble in a group with 'iasl -da'
- edit the resulting .dsl files, not .aml files when making changes
- save the resulting files as .aml files (format: ACPI Machine Language Binary). Not surprisingly, AppleACPIPlatform does not like loading text files into ACPI.
- if you rename devices in DSDT, you must do the same rename in all SSDTs you plan on loading (eg. GFX0->IGPU, B0D3->HDAU must be done universally)
- SSDTs that contain duplicate method (any duplicate object, actually) definitions will be thrown away (eg. DTGP can be defined only in one place; best not to use DTGP)
- SSDTs must be placed where the bootloader will load them. Chameleon, in Extra: SSDT.aml, SSDT-1.aml, SSDT-2.aml, no gaps in the numbers (Chameleon stops at first file not found... at first gap). Clover, in EFI/CLOVER/ACPI/patched, SSDT.aml, SSDT-? (where ? is a digit), gaps in the numbers allowed.
- you must drop each OEM SSDT you are patching. Best strategy: drop them all, add the ones you need (patched or not patched)
- some people experience problems with sleep/restart/shutdown when the discrete card is left in the off state... call _ON from DSDT _PTS and _OFF from DSDT _WAK. Use External to access the methods from DSDT. You must refer to the actual path (eg. _SB.PCI0.PEGP.PEG0._OFF)
- if the device with _INI in it (eg. PEG0.PEGP) is not active, OS X will not call _INI. An inactive device is one that returns Zero from _STA. Usually points to other issues with DSDT...
- if you upgrade hardware or BIOS, you must repeat the process...


Having a basic understanding of ACPI, ACPI namespace, how SSDTs are loaded, goes a long way.

One way to troubleshoot an issue is to extract all *patched* DSDT/SSDTs *binaries* from your running system (from ioreg). Then disassemble them with 'iasl -da'. If iasl finds errors in loading all your DSDT/SSDTs into a namespace, so will OS X have the same problems.

 



how to extract all *patched* DSDT/SSDTs *binaries* from ioreg

#262
Ramalama

Ramalama

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 273 posts
  • Gender:Not Telling
  • Location:Germany

For the users, where _OFF method doesn't work:

 

The _OFF method works!

Its just not working for you, because you need to fix Offsets of your Operationregions!

 

Clover can do this automatically for you if you enable in config.plist under ACPI-->DSDT-->Fixes:

FixRegions_10000000  --> YES

NewWay_80000000 ---> YES

 

Sometimes Clover have a bug in Autofixing Operationregions in your custom DSDT.aml

So you need to do that yourself...

Just dump your Tables with F4 in Clover and compare Operationregion offsets with your custom DSDT...

 

Cheers!



#263
justniell

justniell

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
  • Gender:Male
  • Location:Bekasi, Indonesia
  • Interests:Graphic Design.

So I'm totally a beginner with this stuff called DSDT, SSDT, etc.. I dumped (is that really the right word?) my DSDT using Clover bootloader and pressed F4 in boot menu. I was pretty surprised there are lots of stuff in my EFI/CLOVER/ACPI/origin folder... but I resolved this by asking a friend to see which file I should be using.

 

My laptop has Optimus card as well and I just actually don't know what to do to follow the instructions. Is there anyone can help me to do it? I've attached my DSDT, which I only patched Low Res HD3000, kinda scared to edit anything there...

 

Please tell me if there is anything else I need to attach here :)

Attached Files



#264
Step87

Step87

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts

Hello,

I ask for an help to switch off my NVIDIA 610M 2Gb on my laptop ASUS k53SD (Yosemite 10.10). I extracted the DSDT and SSDTs files. It seems that _OFF, _ON and other methods are stored into DSDT file (no SSDT) and the graphic card is recognized as \_SB.PCI0.PEG0.GFX0. 

 

I used you guide to try to switch the card off, but no results. Can someone explain to me where I'm wrong?

 

I attach all the files of my laptop.

Thanks in advance!

 

 

Attached Files



#265
RehabMan

RehabMan

    InsanelyMac Deity

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

Hello,

I ask for an help to switch off my NVIDIA 610M 2Gb on my laptop ASUS k53SD (Yosemite 10.10). I extracted the DSDT and SSDTs files. It seems that _OFF, _ON and other methods are stored into DSDT file (no SSDT) and the graphic card is recognized as \_SB.PCI0.PEG0.GFX0. 

 

I used you guide to try to switch the card off, but no results. Can someone explain to me where I'm wrong?

 

I attach all the files of my laptop.

Thanks in advance!

Since your _OFF method accesses the EC, you should call from _REG

Method (_REG, 2, NotSerialized)  // _REG: Region Availability
            {
                If (LEqual (Arg0, 0x03))
                {
                    Store (Arg1, ECFL)
                    \_SB.PCI0.PEG0.GFX0._OFF()
                }
            }

 

Also, DOFF calls _OFF, so it may be more appropriate to use than _OFF. You'll have to experiment.

 

Warning: _OFF methods that access the EC are problematic.  Because you can't access the EC until _REG makes the EC available, the _OFF method is called later than it would if called from _INI, and sometimes the drivers can already be loading/loaded (causing a crash when the device suddenly turns off).



#266
Step87

Step87

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts

Since your _OFF method accesses the EC, you should call from _REG

Method (_REG, 2, NotSerialized)  // _REG: Region Availability
            {
                If (LEqual (Arg0, 0x03))
                {
                    Store (Arg1, ECFL)
                    \_SB.PCI0.PEG0.GFX0._OFF()
                }
            }
 
Also, DOFF calls _OFF, so it may be more appropriate to use than _OFF. You'll have to experiment.
 
Warning: _OFF methods that access the EC are problematic.  Because you can't access the EC until _REG makes the EC available, the _OFF method is called later than it would if called from _INI, and sometimes the drivers can already be loading/loaded (causing a crash when the device suddenly turns off).

Thank you for your answer!!! Now I have my NVIDIA card disabled! :-)
But...another little problemi: now the laptop does not completely shutdown. Everything going off except fans and leds. I already patched SSDT (as said into the guide). Have you any other suggestione to solve this final problemi?

Thank you for your kind support

#267
RehabMan

RehabMan

    InsanelyMac Deity

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

Thank you for your answer!!! Now I have my NVIDIA card disabled! :-)
But...another little problemi: now the laptop does not completely shutdown. Everything going off except fans and leds. I already patched SSDT (as said into the guide). Have you any other suggestione to solve this final problemi?

Thank you for your kind support


Was shutdown working prior to turning nvidia off?

#268
Step87

Step87

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts

Was shutdown working prior to turning nvidia off?

Yes, it was



#269
Step87

Step87

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts
Finally fixed!!! I used your patch for the shutdown and it works!!! Everything is working now :-) thanks for your support!

#270
Step87

Step87

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts
Sorry, I have another little problem: the laptop does noto go to sleep!
I already call the DON method inside _PTS and the DOFF method inside _WAK

Can you help me please to fix this last problem?
Thank you!!!

#271
RehabMan

RehabMan

    InsanelyMac Deity

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

Sorry, I have another little problem: the laptop does noto go to sleep!
I already call the DON method inside _PTS and the DOFF method inside _WAK

Can you help me please to fix this last problem?
Thank you!!!


Do you have power management working? Did sleep work before? What happens when you attempt to sleep?

Finally fixed!!! I used your patch for the shutdown and it works!!! Everything is working now :-) thanks for your support!


Which patch are you referring to?

#272
Step87

Step87

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts

Do you have power management working? Did sleep work before? What happens when you attempt to sleep?Which patch are you referring to?

The laptop seems to shutdown everything except fans. Leds are not intermittente, they are fixed. The sleep stopped working after the application of the patch to shutdown nVidia.
I think that power management is working because I can recognize the battery. Shutdown and reboot work correctely!!!

I'm refferring to the patch here: https://github.com/R...e/master/system

Thank you!

#273
RehabMan

RehabMan

    InsanelyMac Deity

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

The laptop seems to shutdown everything except fans. Leds are not intermittente, they are fixed. The sleep stopped working after the application of the patch to shutdown nVidia.
I think that power management is working because I can recognize the battery. Shutdown and reboot work correctely!!!

I'm refferring to the patch here: https://github.com/R...e/master/system

Thank you!



Download patchmatic: https://github.com/R...iASL-patchmatic.
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
rm -Rf ~/Downloads/RehabMan
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract
Post contents of Downloads/RehabMan directory (as ZIP).

Also, post copy of ioreg using IORegistryExplorer v2.1.

#274
MrJoas97

MrJoas97

    InsanelyMac Protégé

  • Members
  • Pip
  • 9 posts
  • Gender:Male
Hello,
I am a beginner with DSDT editing and I edited my own DSDT. Now everything works, I just need to disable optimus. I searched a lot of forums and websites. Tried a lot of solutions but none of them worked.

I tried your guide to switch off the nvidia card but with no result.
Can someone explain to me what I do wrong?

The dsdt/ssdt files are attached.
Thanks in advance!

EDIT:
I just found out what the problem was. I had to place _OFF () in the _INI method for my nvidia card in the dsdt. It now switches the NVidia card off.

Attached Files







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


1 user(s) are reading this topic

0 members, 1 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