Jump to content
Whit3Spirit

Disabling NVIDIA Optimus card on all laptops

346 posts in this topic

Recommended Posts

I was looking at the files you posted in post #164.

 

I assume that ssdt-1.dsl and ssdt-3.dsl are representative of their original order when extracted via Linux?

 

OK... so we can see that ssdt-1.dsl contains some IGPU declarations:

    Scope (\_SB.PCI0.IGPU)
    {
        Method (MXMX, 1, Serialized)
        {
            If (LEqual (Arg0, Zero))
            {
                \_SB.PCI0.RP05.PEGP.SGPO (\_SB.PCI0.RP05.PEGP.ESEL, Zero)
                P8XH (One, 0x77, One)
                P8XH (Zero, Zero, One)
                Return (One)
            }

            If (LEqual (Arg0, One))
            {
                P8XH (One, 0x77, One)
                P8XH (Zero, One, One)
                Return (One)
            }

            If (LEqual (Arg0, 0x02))
            {
                P8XH (One, 0x77, One)
                P8XH (Zero, 0x02, One)
                Return (LNot (\_SB.PCI0.RP05.PEGP.SGPI (\_SB.PCI0.RP05.PEGP.ESEL)))
            }

            Return (Zero)
        }

        Method (MXDS, 1, Serialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Return (LNot (\_SB.PCI0.RP05.PEGP.SGPI (\_SB.PCI0.RP05.PEGP.DSEL)))
            }

            If (LEqual (Arg0, One))
            {
                \_SB.PCI0.RP05.PEGP.SGPO (\_SB.PCI0.RP05.PEGP.DSEL, Zero)
            }

            Return (Zero)
        }

        Name (TLPK, Package (0x20)
        {
            Ones, 
            0x2C, 
            Ones, 
            0x2C, 
            Ones, 
            0x2C, 
            Ones, 
            0x2C, 
            Ones, 
            0x2C, 
            Ones, 
            0x2C, 
            Ones, 
            0x2C, 
            Ones, 
            Ones, 
            0x2C, 
            Ones, 
            Ones, 
            0x2C, 
            Ones, 
            Ones, 
            0x2C, 
            Ones, 
            Ones, 
            0x2C, 
            Ones, 
            Ones, 
            0x2C, 
            Ones, 
            Ones, 
            0x2C
        })
        
    }
Basically an injection of MXMX MXDS and TLPK objects into Scope (\_SB.PCI0.IGPU). And \_SB.PCI0.IGPU is defined in SSDT-3.aml... an SSDT that is loaded later than SSDT-1.aml. And your fix, so far, is to change the order, renaming SSDT-1.aml to SSDT-4.aml so it loads later, correct?

 

As a test, see what happens if you eliminate this entire section from SSDT-1.aml.

 

eg, patch SSDT-1.aml as such:

 

into scope label \_SB.PCI0.IGPU remove_entry;
into device label WMI1 remove_entry;
These items are not needed for OS X anyway.

 

Then load them in the original order... does it fix the issue?

 

 

yeah! it works now! i have also noticed that, thx for your reminding. and i am a little bit worried about if deleting this section may affect how the system runs. or is it even better to transplant this part into the SSDT-3? 

Share this post


Link to post
Share on other sites
Advertisement

yeah! it works now! i have also noticed that, thx for your reminding. and i am a little bit worried about if deleting this section may affect how the system runs. or is it even better to transplant this part into the SSDT-3?

Like I said, all that stuff is not used by OS X as it is Windows specific. You can re-order the SSDTs or you can remove that section. Either way works around the OS X limitation on SSDT order. OS X ACPI implementation is definitely gimped compared to Windows...

Share this post


Link to post
Share on other sites

HELLO

can someone help me to disable my optimus card in my laptop RC530 samsung

i test some method but never work for me

i send acpi files from aida and the dsdt that i use with clover

 

thank you

acpi dump RC530.zip

Share this post


Link to post
Share on other sites

HELLO

can someone help me to disable my optimus card in my laptop RC530 samsung

i test some method but never work for me

i send acpi files from aida and the dsdt that i use with clover

 

thank you

If you provide specific information about your problem, like message errors, logs, or any hint that will make people understand what is happening, then I believe that help will come faster

 

You will hardly have your files patched just by attaching them here and saying that it never worked for you 

Share this post


Link to post
Share on other sites

dear ones,

 

the guide described here 

 

1. turns card off in _ini

2. turns card on in _pts

3. turns card off in _wak

 

