Jump to content

Disabling NVIDIA Optimus card on all laptops


Whit3Spirit
 Share

345 posts in this topic

Recommended Posts

here it is. look this. i think i will continue tomorrow, time to bed

 

it worked, nvidia card is again disabled. same fan problem. tomorrow i will extract dsdt and ssdts with linux..

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip

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 -R ~/Downloads/RehabMan
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract
Post contents of Downloads/RehabMan directory (as ZIP).

 

Also, post ioreg with v2.1 IORegistryExplorer.

 

Also, post all native files extracted via Linux.

Link to comment
Share on other sites

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip

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 -R ~/Downloads/RehabMan
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract
Post contents of Downloads/RehabMan directory (as ZIP).

 

Also, post ioreg with v2.1 IORegistryExplorer.

 

Also, post all native files extracted via Linux.

 

here is it.

for linux dump: i've extract with acpidump. Zip file contains ssdts and dsdt in .dat format and in .dsl format, disassembled with iasl to make sure that i'm not wrong

Linux dump.zip

MacBook Pro di Laptop.zip

patchmatic files.zip

Link to comment
Share on other sites

here is it.

for linux dump: i've extract with acpidump. Zip file contains ssdts and dsdt in .dat format and in .dsl format, disassembled with iasl to make sure that i'm not wrong

You will have a much easier time with things if you disassemble properly...

Since ssdt4.dat and ssdt3.dat are duplicates, you need to remove one of them.

 

Then you can disassemble:

iasl -da -dl *.dat
Will be back with more info...

 

Notes:

- not sure why you too original ssdt3.dat, patched it, and renamed it SSDT-6.aml. It is best to keep original numbers to avoid confusion.

- _OFF should not be called from _REG. Call from associated _INI in the SSDT instead.

- do not call SPIN/SGTH twice from within _REG (each was called only once in original _OFF)

- _INI in ssdt3 (renamed to SSDT-6.aml) has not been patched to call _OFF

- you may need more of the OEM SSDTs (try including all)

Link to comment
Share on other sites

Strange, but i haven't renamed anything. I just use acpidump to extract all tables.

The Clover bootlog shows SSDT.aml and SSDT-6.aml loading from ACPI/patched. The content of SSDT-6.aml (based on patchmatic -extract output) is patched ssdt3.dat.

 

Your Clover bootlog:

2:575  0:000  Inserting table[0]:SSDT.aml from EFI\CLOVER\ACPI\patched ... Success
2:583  0:008  Inserting table[7]:SSDT-6.aml from EFI\CLOVER\ACPI\patched ... Success
In patchmatic -extract:

- SSDT.aml will be SSDT.aml

- SSDT-6.aml will be SSDT-1.aml

 

Looking at patchmatic SSDT-1.aml, it is patched ssdt3.dat.

Link to comment
Share on other sites

Hello I flow 1st topic i tried to disable nvidia GTX 860M on my g551JM but it doesn't work

please help me?

You likely have "unbalanced renames". \_SB.PCI0.PEG0.PEGP._OFF and \_SB.PCI0.PEG0.PEGP._PS2 are not defined in DSDT, and not defined in SSDT-7. So I assume it comes from some other SSDT you didn't elect to include, perhaps loading from OEM. But your DSDT and SSDt-7 have GFX0->IGPU rename, so it is likely the SSDT containing _OFF is being rejected as it probably doesn't have the same rename.

 

No idea without more information on your configuration.

Link to comment
Share on other sites

You likely have "unbalanced renames". \_SB.PCI0.PEG0.PEGP._OFF and \_SB.PCI0.PEG0.PEGP._PS2 are not defined in DSDT, and not defined in SSDT-7. So I assume it comes from some other SSDT you didn't elect to include, perhaps loading from OEM. But your DSDT and SSDt-7 have GFX0->IGPU rename, so it is likely the SSDT containing _OFF is being rejected as it probably doesn't have the same rename.

 

No idea without more information on your configuration.

Hi,

 

About lazzy, here is his topic: http://www.insanelymac.com/forum/topic/305725-asus-rog-g551j-have-glitches-with-hd4600/

Link to comment
Share on other sites

Hello this is my new DSDT HD4600 is on and Nvidia GTX 860M is off But i have another trouble with sleep

Fn+F1 doesn't work it can not wake up display is turn off

Apple / sleep works in 2m after 2m it can not wake up sometime i press fn+f1 it wake up fine but sometimes display is black i can move mouse cursors.

