Contribute
Register

How to Disable NVIDIA to reduce heat and extend battery life (Yosemite on Toshiba P850)

Status
Not open for further replies.
Joined
Oct 16, 2013
Messages
70
Motherboard
P850 - PSPKFC -Oc4004
CPU
Intel Core i7 3630QM @ 2400 MHz (max : 3400)
Graphics
NVIDIA® GeForce® GT 630M 2GB with Optimus + Intel® HD Graphics 4000
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
Hello Every one,

With the Help and Support of RehabMan i was able to install Yosemite on my Laptop Toshiba P850
including :
  • Power Management for my Ivy Bridge CPU on 7 Series Motherboard
  • Brightness fix for the HD4000 Intel Graphics
  • Sleep Fix
  • Audio ALC280 Working great (just line-in input not working still)

My problem now is that even after patching the DSDT and fixing Power Management Issue
My Idle CPU temperature still 48-50C while it should be 38-40C on idle state
and My Battery shows only 1:10 remaining time at 100% while it should be >3:00

RahebMan Suggested To Disable the NVIDIA to reduce power consumption and heat on the System

So I will share my results here so i can get some help and may someone get benefit of it too :)
 
First thing i have my graphics GFX0 (renamed now) in the DSDT,

Should i search first for the SSDT that is for my external GPU NVIDIA and work on it?
i have 6 SSDT extracted how to find which one for my NVIDIA Device?

and what is the procedure to start with?

Thank You

 
First thing i have my graphics GFX0 (renamed now) in the DSDT,

Should i search first for the SSDT that is for my external GPU NVIDIA and work on it?
i have 6 SSDT extracted how to find which one for my NVIDIA Device?

and what is the procedure to start with?

Thank You


I'm not sure on this procedure, as I don't have an nVidia card, but you can try this:

Find the SSDT that has your GFX0 defined in it (or may be in DSDT, that's where mine is), and find the _INI method. You can find it if you search for this:

Method (_INI)

Then at the very bottom of the method before the curly bracket that closes the method add this code:

_OFF

Save your SSDT and make sure your boot loader is using it and it SHOULD disable your nVidia card. You can try it, but I'm not 100% sure. :think:

Cheers!
 
I'm not sure on this procedure, as I don't have an nVidia card, but you can try this:

Find the SSDT that has your GFX0 defined in it (or may be in DSDT, that's where mine is), and find the _INI method. You can find it if you search for this:

Method (_INI)

Then at the very bottom of the method before the curly bracket that closes the method add this code:

_OFF

Save your SSDT and make sure your boot loader is using it and it SHOULD disable your nVidia card. You can try it, but I'm not 100% sure. :think:

Cheers!

Search for the _OFF method related to your nvidia (the SSDT will have PEGP/PEG0 references). Call _OFF from the corresponding _INI.
 
Thanks you Dudes Sorry i was away,

Mine, also my Device (GFX0) was is in DSDT and not in any SSDT
and also the Method (_INI) exist there

but now its renamed by RehabMan patch to Device (IGPU)
and i believe this is the HD4000 not the Nvidia so is this one which i should disable ?

please correct for me because I'm still new to this,

RehabMan
do you mean search for _OFF where it is implemented and copy it to the DSDT/SSDT i want to disable?
and
(the SSDT will have PEGP/PEG0 references)
what do you mean by PEGP/PEG0 references
Device (PEGP) this one??

this is also in my DSDT ..
so please help me to know what exactly to look for .. this one in DSDT or look for other one in SSDT files ,

actually there is only 2 possible SSDTs out of 6 ill attach it here too but still didn't fix their errors because I'm using now only one SSDT for CPU PM and the DSDT
Possible SSDTs:
View attachment SSDT-1.amlView attachment SSDT.aml

Used DSDT and SSDT:
View attachment DSDT.amlView attachment SSDT.aml

Thank you
 
...
actually there is only 2 possible SSDTs out of 6 ill attach it here too but still didn't fix their errors because I'm using now only one SSDT for CPU PM and the DSDT
Possible SSDTs:
View attachment 115878View attachment 115879
..

You will need both of them. _INI is in the SSDT-1, and _OFF is in SSDT.

From _INI in SSDT-1

Code:
        Method (_INI, 0, NotSerialized)
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
// added code follows
External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
_OFF()
        }
 
You will need both of them. _INI is in the SSDT-1, and _OFF is in SSDT.

From _INI in SSDT-1

Code:
        Method (_INI, 0, NotSerialized)
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
// added code follows
External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
_OFF()
        }

Man im not able to fix my SSDTs I'm googling it non of the errors could fix it yet, any suggestion?
do you think if i use Ubuntu to extract them it will be better or maybe less errors i got now using RWEverything on windows ?

and I'm trying to summarise the concept:
  1. i search of the SSDT that have my Nvidia device. (which is here the attached SSDT-1.aml before)
  2. then find the _INI method in it
  3. Add the external method _OFF() at the end of _INI method
is this true?
and
should i keep now (after fixing from errors) Both SSDT.aml and SSDt-1.aml to load (in Extra folder) and also keep the already existing SSDT.aml .. just name it SSDT-3.aml ?

Thank You
 
Man im not able to fix my SSDTs I'm googling it non of the errors could fix it yet, any suggestion?

Make sure you're disassembling them correctly (iasl -da -dl). Even then there still may be errors, but usually can be fixed by removing unused code (code that is Windows specific).
 
Make sure you're disassembling them correctly (iasl -da -dl). Even then there still may be errors, but usually can be fixed by removing unused code (code that is Windows specific).
Sorry man i edited it to make more clear and have more info .. can you update your reply please?

and Im trying now to know what you mean by dissembling them correctly ? is this the 1st step while extracting them i should customise it? or now while compiling ?
 
you need all DSDT and SSDT-* files in the same directory to dissasemble correctly, not just a single file each time ;)


iasl -d -dl * in the directory where all DSDT and SSDT files are present
 
Status
Not open for further replies.
Back
Top