Jump to content
Whit3Spirit

Disabling NVIDIA Optimus card on all laptops

345 posts in this topic

Recommended Posts

Advertisement

To disable Nvidia Card (Easy Way)

 

you can simply use this DSDT Patch:

https://github.com/Ramalama2/UX301_DSDT/blob/master/6.%20Experimental/DSDT%20Patches/%5BALL%5D%20Nvidia%20PowerOff.txt

 

Cheers :-)

 

Great patch but i can't make a clean original DSDT of her laptop... If you can.. ?

Share this post


Link to post
Share on other sites

 

Hey, do you think that your patch is compatible or can be modified to work on my dsdt? I have a Nvidia GTX 765m and a Intel HD4600

 

DSDT https://www.dropbox.com/s/vx30qnw4l270qcc/DSDT.aml

IOREG https://www.dropbox.com/s/4rffijvra3verdw/XMG%20C702.ioreg

 
Is it important that I create my DSDT with AIDA64, or can I create my DSDT with DSDT Editor on Mac?
I use Clover v.2330.

 

 

can you reupload your ioreg and give me a clean (vanilla) dsdt+(all)ssdt's?

Share this post


Link to post
Share on other sites

 

I got some Problems.
 
First is, I don't find the option "ACPI Tools" on Windows 8.1 at the actual AIDA64 Version. But I have found a older Version 3.20.2600 and there ist the option "ACPI Tools".
The Program says that my Motherboard was not found or is Unkown.
 
Second is, that when I use the old Version of AIDA64 in ACPI Tool and click on Save Table I see 7 Lists of SSDT.
Which one you need?
 
 
Should I upload all?
 
Here is a Zip with all SSDT 1 to 7 from up to down and the actual DSDT.
 

 

Share this post


Link to post
Share on other sites

What is your right laptop ?


You can also use Clover because it can patch your DSDT on the fly, no problem with asl errors ^^