Please help

DSDT.zip

Link to comment
Share on other sites

  • 2 weeks later...

hello lexhimself

can you help me please. I stuck 2 weeks for fixed issue sleep. My laptop never works sleep/wakeup. I try apple/sleep less than 25s display is off, keyboard backlit is always on. I touch any key, there is popup asking password (look like wakeup). but  more than 25s i can not wakeup when i touch any key i have to hold on power button to restart. After reboot it ask me password ( i dont have password at boot) look like full sleep. But when i check in system.log i dont have anything wakeup so it never work full sleep. 

Link to comment
Share on other sites

Your method is added, thanks for share !

 

Hi,

 

Thanks, but the following should be noted: 

 

The calling works from DSDT and SSDT, at least for me.

After some feedback from RehabMan, i now know it needs to be explored more, because it is not sure if the power is really cut off from the card. 

 

Edit: 

 

Results from the kill-a-watt are in, the card is only hidden, not fully disabled.

 

EDIT 2:

The code i'm currently injecting from the definitionblock: 

    Device (NVOF)
    {
        Name (_ADR, 0x00010000)
        OperationRegion (RPCI, PCI_Config, Zero, 0xF0)
        Field (RPCI, DWordAcc, Lock, Preserve)
        {
                    Offset (0xB0), 
            ASPM,   2, 
                ,   2, 
            LNKD,   1
        }

        OperationRegion (GPIO, SystemIO, GBAS, 0x60)
        Field (GPIO, ByteAcc, Lock, Preserve)
        {
                    Offset (0x38), 
            LVL1,   32
        }

        OperationRegion (SGOP, SystemMemory, 0x9CF88F18, 0x50)
        Field (SGOP, AnyAcc, Lock, Preserve)
        {
            EBAS,   32, 
            CPSP,   32, 
            EECP,   32, 
            EVCP,   32, 
            XBAS,   32, 
            DBPA,   32, 
            SGGP,   8, 
            SGMD,   8, 
            SGFL,   8, 
            PWOK,   8, 
            HLRS,   8, 
            DSEL,   8, 
            ESEL,   8, 
            PSEL,   8, 
            PWEN,   8, 
            PRST,   8, 
            MXD1,   32, 
            MXD2,   32, 
            MXD3,   32, 
            MXD4,   32, 
            MXD5,   32, 
            MXD6,   32, 
            MXD7,   32, 
            MXD8,   32, 
            GBAS,   16, 
            APDT,   32, 
            AHDT,   32, 
            IHDT,   32
        }

        Method (_INI, 0, Serialized)
        {
            Store (One, LNKD)
            Store (0xBF777F4B, LVL1)
        }
    }
 

And to _WAK:

        Store (0xBF777F4B, ^NVOF.LVL1) 

The system is stable at 29~31 WATT, instead of 42WATT without calling method _OFF or 37WATT using the previous method (Which i deleted for obvious reasons)

It still needs testing, and perhaps can be reduced some more.

 

Methods are loaded from _INI in the device NVOF, it will be initialized on boot, as stated in the ACPI Documentation. 

post-1090626-0-41992600-1431972153_thumb.png

hello lexhimself

can you help me please. I stuck 2 weeks for fixed issue sleep. My laptop never works sleep/wakeup. I try apple/sleep less than 25s display is off, keyboard backlit is always on. I touch any key, there is popup asking password (look like wakeup). but  more than 25s i can not wakeup when i touch any key i have to hold on power button to restart. After reboot it ask me password ( i dont have password at boot) look like full sleep. But when i check in system.log i dont have anything wakeup so it never work full sleep. 

 

 

I'll continue the discussion in your topic.

Link to comment
Share on other sites

hello

i need some help to disable my nvidia card in this laptop

i think that off method is in ssdt3 and ssdt4 but i never can compile these files without error

i use -e files -d file to optain  dsl files , but if i compile i have error

thank you

 

rc530 dump.zip

Link to comment
Share on other sites

Hey, it's been a while since I've worked on anything hackintosh related, so I'm not really sure about any of this, I dumped the ACPI tables in linux and got the ones from clover and used the latest iasl version i could find. (20141107) but i keep getting errors about redefined namespaces etc. Does UEFI / BIOS mode make a difference for the ACPI table structure? I got these in UEFI mode.

My laptop is a Clevo P150EM, gfx card a GTX670M.

 

Would really appreciated it if someone would take a quick look and tell me if it's doable or help me out a bit :)

tables.zip