my ssdt is patched, but only with step 1.

 

my laptop correctly sleeps and wakes up.

 

my doubt: is it necessary to include steps 2 and 3? does my nvidia card turns on after wake up?

Share this post


Link to post
Share on other sites

dear ones,

 

the guide described here 

 

1. turns card off in _ini

2. turns card on in _pts

3. turns card off in _wak

 

my ssdt is patched, but only with step 1.

 

my laptop correctly sleeps and wakes up.

 

my doubt: is it necessary to include steps 2 and 3? does my nvidia card turns on after wake up?

It is necessary for some machines, but not all.

Share this post


Link to post
Share on other sites

thank you dear rehabman, but is it possible to verify if the nvidia card is turned on during the 'wake up' after system sleep?

Share this post


Link to post
Share on other sites

thank you dear rehabman, but is it possible to verify if the nvidia card is turned on during the 'wake up' after system sleep?

Measure power at wall?

Share this post


Link to post
Share on other sites

great and simple idea!

 

but i'll try to make it more simple... i'll read battery remaining time before sleep and after wake up. if time doesn't decrease considerably, then it's ok!

 

i'll post results here asap!

 

_________________________________

 

EDIT: taking as reference the remaining battery time, my laptop does not turn the nvidia card on during wake up. thanks for the tip!!!

Share this post


Link to post
Share on other sites

great and simple idea!

 

but i'll try to make it more simple... i'll read battery remaining time before sleep and after wake up. if time doesn't decrease considerably, then it's ok!

 

i'll post results here asap!

 

_________________________________

 

EDIT: taking as reference the remaining battery time, my laptop does not turn the nvidia card on during wake up. thanks for the tip!!!

Probably better to compare Amperage in ioreg (under battery) as a way to gauge power draw. Note: The system can be a little busy right after sleep, so you should expect greater power draw just after wake as compared with idle prior to sleep.

Share this post


Link to post
Share on other sites

dear rehabman,

 

this is what is got in idle before sleep and in idle after sleep:

 

BEFORE

FFFFF162 (or 4294963554)

 

AFTER

FFFFF6CD (or 429464941)

 

am i wrong to conclude that the nvidia card is constantly off?

Share this post


Link to post
Share on other sites

dear rehabman,

 

this is what is got in idle before sleep and in idle after sleep:

 

BEFORE

FFFFF162 (or 4294963554)

 

AFTER

FFFFF6CD (or 429464941)

 

am i wrong to conclude that the nvidia card is constantly off?

Before, discharge @3742 mA. After, discharge @2355 mA. Battery is discharging at a lower rate after sleep/wake than prior to sleep.

 

I think you can make your own conclusions...

Share this post


Link to post
Share on other sites

thank you very very much!

Share this post


Link to post
Share on other sites

hello 

i just want to know how to locate the off for my systeme

and after i research how apply a patch or modify dsdt or ssdt

ps: i don't use any ssdt 

i have ssdt in dsdt for cpu power managent with clover

i have same error too like in post 172

            #172            

thank you

Share this post


Link to post
Share on other sites

hello 

i just want to know how to locate the off for my systeme

and after i research how apply a patch or modify dsdt or ssdt

ps: i don't use any ssdt 

i have ssdt in dsdt for cpu power managent with clover

i have same error too like in post 172

            #172            

thank you

Are you sure you has dumped all your SSDT ?

Files are natively on your computer to work. If you're not sure you have all the files, used AIDA64 on windows to extract your ACPI.

Share this post


Link to post
Share on other sites

hello

the only ssdt that i use in my dsdt (ligne 11044) was created with ssdtPRGen and add at the end of my dsdt

i don't use file extract with aida

because i don't know how to do

i have send my acpi dump here            #178            

i think the off method are in ssdt3 and ssdt4

but i don't know how to incorporate in my dsdt

thank for explain me if it's possible

thank you

Share this post


Link to post
Share on other sites

 

great post  :thumbsup_anim:
 
you may be able to disable my Nvidia card please? 
 
These are the files that I was able to export with AIDA64:
 
 
Nvidia GeForce 610M (1GB) and Intel Core i3. All the information you need is in the zip. My Laptop is:
 
 
Thanks in advance  ^_^
 
 

 

did you read this thread instructions, tips and guide?

 

did you try to disable it yourself? what errors did you find in the process?

 

i myself don't have knowledge enough to do it for you, but i think you will get help faster if you ask help to solve problems you may find during the process of disabling your card, instead of requesting 'please do it for me'. ;)

Share this post