And with clover, you can get iMessage natively (i have see your post and it is a big problem with chameleon :()

Share this post


Link to post
Share on other sites

I use already the latest Clover...how can I use it on the fly?

 

My Laptop is a XMG C703 similar as MSI GS70.

http://www.insanelymac.com/forum/topic/297447-how-to-install-macosx-109x-mavericks-on-a-xmg-c703/

http://www.insanelymac.com/forum/topic/294224-how-to-install-macosx-109-mavericks-on-a-msi-gs70-laptop/

 

How did you get iMessage natively?

iCloud worked and so on, but iMessage show me a notification, that I must contact the support...

Share this post


Link to post
Share on other sites

Disassemble them correctly:

# in Terminal, with recent iasl
iasl -da *.bin *.aml
These patches for DSDT:

into method label ADBG replace_content begin //nothing end;
Remove all the lines 'Zero' starting at line ~6258.

 

You then have a DSDT which will compile with no errors.

 

Hi, RehabMan:

Can you help me for similar modification of my DSDT and SSDT to disable Nvidia Optimus GTX 880M ?

I have tried in vain by DSDT Editor or IASL due to too many errors.

My laptop is Asus G750JZ and Audio is Realtek AL-282 with working Speaker output now.

If possible I need HDMI audio for internal Intel HD4600 too.

I have got these DSDT & 7 SSDT with AIDA64 Business version 4.30

G750.rar

Share this post


Link to post
Share on other sites

Hi, RehabMan:

Can you help me for similar modification of my DSDT and SSDT to disable Nvidia Optimus GTX 880M ?

I have tried in vain by DSDT Editor or IASL due to too many errors.

My laptop is Asus G750JZ and Audio is Realtek AL-282 with working Speaker output now.

If possible I need HDMI audio for internal Intel HD4600 too.

I have got these DSDT & 7 SSDT with AIDA64 Business version 4.30

If you disassemble correctly, and use ACPI 5.0, your DSDT compiles almost error free. (remove all the 'Zero' lines, remove Arg0 line causing second error)

Share this post


Link to post
Share on other sites

If you disassemble correctly, and use ACPI 5.0, your DSDT compiles almost error free. (remove all the 'Zero' lines, remove Arg0 line causing second error)

Hi, RehabMan:

Thanks for your help.

Following your advice there are 3 errors remained in my DSDT.dsl

Can you help me to correct these errors ?

Because I need error-free to get the final DSDT.aml

DSDT.dsl.zip

Share this post


Link to post
Share on other sites

Hi, RehabMan:

Thanks for your help.

Following your advice there are 3 errors remained in my DSDT.dsl

Can you help me to correct these errors ?

Because I need error-free to get the final DSDT.aml

You did not disassemble correcty... with SSDTs as context. Place all OEM SSDTs and DSDT in a single directory and disassemble with 'iasl -da *'

Share this post


Link to post
Share on other sites

If you disassemble correctly, and use ACPI 5.0, your DSDT compiles almost error free. (remove all the 'Zero' lines, remove Arg0 line causing second error)

 

https://www.dropbox.com/s/l6rkwgvh7u329av/DSDT.dsl

 

I deleted 18 errors.

File in .dsl with no error but i can't compile it.... :( Help please.

Share this post


Link to post
Share on other sites

My MaciASL bug then... Anyone can up the clean compil please ?


Wheni compile the clean asl file, MaciASL give to me a bugged aml...

Share this post


Link to post
Share on other sites

I'm facing a problem with Optimus turned off. When I restart my computer, it shuts down. I know that this is due the Optimus being turned off and I need to turn it on inside the PTS method. My problem is that I have disabled the card using a SSDT. I don't know how to turn it on from a SSDT or calling an external method from a SSDT during PTS and WAK. Can someone help me turn on the card from SSDT? Thanks.

Share this post


Link to post
Share on other sites

I'm facing a problem with Optimus turned off. When I restart my computer, it shuts down. I know that this is due the Optimus being turned off and I need to turn it on inside the PTS method. My problem is that I have disabled the card using a SSDT. I don't know how to turn it on from a SSDT or calling an external method from a SSDT during PTS and WAK. Can someone help me turn on the card from SSDT? Thanks.

We do the same thing on the ProBook. You use an External declaration to gain access to the methods in SSDT from DSDT. These are the DSDT patches we use:

into definitionblock code_regex . insert
begin
External(\_SB_.PCI0.PEGP.DGFX._OFF, MethodObj)\n
External(\_SB_.PCI0.PEGP.DGFX._ON, MethodObj)\n
end;

into method label _PTS code_regex ([\s\S]*) replace_matched
begin
If (CondRefOf(\\_SB_.PCI0.PEGP.DGFX._ON)) { \\_SB_.PCI0.PEGP.DGFX._ON() }\n
%1
end;

into method label _WAK code_regex (Return\s+\(.*) replace_matched
begin
If (CondRefOf(\\_SB_.PCI0.PEGP.DGFX._OFF)) { \\_SB_.PCI0.PEGP.DGFX._OFF() }\n
%1
end;
The paths to _ON/_OFF may be different in your SSDT, so be sure to tweak the patch as necessary.

Share this post


Link to post
Share on other sites

I'm not even touching the DSDT but only adding _DSM methods and other things that I need in a SSDT which is injected by Clover (DSDT free Clover config). The _PTS and _WAK methods do not exist in the SSDT where I have turned off the card. Can I reference to the _PTS and _ WAK in the SSDT? How? And will that overwrite the methods with the ones defined in DSDT? Thanks again.

 

My SSDT is similar to this one as decribed by Stevo here

DefinitionBlock ("SSDT-1.aml", "SSDT", 2, "APPLE ", "Optimus", 0x00001000)
{
    External (\_SB_.PCI0.PEG0, DeviceObj)
    External (\_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)
    External (\_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)
    Scope (\_SB.PCI0.PEG0)
    {
        Method (_INI, 0, NotSerialized)
        {
            \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
                {
                    /* 0000 */   0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                    /* 0008 */   0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
                }, 0x0100, 0x1A, Buffer (0x04)
                {
                     0x01, 0x00, 0x00, 0x03
                })
            If (One)
            {
                \_SB.PCI0.PEG0.PEGP._PS3 ()
            }
        }
    }
}

Share this post


Link to post
Share on other sites

I'm not even touching the DSDT but only adding _DSM methods and other things that I need in a SSDT which is injected by Clover (DSDT free Clover config). The _PTS and _WAK methods do not exist in the SSDT where I have turned off the card. Can I reference to the _PTS and _ WAK in the SSDT? How? And will that overwrite the methods with the ones defined in DSDT? Thanks again.

 

My SSDT is similar to this one as decribed by Stevo here

DefinitionBlock ("SSDT-1.aml", "SSDT", 2, "APPLE ", "Optimus", 0x00001000)
{
    External (\_SB_.PCI0.PEG0, DeviceObj)
    External (\_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)
    External (\_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)
    Scope (\_SB.PCI0.PEG0)
    {
        Method (_INI, 0, NotSerialized)
        {
            \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
                {
                    /* 0000 */   0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                    /* 0008 */   0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
                }, 0x0100, 0x1A, Buffer (0x04)
                {
                     0x01, 0x00, 0x00, 0x03
                })
            If (One)
            {
                \_SB.PCI0.PEG0.PEGP._PS3 ()
            }
        }
    }
}

 

