Jump to content

Disable nvidia card in DSDT

dsdt nvidia optimus laptop disable

  • Please log in to reply
1 reply to this topic

#1
lucasR

lucasR

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
  • Gender:Male
  • Location:Brazil
i got a Lg a550, with a i5-3210m and an Gt 640m, i need to disable the Gt 640m so i can save battery, i extracted the ssdt and i found the OFF method in SSDT4 but i can't find any information on where to put the OFF method, so i am asking for help to do this.
 
i really hope that anyone can help me.
thanks.
 
Attached File  NVD.zip   39.46KB   35 downloads


#2
RehabMan

RehabMan

    InsanelyMac Legend

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

i got a Lg a550, with a i5-3210m and an Gt 640m, i need to disable the Gt 640m so i can save battery, i extracted the ssdt and i found the OFF method in SSDT4 but i can't find any information on where to put the OFF method, so i am asking for help to do this.
 
i really hope that anyone can help me.
thanks.
 
attachicon.gifNVD.zip


What I would do:

make sure SSDT4.aml is loading: You are probably using DropSSDT=Yes, so it is not currently in ACPI namespace. Instead eliminate just the CPU p/c state related tables. And include the raw binary (no need to recompile) SSDTs, as SSDT-1.aml, SSDT-2.aml, etc.

call the method from _SB.PCI0._INI: You should be able to do it like this:
External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
if (CondRefOf(\_SB.PCI0.PEG0.PEGP._OFF)) { \_SB.PCI0.PEG0.PEGP._OFF() }
So, your _INI would start out like:
        Method (_INI, 0, NotSerialized)
        {
            External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
            if (CondRefOf(\_SB.PCI0.PEG0.PEGP._OFF)) { \_SB.PCI0.PEG0.PEGP._OFF() }
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI ("Windows 2001"))     
...
In your case, SSDT1, SSDT2, SSDT3 are all not necessary, so you should DropSSDT=Yes and then include SSDT4.AML as SSDT-1.AML (assuming SSDT.AML) has your normal CPU p/c states (eg. from Pike's script). The bootloader will load DSDT.AML, SSDT.AML, and SSDT-1.AML (contents same as SSDT4.AML). Recompiling SSDT4 is complicated, so I recommend you don't bother. Instead just include the binary as extracted from Linux.

Note: I have no idea if that will work, as I don't buy laptops with discrete cards, but if I did have your situation, that's what I would try.





Also tagged with one or more of these keywords: dsdt, nvidia, optimus, laptop, disable


0 user(s) are reading this topic

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