Link to post
Share on other sites

Hi lufeig, thanks for your answer. I tried to follow the instructions before posting my message. The problem is that when I go to apply the patch of Whit3Spirit in my DSDT with Chameleon Wizard, I get this message indicating that there are two errors in the compilation and then he does not save any modified DSDT. This is the Log:


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20111123-32 [Dec  3 2011]
Copyright (c) 2000 - 2011 Intel Corporation

/Users/leo/cw_dsdt/dsdt.dsl   7361:                     Name (_T_2, Zero)
Remark   5011 -                    Use of compiler reserved name ^  (_T_2)

/Users/leo/cw_dsdt/dsdt.dsl   7362:                     Name (_T_1, Zero)
Remark   5011 -                    Use of compiler reserved name ^  (_T_1)

/Users/leo/cw_dsdt/dsdt.dsl   7363:                     Name (_T_0, Zero)
Remark   5011 -                    Use of compiler reserved name ^  (_T_0)

/Users/leo/cw_dsdt/dsdt.dsl   9414:         Name (_T_0, Zero)
Remark   5011 -        Use of compiler reserved name ^  (_T_0)

/Users/leo/cw_dsdt/dsdt.dsl   9481:         Name (_T_0, Zero)
Remark   5011 -        Use of compiler reserved name ^  (_T_0)

/Users/leo/cw_dsdt/dsdt.dsl  10208:                 Name (_T_0, Zero)
Remark   5011 -                Use of compiler reserved name ^  (_T_0)

/Users/leo/cw_dsdt/dsdt.dsl  11134:             Name (_HID, "pnp0c14")
Error    4132 -                  Non-hex letters must be upper case ^  (pnp0c14)

/Users/leo/cw_dsdt/dsdt.dsl  12438:             Method (HSWC, 1, Serialized)
Warning  1113 -       Not all control paths return a value ^  (HSWC)

/Users/leo/cw_dsdt/dsdt.dsl  16722:             Return (Ones)
Warning  1130 -                   Statement is unreachable ^ 

/Users/leo/cw_dsdt/dsdt.dsl  16753:             Return (Ones)
Warning  1130 -                   Statement is unreachable ^ 

/Users/leo/cw_dsdt/dsdt.dsl  17736:             Name (_T_0, Zero)
Remark   5011 -            Use of compiler reserved name ^  (_T_0)

/Users/leo/cw_dsdt/dsdt.dsl  18149:                         Return (One)
Warning  1103 -             Reserved method should not return a value ^  (_Q0E)

/Users/leo/cw_dsdt/dsdt.dsl  18162:                             Return (One)
Warning  1103 -                 Reserved method should not return a value ^  (_Q0E)

/Users/leo/cw_dsdt/dsdt.dsl  18175:                         Return (One)
Warning  1103 -             Reserved method should not return a value ^  (_Q0E)

/Users/leo/cw_dsdt/dsdt.dsl  18215:             Return (One)
Warning  1103 -                                           ^ Reserved method should not return a value (_Q0E)

/Users/leo/cw_dsdt/dsdt.dsl  18232:                         Return (One)
Warning  1103 -             Reserved method should not return a value ^  (_Q0F)

/Users/leo/cw_dsdt/dsdt.dsl  18245:                             Return (One)
Warning  1103 -                 Reserved method should not return a value ^  (_Q0F)

/Users/leo/cw_dsdt/dsdt.dsl  18258:                         Return (One)
Warning  1103 -             Reserved method should not return a value ^  (_Q0F)

/Users/leo/cw_dsdt/dsdt.dsl  18296:             Return (One)
Warning  1103 -                                           ^ Reserved method should not return a value (_Q0F)

/Users/leo/cw_dsdt/dsdt.dsl  18325:         Method (_Q11, 0, Serialized)
Warning  1113 -   Not all control paths return a value ^  (_Q11)

/Users/leo/cw_dsdt/dsdt.dsl  18327:             Name (_T_0, Zero)
Remark   5011 -            Use of compiler reserved name ^  (_T_0)

/Users/leo/cw_dsdt/dsdt.dsl  18339:                 Return (One)
Warning  1103 -     Reserved method should not return a value ^  (_Q11)

/Users/leo/cw_dsdt/dsdt.dsl  18344:                 Return (One)
Warning  1103 -     Reserved method should not return a value ^  (_Q11)

/Users/leo/cw_dsdt/dsdt.dsl  18469:                 Return (One)
Warning  1103 -     Reserved method should not return a value ^  (_Q13)