OK, pretty weird way to do it, and some strange code you have there (the 'if (1)' is especially curious) but...

 

There exists an SSDT somewhere in your system (OEM SSDT) that has the _PS3 method you're calling (why you're not calling _OFF, I'm not sure). So you can reach those methods (_ON or whatever) from DSDT just like you can reach them from the ssdt-1 you show above.

 

There is no way to change the behavior of _WAK/_PTS in DSDT without patching the DSDT itself.

 

Note that your _INI method defined in that SSDT likely overrides any _INI method already defined in one of the OEM SSDTs at the same path (\_SB.PCI0.PEG0). Maybe that's what you want, but you should be aware that the _INI code intended to execute (provided in OEM DSDT) will not execute. You can't have multiple methods of the same name at the same path... one will "win."

Share this post


Link to post
Share on other sites

Can I copy the _WAK/_PTS methods to SSDT and just add the _OFF/_ON methods to it including what was originally there? Will it work.

 

Regarding the way I'm turning off the card. I was doing it earlier with just calling the _OFF methods but people recommended to so it through _PS3 as _PS3 method is in defined in most systems and will probably work without looking at the SSDT table for Optimus(OFF can be DOFF or OPOF). It was one recommended by the developers of Bumblebee project. The same way is defined in the first post of this topic.

Share this post


Link to post
Share on other sites

You can creare a link to _OFF/_ON method in your dsdt by using External

External (\_SB_.PCI0.PEG0.PEGP._OFF, MethodObj)

than you can call _OFF in _PTS/_WAK/_INI in your dsdt. Make sure you included the ssdt containing _OFF method along with the patched dsdt/

Share this post


Link to post
Share on other sites

Can I copy the _WAK/_PTS methods to SSDT and just add the _OFF/_ON methods to it including what was originally there? Will it work.

No. Methods defined in DSDT always take precedence over methods with the same name found in an SSDT.

You can creare a link to _OFF/_ON method in your dsdt by using External

External (\_SB_.PCI0.PEG0.PEGP._OFF, MethodObj)
than you can call _OFF in _PTS/_WAK/_INI in your dsdt. Make sure you included the ssdt containing _OFF method along with the patched dsdt/

 

You missed part of the discussion. For some reason, webcivilian is averse to modifying the DSDT.

