Contribute
Register

[SOLVED] Disabling discrete NVIDIA GPU in Optimus

Status
Not open for further replies.
Joined
Aug 17, 2011
Messages
21
Motherboard
Dell Vostro 3750
CPU
Intel® Core™ i7-2670QM Processor
Graphics
Intel® HD3000
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
Hello,

since the the HD3000 chips do work pretty much OOB in 10.7 it's no real handicap to ignore one's powerful discrete GPU for OSX. But one major downside is the vast amount of precious battery power being wasted by the turned on, but unusable NVIDIA GPU in an optimus setup.

i have been trying to disable the NVIDIA GPU by copying the respective function from the SSDT into the DSDT in order to call it somewhere, but it turns out to be rather tricky for my particular setup. it seems the DSDT/SSDT are widely programmed in a whole different approach than most of the old ones for which i saw some results on this matter.

is there anyone who has experience in this and who would be willing to point me in the right direction here?

it's an i7-2670QM built into a dell vostro 3750 with a hd3000 and the gt 525m.

i'm considering downgrading the bios, since the version distributed by dell is older than the one mine was shipped with. and the dsdt on this one are pretty buggy.

thanks in advance for any hints
 

Attachments

  • SSDT2.dsl
    32.5 KB · Views: 454
  • DSDT.dsl
    346.7 KB · Views: 464
Re: Disabling discrete NVIDIA GPU in Optimus

Okay, that wasn't that hard.
just copy and paste the right things to the right place and call it at the right time and voila, no more wasteful geforce.
it's still a little crude about shutting down the system and stuff. but at least it shows '2:40 remaining' instead of '0:59' remaining at a charge of 87%
 
would you mind describing what you have done to accomplish this goal? I would like to do same thing on my Asus U36SD with HD3000 and GeForce GT520M.
Thanks in advance
 
Ok,
first i have to give credit to DoiX (http://www.projectosx.com/forum/index.p ... entry16794) from who i got the final hints from.

you will need a dsdt to do this.

my steps were these:
  • Extract your SSDTs (via some livelinux and acpidump or so)[/*:m:24pg6v6z]
  • Open them in a DSDT-Editor (like this one http://www.insanelymac.com/forum/index. ... pic=223205) and look for the one which says NVidiaOptimusTable (like NvOptTbl or so)[/*:m:24pg6v6z]
  • Look in this SSDT for a method called "OFF" or "OPOF"[/*:m:24pg6v6z]
  • Copy this method into the "/" scope of your DSDT and hit compile... and it will fail[/*:m:24pg6v6z]
  • Look where the missing variables are defined in the SSDT from before and copy the whole operationarea to where you pasted the OFF-method[/*:m:24pg6v6z]
  • Repeat until it compiles just fine[/*:m:24pg6v6z]
  • Call the OFF-method by adding "OFF()" (or whatever your method is called) to the _WAK method in your DSDT[/*:m:24pg6v6z]
  • Install the DSDT and reboot[/*:m:24pg6v6z]
  • Look in the systeminfo under Graphics/Displays. the nvidia should now not be listed anymore. if it is, there was some error.[/*:m:24pg6v6z]

of course you could just look for the variables beforehand instead of hitting compile every time but that way it's listed neatly. :)

what this did for me was boosting the battery life and cooling down the system.
i assume, because this is just calling the nvidia to shut off at boot and not reactivating it when the system shuts down the soft reboot will be screwed up, but NOT the usual shutdown. so using this method you will need to cold reboot your machine if you want to restart the system. that is the only disadvantage i encountered. but since imho the advantages outweigh the disadvantage by far it doesn't bother me the least.

but maybe i will try reactivating the nvidia on shutdown to fix the soft reboot sometime.

regards,
below
 
hey below,

I did your steps and put in my opon and opof methods for my card, then inserted the operationregions so that it compiles perfectly, but when i go to save the dsdt at this step with the DSDT Editor app, it saves it as a 0 kb file. is this an error in my dsdt or with the app? it saves a .dsl fine though.

thanks in advance!
 
i didn't compile in a while, but i kind of think that this means something is gravely wrong in the syntax of the DSL. If i remember correctly it just fails without telling, thus returning nothing. I'd suggest doing it over and pay attention to the scope into which you're pasting the method.

regards,
below
 
I upgraded my ram and flashed to the newest Bios Rev. I think "rev.A" or something.
Anyways, i extracted the new DSDT and redid all the fixes. And maybe it's just my imagination, but it feels a lot more stable and less 'artefacty' when i use GraphicsEnabler=Yes. The NvidiaPatching will fail (since it's disabled), but if i remember correctly it should do something to the HD3000 as well.

So here's the new DSDT.

PS: sorry, i cannot attach my 40 KB DSDT, because it's too large.
 
Hello, I have a Samsung Q330 with Nvidia 310m Optimus. I've follow your instructions but I've had no results (probably because I'm not able to correctly copy and paste the right pieces of ssdt in dsdt...). Too much errors! If i attach my dsdt and ssdts (the one which contains the Nvidia information is the ssdt6.aml) could you patch my dsdt, or explain me how to do (consider me as a dummy!)?
Thanks in advance.
 

Attachments

  • dsdt_ssdt.zip
    18 KB · Views: 202
Maybe I should explain better my problems...
When I copy/paste the parts of my ssdt6.aml on "Method (_OFF, 0, Serialized)" etc... and "Method (_PS3, 0, NotSerialized)" etc, there is a lot of instructions similar to this "Store (Zero, LLGE)" that, in compilation phase, give me a lot of errors like "Object is not accessible from this scope (LLGE)" and so on... Another kind of error I found is "Object does not exist (****)".
I don't know how to do. I've copy all the "Operation region...etc" but no results. Moreover, I'd like to know where I've to paste the ssdt code in the dsdt: you wrote there's a "Scope /", but I've found also a "Scope /" inside "Scope _SB.PCI0"....

459below, can you help me, please?
 
Status
Not open for further replies.
Back
Top