Link to comment
Share on other sites

Hey, it's been a while since I've worked on anything hackintosh related, so I'm not really sure about any of this, I dumped the ACPI tables in linux and got the ones from clover and used the latest iasl version i could find. (20141107) but i keep getting errors about redefined namespaces etc. Does UEFI / BIOS mode make a difference for the ACPI table structure? I got these in UEFI mode.

My laptop is a Clevo P150EM, gfx card a GTX670M.

 

Would really appreciated it if someone would take a quick look and tell me if it's doable or help me out a bit :)

I had no issue disassembling your files. Here's what I did:

- downloaded your tables.zip

- unzip in place

cd ~/Downloads/tables
cd linux
iasl -da -dl DSDT.dat SSDT*.dat
cd ..
cd clover
iasl -da -dl DSDT.aml SSDT*.aml
Both were successful in creating all *.dsl files without error.

 

Using iasl here: https://bitbucket.org/RehabMan/acpica/downloads

 

You must be doing something wrong.

Link to comment
Share on other sites

I had no issue disassembling your files. Here's what I did:

- downloaded your tables.zip

- unzip in place

cd ~/Downloads/tables
cd linux
iasl -da -dl DSDT.dat SSDT*.dat
cd ..
cd clover
iasl -da -dl DSDT.aml SSDT*.aml
Both were successful in creating all *.dsl files without error.

 

Using iasl here: https://bitbucket.org/RehabMan/acpica/downloads

 

You must be doing something wrong.

 

 

Oh wow, I guess i was just too stupid to find the latest version of iasl and use it :) Thanks a lot.

 

Also i realised i have to replace the iasl binary in MacIASL when using that to compile.

Link to comment
Share on other sites

Here's a patched DSDT for Clevo P150EM based laptops with a GTX675M in my case (might work with other nvidia cards i don't know)

I tried to also include the method LexHimself describes, not sure if i did it right, don't have a kill-a-watt or something similar to it.

 

For anyone who might need it :)

P.S.: you need to set ig-platform-id to 0x01660004 for Clover's intel injection to work on this model.

DSDT.zip

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

I had no issue disassembling your files. Here's what I did:

- downloaded your tables.zip

- unzip in place

cd ~/Downloads/tables
cd linux
iasl -da -dl DSDT.dat SSDT*.dat
cd ..
cd clover
iasl -da -dl DSDT.aml SSDT*.aml
Both were successful in creating all *.dsl files without error.

 

Using iasl here: https://bitbucket.org/RehabMan/acpica/downloads

 

You must be doing something wrong.

 

Dear Mr Rehabman,

 

I request a small favour on my DSDT. I am attaching them for you to review. The problem is Nvidia graphic card disabled but I lost restart facility. Every time I need to shut down. Please help me to over come this problem.

DSDT.zip

Link to comment
Share on other sites

Dear Mr Rehabman,

 

I request a small favour on my DSDT. I am attaching them for you to review. The problem is Nvidia graphic card disabled but I lost restart facility. Every time I need to shut down. Please help me to over come this problem.

Try calling _ON from begining of _PTS, and _OFF from end of _WAK (before the Return).

Link to comment
Share on other sites

Try calling _ON from begining of _PTS, and _OFF from end of _WAK (before the Return).

Thanks for instant reply. I am not that much well versed with programming. Please, if you dont mind, can you update on my DSDT. Sorry for bothering you. 

 

Thanks in advance.

 

I tried to follow your instructions, Compiler returned 2 errors

 

" 5440, 4065, Object not found or not accessible from scope (^PEG0.PEGP._ON) 

 

 

5578, 4065, Object not found or not accessible from scope (^PEG0.PEGP._OFF)".

 

I added " External (\_SB_.PCI0.PEG0.PEGP._ON, MethodObj) "

Link to comment
Share on other sites

Thanks for instant reply. I am not that much well versed with programming. Please, if you dont mind, can you update on my DSDT. Sorry for bothering you. 

 

Thanks in advance.

 

I tried to follow your instructions, Compiler returned 2 errors

 

" 5440, 4065, Object not found or not accessible from scope (^PEG0.PEGP._ON) 

 

 

5578, 4065, Object not found or not accessible from scope (^PEG0.PEGP._OFF)".

 

I added " External (\_SB_.PCI0.PEG0.PEGP._ON, MethodObj) "

No idea without seeing what you've done. Attach your edited file.

Link to comment
Share on other sites

 Share

×
×
  • Create New...