Share this post


Link to post
Share on other sites

RehabMan - I already have a patched DSDT that works :)

 

I'm just trying this new method of not using a patched DSDT and using Clover to do patching on the fly. I guess I will patch in the _PTS and _WAK sections of the DSDT using Clover.

Share this post


Link to post
Share on other sites

... 

I'm just trying this new method of not using a patched DSDT and using Clover to do patching on the fly. I guess I will patch in the _PTS and _WAK sections of the DSDT using Clover.

With Clover's support for "floating regions" (FixRegions_10000000) in a patched DSDT, there is little reason to expend so much effort to not patch DSDT.

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.

Announcements

  • Similar Content

    • By Lakkantha
      i install mac Catalina osx but can't boot without fake intel inject. And no audio or wifi. Can you help to make my clover config please
      Efi folder
       


    • By Raffay1234
      I'm transitioning from Clover to Opencore. I thought the process will be simpler but it turns out it isn't. I have created a bootable Catalina USB with Opencore but stuck at this error. I have attached my EFI and the verbose output. Anyone please provide some guidance please?
       
      The laptop is HP Pavilion 15 Gaming:
      Intel Core i7-9750H
      16GB RAM
      256GB SSD + 1TB SSD
      PS2 Keyboard + I2C Trackpad
       

      EFI.zip
    • By tlefko
      Version Info
      This build is compatible up to Big Sur Beta
      Now Compatible with macOS 11 Please leave feedback with issues or w/o Comitted to Updating up to OS 11 MULTITOUCH TOUCHSCREEN SUPPORT Latest Release Notes
      Fixed Bluetooth and Wifi Stability Issues Improved Preformance and Power Managements Can Provide Files for Display Overrides Additional Patches for 3K Display updated for 15.4 rev 1 if using unsupported wifi card disable it in bios use config.plist not HD520 Perfect Sleep/Wake for 1080P Model no-touch, still bugs for 3K Exact same functionality as Catalina Notes
      Never tested USB C except for charging, works great USB devices eject on sleep (not really an issue) 4K model has minor sleep wake issues occasionally, 1080P is fully functional 4K sleep has been heavily improved however and glitches are rare, fixed by reopening lid POST
      run sudo pmset -a hibernatemode 0 If on 3K disable sleep completely for maximum stability If no mouse, install all voodoo kexts using Kext Utility Description
      This esentially an ultra-simplistic version that is stable without the use of a deploy or complicated file installations and copies. You can easily view all the SSDT patches along with configuration files for the bootloader as they are all documented clearly in the files. This does include a copy of Clover, which of course I do not contribute to and am only responsible for the provided files, patches, and kext placements This guide provides a working setup with little knowledge of the topic and without "optimization" (because often they can break things). But, it is fully functional and preforms properly and is stable
      Make sure you are using DW1560 for wifi or else KP. If not using remove BRCM kexts from CLOVER>kexts>other. BIOS Setup
      Set all SATA operation as AHCI Disable Secure Boot, Fast Boot For Coil Whine improvement disable C-States Enable UEFI Booting INSTALL (VERY IMPORTANT)
      Due to structural changes in the setup of apple's Big sur, this EFI cannot boot the installer it can only boot into a system / device that has already been created and setup. To do this, you need to install Big Sur to a virtual machine (lots of guides online) and then create an dmg of that system, and restore it onto your HDD using the 'dd' command There are various guides online how to get this virtual machine setup complete. You can then use the attached EFI folder to boot and use macOS big Sur You can use this video to show you how to get your macOS pre-installed onto your hard drive https://www.youtube.com/watch?v=HMU3nhcbWHw Boot Entry Setup
      Boot into the BIOS of the computer, then navigate to the Boot setup (or entries (not sure what it is called exactly, but it will be a list of the options your computer selects to boot) Click add new, and make sure the USB isn't plugged in. Select the only option that is avaiable, and in FS0 navigate to Boot/BOOTx64. Add this as an entry, then select this as whatever priority you would like. Messages and Facetime
      Gnerate your own Serials, Board Numbers, MLB There are various guides online to do this and as default they're set to essentially Null (Fakeserial) This is fairly straightforward and there is lots of external recourses, or you can contact me for support. Headphones and Audio
      All audio from speakers should work perfectly along with Bluetooth and USB audio To resolve headphones static issue (wired) install combojack Finished!
      Congratulations, there really aren't any more steps that are required. Feel free to contact me with any questions. Donations
      Send me a coffee lefkotyler@gmail.com  
      Latest releases hosted here https://github.com/tlefko/XPS-13-9350-Big-Sur/ along with faster replies
      EFI.zip
    • By CaccapoKissima
      Hi, I wanted to transpose my CLOVER installation to OpenCore for future updates.
       
      I followed this guide and after some googling
      https://github.com/dortania/vanilla-laptop-guide
      I've fixed the LOG: EXITBS error (RANDOM SEED like error).
      Now I still receiving the IOPCI error (kernel_task kernel panic). 
       
      My CLOVER is fully working.
      - Backlight and Monitor
      - Trackpad
      - i7-7700HQ
      - Battery Patch
      - Camera and Audio (B&O)
      - Keyboard
      - dGPU GTX 1050 is turned off
       
      On OpenCore I translated everything except the battery (I just need to apply the If statement in ACPI), but I want first to boot on Mac OS using the OpenCore.
       
      HP Pavilion Power 15 
       
       
      config.plist

    • By tonyx86
      *** I have started another thread for installing Catalina on the Dell Latitude E6410.  If you were thinking of installing Mojave, but would prefer to skip right to Catalina, click here. ***
       
      *** I am no longer maintaining the installation files in this first post.  Refer to my Catalina thread for the latest guidelines / files for installing macOS on this Latitude E6410 with Nvidia graphics ***
       
      I was inspired by @duduclx post here for installing El Capitan on a Dell Latitude E6410, so I decided to install Mojave 10.14.5 and subsequently 10.14.6.  Everything works perfectly (including sleep).  I'm starting this thread hoping to help others install Mojave on their E6410s.  A brief installation guide is provided later in this first post.  The interested reader is encouraged to read the other posts in this thread to see how this solution evolved and to learn additional tips/details not provided in this first post (including dual-booting with macOS and Windows).
       
      My system is as follows:
      Dell Latitude E6410 (I7-620m, Nvidia 3100M, 8GB DDR3, 512GB SSD, 1440x900 display, BIOS: A17) MacOS: Mojave 10.14.6 (APFS) (Patched with DosDude Mojave Patcher 1.3.3) MacModel: MacBookPro 6,2 (LPCB._DSM.Name "pci8086,3b09") Kexts: Lilu 1.3.6, VoodooHDA 2.9.2, AirportBrcmFixup 2.0.0, IntelMausiEthernet 2.4.1d1, ACPIBatteryManager 1.90.1, BrcmPatchRam2.kext, BrcmFirmwareRepo.kext, VoodooPS2Controller (the "Refined ALPS Touchpad" version - release 6 developed by @Dr. Hurt and compiled by @bronxteck), not the original version), USBInjectAll (with custom SSDT-UIAC), VoodooSDHC.kext (configured as shown here). Wi-Fi: Broadcom BCM 94352HMB (with AirportBrcmFixup.kext) CLOVER (Legacy): R4961  
      Configuration items that may be different from what you have seen in other E6410 configurations
      Addition of _OFF and _ON methods to _PTS and _WAK methods respectively (to control discrete graphics in order to enable sleep/wake) LPCB._DSM patched with device-id "3b09" AND "name", "pci8086,3b09" for native Nehalem power management with MacBookPro 6,2 ECDV renamed to EC so that AppleBusPowerController loads AGP.VID._DSM patched with device-id "0a29" so that AppleGraphicsPowerManagement loads No CLOVER Generate P or Generate C States (with the correct LPCB._DSM and MacBookPro 6,2, these CLOVER options are unnecessary for this architecture and only limit max multiplier and reduce number of P states) DSDT patched to include HDAU device (device-id 0x0be3)  
      What is NOT working:
      Display brightness can be controlled with keyboard keys, but cannot be controlled with slider in Display settings. Graphics Power Management - AGPM loads (because 10de,0a29 device is injected), but there's no evidence that 3100m frequency and voltage is changing.
        What is NOT tested:
      Smartcard Reader eSata (I have this disabled in my BIOS) Firewire Port (it does appear in the Network settings, just haven't tried it) Microphone Jack PC Card Slot (I have this disabled in my BIOS)  
      What IS working:
      SLEEP IS WORKING! Everything else not mentioned above.   Speedstep/CPUPowerManagement is perfect, system temps are low, CPU multiplier operates as expected, battery life is long Shutdown is fast Display/graphics acceleration is perfect (thanks to DosDude's Mojave patcher) Brightness (adjusted with brightness keys on keyboard) works perfectly Battery Manager works (battery status is displayed in menu bar) simply by installing ACPIBatterManager.kext. Wi-Fi (after changing to Broadcom BCM94352HMB and installing AirportBrcmFixup.kext) Audio (volume adjustable, volume indicator appears in menu bar).  Switched to VoodooHDA from AppleALC after AppleALC caused slow boot due to "IOHDACodecFunction timeout." Ethernet port (with IntelMausiEthernet.kext) Broadcom BCM20702A0 Bluetooth (with BrcmPatchRam2.kext and BrcmFirmwareRepo.kext) Optical Drive External VGA (with corrected NVCAP.  Need NVCAP 04000000 00000100 0E000000 00000007 00000000 (credit: here) for working external VGA display. Headphone jack Display Port (tested using DP > HDMI adapter) Camera SD Card Reader  
      Known issues and their solutions (These issues have all been resolved, with the solutions incorporated into the attached config files.  The issues are listed here for historical purposes and no further work is needed unless stated otherwise).
      (Solution to this issue is to remove Device (PNLF) from the DSDT): Some users experience display issues.  Solution is to remove Device (PNLF) from the DSDT.  The attached DSDT currently still includes Device (PNLF), so you will need to edit the DSDT to remove PNLF. USB sleep/wake power IORegistry keys are no longer provided in IOUSBHostFamily.kext after High Sierra 10.13.6.  Solution is to added SSDT-USBX.aml to EFI/CLOVER/ACPI/patched.  The attached SSDT-USBX.aml includes USB sleep/wake properties for MacBookPro6,2 from High Sierra 10.13.6 IOUSBHostFamily.kext. Laptop does not sleep on lid close.  Solution is to add Notify (LID0) code to Method (BTNV) in the DSDT.  This is solved in the attached DSDT. Leaving this for historical purposes, but the CLOVER USBFix is no longer necessary after finding that I had incorrectly applied the DSDT _DSM patch for Device (EHC1).  The CLOVER USBFix is not needed after fixing the DSDT..  AAPL,clock-id and device_type do not appear in IORegistry for EHC1.  Solution is to use CLOVER on-the-fly patching/fixing/renaming for EHC1 and EHC2.  Thank you, @feartech, for this tip. ALPS trackpad performance is not good with the "standard" VoodooPS2Controller.kext that I initially used.  Switching to the "Refined ALPS TouchPad driver" is a big improvement.  I've implemented and tested this on my system.  The ALPS version of VoodooPS2Controller.kext mixes up a few keys.  Need to switch the Command and Option keys (System Preferences > Keyboard > Modifier Keys) and change keyboard type to ISO European. This configuration (captured in the attached config files) uses an injected device-id (10de,0a29) for NVidia 3100m to get AGPM to load.  While I haven't observed any performance differences, a better approach may be to inject AGPM properties for device 10de,0a6c (the actual device-id for the 3100m).  This AGPM method is discussed later in this thread.  I have briefly tested this "FakeSMC.kext method" for injecting AGPM attributes without any noticeable changes in laptop/graphics behavior. IOHWControl is not loaded under AGPM (Should be AGP > VID > NVDA,Display-A@0 > NVDATesla > AGPM > gpu-control > IOHWControl as viewed in IORegistryExplorer).  It is loaded on a real MacBookPro6,2 running Mojave and is loaded on this Dell Latitude E6410 running High Sierra.  If I "Inject NVidia" via CLOVER, IOHWControl loads properly. The Dell Latitude DSDT (BIOS A17) has a bug in Method (GNOT).  In the method, the expression  If (LOr (LGreater (OSYS, 0x07D0), LLess (OSYS, 0x07D6))) always evaluates to TRUE, so the patched DSDT has no dependency on the value of OSYS.  I suspect that LOr should be replaced with LAnd, so that this expression is TRUE for variants of Windows 2001 and False for any other OS.  While this may have no affect on MacOS, it makes one wonder how such an obvious bug made it through Dell QA and is still present in BIOS A17.  Also makes one wonder whether the sleep problem (which no one has solved) was fixed in Windows to address another DSDT bug. The assigned value of ACOS and OSYS in the DSDT are conditional on the operating system.  There is no condition for "Darwin."  The solution is to add a condition for "Darwin" (making it equivalent to one of the defined operating systems (e.g. Linux, Win7, etc).  The attached config hard-codes ACOS and OSYS values equivalent to those for Linux.  Another way to handle this (different from the method employed in the attached config files) might be to override _OSI with XOSI (defined in a custom SSDT). The portType of the Internal Bluetooth device is portType=0 which, according to Rehabman's comments in SSDT-UIAC-All.dsl, is an external USB 2 port.  This should be an internal USB port (portType=2).  I learned through trial and error that the HUB1 and HUB2 definitions in Rehabman's SSDT-UIAC-ALL.dsl apply to the ports on the EHCx USB hubs.  The solution is to include the HUB1 definition in SSDT-UIAC.dsl and change portType to 2 for HP15.  This change doesn't appear to affect/fix sleep, but it may prevent instant wake if we get sleep working. There are minor differences between a real MacBookPro6,2 IORegistry dump and this HackBookPro6,2 IORegistry dump that can be resolved with simple DSDT edits.  I am now running with these changes, but haven't found these changes to make any difference in operational behavior.
      Rename Device (AC) -> Device (ADP1) Remove UID from Device (HPET) Add compatible ID "PNP0C01" to Device (HPET) Change ADP1:_STA from 0x0F to 0xFFFFFFFF Enable Ambient Light Sensor and renamed to Device (ALS0) from Device (ALS) Add compatible ID "smc-als" to ALS0 Rename LID -> LID0 Change "name" definitions to Buffers in _DSM methods Rename Device (PBTN) to PWRB Rename Device (SBTN) to SLPB Sleep / Wake does not work with the basic DSDT edits.  I have discovered that Sleep / Wake can be made to work by adding discrete graphics _OFF and _ON methods to _PTS and _WAK methods respectively (borrowed the concept and code from a working E6430 DSDT: Credit here: https://osxlatitude.com/forums/topic/9248-working-sleep-on-intel-hd-and-nvidia-nvs-on-dell-latitude-e6430-optimus-enabled-or-disabled/page/6/. The Clover boot arg should be changed to "darkwake=0" for reasons explained by @holyfield in this thread.  Leaving this for historical purposes: LCD screen is blank when waking laptop by opening lid (screen is not blank when waking with power button).  Solution is to add darkwake=8 to CLOVER boot args.  Thank you @Hervé for this tip.  
      Brief Installation Guide:
      Configure BIOS (version A17) as follows (leave default unless listed here): Boot Sequence: USB, Internal HDD, CD/DVD, Modular Bay HDD; Boot List Option: Legacy; Integrated NIC: Enabled; Parallel Port: Disabled; Serial Port: Disabled; SATA Operation: AHCI; Misc Devices: Enable Modular Bay, Camera, External USB, Microphone, Media Card and 1394; Latitude ON Reader: Disabled; Keyboard Illumination: Auto ALS and Input; Ambient Light Sensor: Enabled; OROM Keyboard Access: Disable; TPM Security: Disable; Computrace: Deactivate; CPU XD Support: Enable; Performance: Enable all options; Power Management: Disable Wake on AC, Disable Wake on LAN/WAN, Express Charge: Standard, Charge Behavior: Enabled; Keypad: Fn Key Only; Mouse/Touchpad: Touchpad/PS-2 Mouse; USB Emulation: Enable Legacy; Fn Key Emulation: Disabled; Fastboot: Thorough; Virtualization: Enable Intel Virtualization, Disable VT for Direct I/O, Disable Trusted Execution; Wireless Switch: Bluetooth and WLAN; Wireless Device Enable: Bluetooth and WLAN;  Create your MacOS installer USB (Use DosDude's Mojave Patcher for Mojave) (start with High Sierra and not Mojave if you're new to hackintosh). Install CLOVER (Legacy) on installer USB using attached EFI as your guide for patched ACPI, kexts and config.plist Install MacOS to your SSD.  When you run DosDude's Mojave Patcher, DO NOT install LegacyUSBInjector.kext - you're going to use Rehabman's USBInjectAll.kext.  Also, do not install the DosDude SIP kext (you're using CLOVER to manage SIP). Install the following kexts in /Library/Extensions:  ACPIBatteryManager.kext, AirportBrcmFixup.kext, BrcmFirmwareRepo.kext, BrcmPatchRAM2.kext, FakeSMC.kext, FakeSMC_ACPISensors.kext, FakeSMC_CPUSensors.kext, FakeSMC_GPUSensors.kext, FakeSMC_LPCSensors.kext, IntelMausiEthernet.kext, Lilu.kext, USBInjectAll.kext, VoodooPS2Controller.kext (the "Refined ALPS Touchpad driver," not the original), VoodooSDHC.kext (configured as shown here). Switch Command and Option keys to compensate for Refined ALPS driver issue (System Preferences > Keyboard > Modifier Keys).  Also change keyboard type to ISO European to fix the [ ` ~ ] key (to the left of the "1" (one) key. Install VoodooHDA Install HWMonitor application  
      Tips for Improved Performance (on this and other older systems)
      System Preferences > Spotlight > Search Results: Uncheck all options System Preferences > Spotlight > Privacy: Add all Volumes System Preferences > Accessibility > Display: Check "Reduce motion" System Preferences > Accessibility > Display: Check "Reduce transparency"  
      Other tips
      If your fan is always running and temps are good, try pressing Fn + z After applying Mojave updates, HWMonitor may not display discrete graphics attributes.  On systems with multiple displays, a second (or third display) may not be active after applying the Mojave update.  The solution to this is to run "sudo kextcache -i /" (in a terminal window) and reboot.  This will usually fix the issue.  If the issue is not fixed, run DosDude's Post Install Utility, apply the Legacy Graphics Patch, reboot and then run "sudo kextcache -i /" if necessary.  
      Screenshots
       
       
      Credits
      In addition to those mentioned in this first post and in subsequent posts in this thread, much of this solution for the Latitude E6410 was made possible by the numerous contributions of @RehabMan.  I hope he's doing well, wherever he is.  Hopefully he has long since forgotten what a PIA I was (and still am) as I was (and still am) learning hackOS.  
       
      E6410-Mojave-v4.zip
×