Contribute
Register

Disable nvidia card to save battery

Status
Not open for further replies.
Joined
Dec 19, 2013
Messages
191
Motherboard
Laptop: HP Envy 17, Core: I7 4700MQ, IGP: HD 4600, GPU: Geforce GT 740M, 1920x1080, OS X 10.10/Windo
Mac
  1. MacBook
Mobile Phone
  1. iOS
Hi,
as nvidia optimus is not supported, I wanted to disable my nvidia 740m to save battery as it drains fast.
I have an HP Envy 17 with Haswell CPU.
Can you help me?
Thanks
Saldatore
 
Hi,
as nvidia optimus is not supported, I wanted to disable my nvidia 740m to save battery as it drains fast.
I have an HP Envy 17 with Haswell CPU.
Can you help me?
Thanks
Saldatore

The idea is simple: call the _OFF method associated with your nvidia graphics in the same SSDT from _INI. The details are a bit tricky to get right though. You must start by extracting all DSDT/SSDT from Linux.
 
The idea is simple: call the _OFF method associated with your nvidia graphics in the same SSDT from _INI. The details are a bit tricky to get right though. You must start by extracting all DSDT/SSDT from Linux.
Is there any guide to do this? I'm quite a newbie....
___________________
EDIT:
I was able to extract the DSDT from xubuntu, but I wasn't with the SSDT. I'm attaching the extracted DSDT and my DSDT & SSDT from the /Extra folder. Hope it's enough.View attachment extracted_DSDT.amlView attachment Extra_dsdt.amlView attachment Extra_ssdt.aml
 
You need all your DSDT/SSDT. They are available in /sys/firmware/acpi/tables and /sys/firmware/acpi/tables/dynamic.
Ok, I did it :)
I'm attaching one DSDT and 8 (!) SSDTs
 

Attachments

  • DSDT&SSDT.zip
    46.1 KB · Views: 101
Ok, I did it :)
I'm attaching one DSDT and 8 (!) SSDTs

SSDT5 has your _OFF method. Call _OFF from _INI within that SSDT, then place it where the bootloader will load it (depends one the bootloader you're using).

You must disassemble properly to minimize errors. Use a recent build of iasl and disassemble as a group:
Code:
iasl -da *.aml

Then work with the resulting .dsl, saving as .aml (format: ACPI Machine Language Binary) when you wish to test.

Your new _INI in SSDT5.dsl, will look something like:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR) /* External reference */
            _OFF() // this line added...
        }
 
SSDT5 has your _OFF method. Call _OFF from _INI within that SSDT, then place it where the bootloader will load it (depends one the bootloader you're using).

You must disassemble properly to minimize errors. Use a recent build of iasl and disassemble as a group:
Code:
iasl -da *.aml

Then work with the resulting .dsl, saving as .aml (format: ACPI Machine Language Binary) when you wish to test.

Your new _INI in SSDT5.dsl, will look something like:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR) /* External reference */
            _OFF() // this line added...
        }
I got one error....
 
If it is a line with just 'Arg0', remove it.
Yeah, I have tried to remove it and it worked.
Now, I have to copy all the SSDTs and the DSDT on my Extra folder or only one of them, I have to name them in a certain way?
 
Well, I have named the SSDTs as follows: SSDT-1.aml, SSDT-2.aml..... Is it correct? I have rebooted, but I can see the discrete graphics under system informations.
 
Status
Not open for further replies.
Back
Top