/Users/leo/cw_dsdt/dsdt.dsl  18480:         Method (_Q14, 0, NotSerialized)
Warning  1113 -   Not all control paths return a value ^  (_Q14)

/Users/leo/cw_dsdt/dsdt.dsl  18488:                 Return (One)
Warning  1103 -     Reserved method should not return a value ^  (_Q14)

/Users/leo/cw_dsdt/dsdt.dsl  18502:         Method (_Q15, 0, NotSerialized)
Warning  1113 -   Not all control paths return a value ^  (_Q15)

/Users/leo/cw_dsdt/dsdt.dsl  18510:                 Return (One)
Warning  1103 -     Reserved method should not return a value ^  (_Q15)

/Users/leo/cw_dsdt/dsdt.dsl  21094:         Method (_ON, 0, NotSerialized)
Warning  1113 -  Not all control paths return a value ^  (_ON_)

/Users/leo/cw_dsdt/dsdt.dsl  21179:         Method (MXDS, 1, NotSerialized)
Warning  1113 -   Not all control paths return a value ^  (MXDS)

/Users/leo/cw_dsdt/dsdt.dsl  21209:             If (LNotEqual (SVID, 0xFFFFFFFF))
Warning  1130 -                    Statement is unreachable ^ 

/Users/leo/cw_dsdt/dsdt.dsl  21600:             Name (_HID, "pnp0c14")
Error    4132 -                  Non-hex letters must be upper case ^  (pnp0c14)

ASL Input:     /Users/leo/cw_dsdt/dsdt.dsl - 21910 lines, 648248 bytes, 10153 keywords

Compilation complete. 2 Errors, 22 Warnings, 8 Remarks, 15 Optimizations

Share this post


Link to post
Share on other sites
if I do not use the patch but I try to add the code manually to my DSDT, especially when I add this before the method _WAK: 
 
    Method (M_ON, 0, NotSerialized)
    {
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._ON)) 
        { 
            \_SB_.PCI0.PEG0.PEGP._ON() 
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS0))
        {
            \_SB_.PCI0.PEG0.PEGP._PS0()
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP.SGON))
        {
            \_SB_.PCI0.PEG0.PEGP.SGON()
        }
​    }

    Method (M_OF, 0, NotSerialized)
    {
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._OFF)) 
        { 
            \_SB_.PCI0.PEG0.PEGP._OFF()
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS3))
        {
            \_SB_.PCI0.PEG0.PEGP._PS3()
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP.SGOF))
        {
            \_SB_.PCI0.PEG0.PEGP.SGOF()
        }
​    }

I get this error:

syntax error, unexpected $end, expecting parseop_definitionblock

Share this post


Link to post
Share on other sites
I'm sorry... I did it. :blush: I rewrote the code by hand and now everything is working properly on my Asus X55VD  :w00t:

 

Great nice tutorial, well done.  :thumbsup_anim:

 

one last question. The Speedstep patch is only useful if you use the SSDT?

Share this post


Link to post
Share on other sites

mmm, there is a small problem. When I turn off the PC, turns off the CPU and the monitor but something of the PC stays on. The fan starts spinning faster and I have to turn off the computer manually by holding the power button on / off. Any idea?

Share this post


Link to post
Share on other sites

Can you help me as well? I've PM'd you a few questions

 

The thing is I'm not sure where I'm going wrong

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By RamLalith
      I executed all my DSDT's and SSDTs with no errors 
      I can't patch the battery

      I need help
      I am attaching my ACPI folder
      ACPI.zip
    • By SepehrM
      I'm trying to install High Sierra 10.13.3 on an ASUS N552VW laptop, and I get stuck after this message:
      "could not recover SATA HDD after 5 attempts, terminating" 
      And some other warnings afterwards.
      Specs:
      CPU: Intel Skylake 6700HQ 2.6GHz
      RAM: 16GB DDR4
      2TB HDD + 128GB SSD
      GPU: Intel HD Graphics 530 + Nvidia GTX960m
      I'm installing using a 16GB USB3 flash drive on one of HDD volumes (UEFI Mode)
       
      I uploaded the verbose log and clover config.plist
      config-new.plist

    • By Slice
      I successfully installed macOS 10.11.6 and Windows 7 Pro SP1 in UEFI mode on the laptop.
      I know, there are detailed guides here and on osxlatitude.com but I was not agree with them and carefully check and test every step to tune my Mac.
       
      Hardware
      Intel® Core� i5-3320M CPU @ 2.60GHz, speedstep works with Clover default settings
      Chipset Intel 7 series, no patches needed
      Video: IntelHD4000 or NVS5200M switchable in BIOS, work in both cases
      LAN; Intel 82579LM, works with IntelMausiEthernet.kext v2.2.1
      Audio: IDT 92HD93BXX, works with VoodooHDA 2.9.0.
      SDHC reader O2Micro; works with native AppleSDHC.kext with Clover Arbitrary properties.
      USB3.0 works natively if not disabled in DSDT
      PS2 keyboard and touchpad works with VoodooPS2.
      WiFi: Dell Intel WiFi was replaced by Dell DW1520, Broadcom BCM943224HMS. DeviceID=4353
      LCD Screen 1366x768
      BIOS A12. Initially was A02. Then I flashed A23 and found it is quite bad. The screen is full of artefacts. Flash A12 and all is OK. Not tested other versions.
      For some reason BIOS can switched from Intel to Nvidia by itself so I have to do my solution working independent on this state.
       
      WiFi
      It is not working OOB although it has DeviceID known to Apple. The reason is WhiteList in the driver.
      I set MacModel as MacBookPro10,1 while the WiFi will work on MacBookAir. I make a patch in Clover.
      As well a patch for channels.
      I deleted a kext Brcm4331 because it has the same DeviceID. Let kext Brcm4360 to work alone.
       
      VideoCards
      In Bios we can set Optimus = Enable/Disable
      If Enable then we have two videocards Intel first and Nvidia second. In this case additional SSDT-3.aml will switch off Nvidia.
      If Disable then we have only Nvidia card. It will work if Board-ID taken from iMac13,2.
      But here there is contradiction with WiFi with required Board-ID from MacBookAir.
      So I take MacModel as MacBookPro10,1 which is most close by CPU IvyBridge.
      Set BoardID like iMac13,2 to make Nvidia working.
      Patch BoardID in Brcm4360 to make WiFi working.
      Now I have
      Inject->
      ->Intel=YES
      ->Nvidia=YES
      and SSDT-3.aml in ACPI\patched folder. This SSDT will switch off Nvidia if Intel card ON.
      For Intel graphics there is a patch against 8 apples at start.
       
      Brightness
      No special kexts.
      The brightness controlled by keys F1,F2 and slider in Control Panel in both case Intel or Nvidia. Details here  #72 
       
      DSDT and SSDT
      This is very long story and finally I have working sleep in both cases Intel or Nvidia.
       
      Sensors
      I use my HWSensors3 with FakeSMC 3.5.0.
      I got monitoring:
      CPU temperature
      GPU temperature
      GPU main frequency
      GPU shader frequency
      Battery state % full, time to charged or time to empty.
      Battery voltage dinamically.
      Battery amperage dynamically. I can see it changes on heavy games.
      HDD temperature.

       
      Audio
      I like VoodooHDA and have no problems with it.
      The sound is clear, loud, and switchable between internal speaker and headphone.
      Mic is working.
       
      Bluetooth
      Just tested with BTFirmwareUpdate.kext and it works in 10.11.6. I not needed it so switched off by wireless switch at right side.
      For 10.13.6 there is other kext BRCMInjector.
       
      Keyboard, Touchpad and Touchstick
      Post #14
       
      My config, ACPI files and kexts are in attachment.
      05.12.2017
      EFI.7z
       
      EDITED:
      Better DSDT in the post #6.
      Sleep working even when AC inserted.
       
      EDITED 06.12.2018
      Now I have HighSierra and this is my EFI folder
       

       
       
      Welcome to discussion!
      EFI-E6430.7z
      BRCMInjector.kext.zip
    • By bradipi15
      Ciao ragazzi ho un problema strano... 
      Praticamente quando avvio il pc usando il dsdt, appena connetto la tavoletta grafica huion h640p, il pc si riavvia... 
      Se invece tolgo il dsdt, funziona tutto perfettamente... 
    • By bradipi15
      Ciao ragazzi, ho bisogno di un aiuto per verificare che ho fatto tutto giusto, perché penso che la mx150 non sia effettivamente disabilitata. Ho utilizzato un dsdt fatto da gengik84 per un pc simile al mio.. Al momento penso di avere solo due problemi : la mx150, appunto... E poi il trackpad riesco ad usarlo in modalità advanced da bios proprio grazie al dsdt, però il doppio tap per trascinare oggetti ecc non va... L'ho abilitato anche dal menu accessibilità.. 
      Grazie mille! 
       
×