Jump to content
tonyx86

Mojave on Dell Latitude E6410 With Working Sleep

191 posts in this topic

Recommended Posts

*** 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 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).

  • 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)
    • Change HDAU.hda-gfx from "onboard-1" to "onboard-2"
    • Change GFX0.hda-gfx from "onboard-1" to "onboard-2"
  • 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.

 

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.

 

 

 

Screen Shot 2019-06-08 at 10.19.59 AM.png

Screen Shot 2019-06-08 at 12.11.23 PM.png

E6410-Mojave-6v3.zip

Edited by tonyx86
Update attached DSDT with latest changes for lid sleep and USB patch

Share this post


Link to post
Share on other sites
Advertisement

EDIT: I found the suggestion mentioned by @duduclx here but it does not resolve the sleep problem for me.  The suggested solution was to apply Rehabman's PRW 0x0D patch.  This patch did not change the behavior of my laptop and did not resolve the sleep problem.  Still looking for a sleep solution.

Edited by tonyx86

Share this post


Link to post
Share on other sites

Installed BrcmPatchRam2.kext and BrcmFirmwareRepo.kext to enable Bluetooth.  Updated Post #1 to reflect the working status of Bluetooth.

Share this post


Link to post
Share on other sites

Changed audio solution to VoodooHDA (from AppleALC) to resolve slow boot issue.  Updated Post #1 to reflect change.  Only remaining issue is Sleep.  Mojave 10.14.5 is OUTSTANDING on this laptop.  Will be PERFECT when sleep is resolved.

Share this post


Link to post
Share on other sites

@hackintoshmalang my EFI is shared as an attachment to the first post in this thread.  Battery life is OUTSTANDING.  With Mac Model set to MacBookPro 6,2 and LPCB._DSM.Name set to "3b09," power management works great with no CLOVER configs.  CLOVER Enable C and Enable P states actually screws up speedstep. Note my clover config.plist attached to post 1 (in the Zip file).  No CPU configs necessary.

 

Have you solved sleep?

Edited by tonyx86

Share this post


Link to post
Share on other sites

@hackintoshmalang I noticed that AGPM (AppleGraphicsPowerManagement) was not loading for my GPU.  Closer inspection of the IORegistry shows that the Nvidia 3100m GPU has a device ID of 0x0a6c which does not have an entry in AppleGraphicsPowerManagement.kext for MacPro 6,2.  Injecting device-id of 0x0a29 (a device that does exist in the AGPM.kext/config.plist) causes AGPM to load.  The other device to try is 0x0a34 (it is the only other device listed in AGPM.kext for MacBookPro 6,2.  Do you know enough to experiment with DSDT injection of these device IDs?  If so, experiment with them to see if they help increase your battery life. 

 

I also renamed ECDV to EC in my DSDT to cause AppleBusPowerController to load (wasn't loading before).  Based on what I've observed of other patched DSDTs for the E6410, a lot is missing.  All the patched DSDTs that I've found for the E6410 include only applications of the basic, well-known patches (except for @duduclx 's very clever shutdown fix which I'd love to know how he figured that out).  I've only started looking at the E6410 a couple of days ago and I'm out of time for now, but will continue experimenting.  Please post your findings here.

 

EDIT: A benefit of manually patching the DSDT for Nvidia Graphics is that the Display Brightness slider now appears in the Display Preferences (see attached screenshot).  The slider doesn't work, so I have some homework to do.  Still controlling brightness with the keyboard.  I have the display brightness slider working on my Thinkpad T61 running Mojave 10.14.5, so I'm looking at my Thinkpad to see if I can figure out why the Latitude E6410 slider is visible but sliding it does not change brightness.

 

Screen Shot 2019-06-11 at 3.19.42 PM.png

Edited by tonyx86
Added comment about shutdown fix

Share this post


Link to post
Share on other sites
On 6/11/2019 at 12:34 AM, hackintoshmalang said:

@tonyx86...hi how is about battery consumption ? and core frequency GPU ...my dell 6410 nvidia stuck at 405 mhz gpu frequency, cause my battery drain out prety fast...do you mind share your EFI ?, thanks

@hackintoshmalang I've been working on my E6410 for 3:20 and just realized my laptop is unplugged.  Battery indicator shows 23% remaining. Over 3 hours on battery from 2010 - not bad.

 

@hackintoshmalang I'm running again without the A/C adapter to get a better feel for battery life.  It appears that these items made the difference:

  • Inject device-id 0x3b09 for LPCB (in concert with selecting Mac Model MacBookPro 6,2)
  • Do not add any CLOVER CPU configs (e.g. don't enable Generate P and Generate C states)
  • ECDV -> EC rename (to get AppleBusPowerController to load)
  • injecting the device-id for Nvidia graphics (0x0a29) (to get AGPM to load)
  • Follow performance management tips I provided in Post #1 of this thread

 

My laptop fan hardly runs and battery life is outstanding.

Edited by tonyx86
Changed Nvidia graphics device-id to 0a29

Share this post


Link to post
Share on other sites

My E6410 is similar in build to yours. Mine is: Dell Latitude E6410 (i5-520m, NVS 3100M, 8GB DDR3 -- Dual 4GB Sticks, 1x OCZ-Vertex 120GB SSD -- MacOS & 1x Corsair Force GT 120GB SSD -- Windows 10 1903/Ubuntu Desktop 18.04, 1440x900 display, BIOS: A17, Wi-Fi: Broadcom  BCM4322 -- Dell Wireless 1510, Bluetooth: BCM92046DG-CL1ROM -- Broadcom 2046 -- Targus). Any suggestions as to things I would have to change (Kexts/Settings/Etc) from your install guide of Mojave to make it work?

 

Thanks for your help in keeping this awesome little laptop current!

Share this post


Link to post
Share on other sites
23 minutes ago, MadHatter806 said:

My E6410 is similar in build to yours. Mine is: Dell Latitude E6410 (i5-520m, NVS 3100M, 8GB DDR3 -- Dual 4GB Sticks, 1x OCZ-Vertex 120GB SSD -- MacOS & 1x Corsair Force GT 120GB SSD -- Windows 10 1903/Ubuntu Desktop 18.04, 1440x900 display, BIOS: A17, Wi-Fi: Broadcom  BCM4322 -- Dell Wireless 1510, Bluetooth: BCM92046DG-CL1ROM -- Broadcom 2046 -- Targus). Any suggestions as to things I would have to change (Kexts/Settings/Etc) from your install guide of Mojave to make it work?

 

Thanks for your help in keeping this awesome little laptop current!

 

Our systems look almost identical, except for Wi-Fi and CPU.  The CPU shouldn't make a difference.  I can't be certain that your BIOS settings are the same, so I'd strongly recommend that you extract your own ACPI files (CLOVER-F4) and patch according to @duduclx 's guide and then my changes (LPCB._DSM, ECDV rename) and inject device-id "0a29" for the Nvidia 3100m so that AppleGraphicsPowerManagement loads.  You might want to google solutions for your BCM4322 wi-fi.  It's possible that Lilu and AirportBrcmFixup 2.0.0 will work for you, too.  Use my CLOVER config.plist.  Keep me posted and definitely let me know if you get sleep to work. I'm getting ready to post an updated set of config files, so get started on yours and then we can compare notes.

Share this post


Link to post
Share on other sites

Ok. Will be grateful to attempt MacOS Mojave install on my E6410. (Also) To accommodate for testing/(fixing) sleep issues, I have a spare HDD to put in place of the SSD. [For sake of testing will also replace modular bay with optical drive -- thus dealing with only 1 storage drive and 1 optical drive]. My WiFi card was previously an almost vanilla card, so if it works great -- if not can replace to match yours (assuming it will work on Ubuntu when finished playing with Mojave install).

 

However for the remainder of this endeavor please treat me as a noob (my apologies). While I have been building computers since '97 and am extremely proficient within Windows, decently proficient within Linux, I am a beginner to "advanced" Hackintosh. I've used Apple OS nearly all my life, however most "Hackintosh" I've built have been nearly vanilla or using a simple fix method like the beast (which cannot apply here).

 

That said, what steps did you take differently from steps #1-#9 of the aforementioned El Capitan guide? (I've never done ACPI extraction before -- I assume this guide "Patching LAPTOP DSDT/SSDTs" is still a good resource?)

 

Any (& all) guidance you would be willing to lend would be appreciated! I look forward to getting the E6410 on Mojave (and with sleep/hibernate working as should be on a HDD -- sorry, still unsure of doing it on a SSD), and eventually end up with a very solid triple-boot system with all the latest OS' installed and flawlessly working.

Share this post


Link to post
Share on other sites

Also a bit of research into sleep/hibernate on a SSD led me to this: http://bit.ly/2WHOmjm

(I was using Win 7 -- prior to final release; with a first gen Kingston 30GB SSD. While this SSD has come back to life, I've never ventured into sleep/hibernate with a SSD again)

So once we can figure out the install (with a simplified installation guide for Mojave) on similar hardware E6410s and find/fix the sleep/hibernate issue, I will be more than happy to attempt replication of said on a fresh install to a SSD rather than a HDD.

 

And to be clear as crystal -- you are booting clover from UEFI not legacy right? (As current, my El Capitan is booting from Clover only in legacy; everything else is an EFI boot -- even within clover).

Share this post


Link to post
Share on other sites
9 hours ago, MadHatter806 said:

...you are booting clover from UEFI not legacy right?

I'm booting CLOVER Legacy.  I have updated Post #1 to include CLOVER (Legacy) as part of my system configuration and I have added new EFI files with updated DSDT.aml (includes HDAU device).

 

Follow duduclx's original guide referenced in post #1 (great instructions!) and then apply my changes here to create your own EFI.

 

EDIT: @MadHatter806 If you're new, I'd suggest installing High Sierra first, since it still supports MacBookPro 6,2 without any Mojave patches.  After you get your system working with High Sierra, then we can talk about Mojave.

Edited by tonyx86

Share this post


Link to post
Share on other sites

This thread was not intended to be an installation guide.  I have a long way to go to match the outstanding instructions presented by duduclx in his original guide for install El Capitan on the E6410.  While most of my comments will remain most suitable for intermediate to advanced hackintoshers (not claiming any expertise of my own), I have added basic installation steps to post #1 of this thread.

Share this post


Link to post
Share on other sites
On 6/11/2019 at 12:34 AM, hackintoshmalang said:

@tonyx86...hi how is about battery consumption ? and core frequency GPU ...my dell 6410 nvidia stuck at 405 mhz gpu frequency, cause my battery drain out prety fast...do you mind share your EFI ?, thanks

 

@hackintoshmalang I'm not ignoring your "stuck at 405 mhz" comment - it just hasn't been a priority for me.  My method of injecting the device-id for Nvidia gets AGPM loaded, but it's probably not the correct solution.  I re-read duduclx original El Capitan thread and saw some work on this.  See here for this analysis.  I haven't tried any of it yet.

Edited by tonyx86

Share this post


Link to post
Share on other sites

EDIT3: I researched the hackintosh history of the E6410 / E6510 and found that actual credit for the revised NVCAP belongs here.

EDIT2: updated Clover.zip with new NVCAP is now attached to Post #1.

 

EDIT: It turns out that I only needed NVCAP.  It appears that I had the wrong NVCAP in my Nvidia config.  Once I changed my NVCAP to match the one specified by plutdelic, my second display started working.  I was using the NVCAP that was automatically injected by CLOVER R4961, so it looks like CLOVER was injecting the wrong NVCAP for the 3100m in the Latitude E6410.

 

Originally posted before EDIT above:

I needed a second display on my E6410 and found that external VGA wasn't working.  Take a look at this.  I copied his config.plist configuration exactly into my config.plist and my external VGA is now working.  I have more work/experimentation to do in order to see exactly what change(s) is/are required, but for now, just copying plutodelic's config works.

Edited by tonyx86
Changed credit for NVCAP

Share this post


Link to post
Share on other sites

EDIT: This thread references the shutdown fix for E6410/E6510.

 

EDIT: I found this guide for Yosemite that includes the _PTS shutdown patch in the patched DSDT.  Still no indication of how this patch was determined.

 

FYI - I'm starting to track down the sleep issue.  The _PTS patch (for shutdown) is incomplete for sleep in High Sierra and Mojave (not sure about previous MacOS versions).  If anyone know's how he arrived at his _PTS patch, I might be able to determine the necessary changes to get working sleep.  A clue for others who want to help find the sleep solution is that the following modification to his shutdown patch (removing the conditional if/else) enables sleep, but the laptop then wakes immediately with a black screen.  I'm fairly certain that the black screen is because we need to modify _WAK as well.  I've applied Rehabman's PRW 0x0D patch (I think I applied it correctly if someone wants to check the DSDT I attached to Post #1) which was supposed to address the immediate wake from sleep, so I'm not sure why it wakes immediately.

 

    Method (_PTS, 1, NotSerialized) 
    {
            Store (Zero, SLPE)
            Sleep (0x10)
    }
Edited by tonyx86
Changed history of shutdown fix

Share this post


Link to post
Share on other sites

I traced the _PTS shutdown fix back to the beginning of Hackintosh time here.  The patch was only ever intended to resolve shutdown (to be conditional on LEqual (Arg0, 0x05)), where Arg0 to _PTS is the sleep state.  SLPE (short for SLP_EN) appears to be a register for enabling a sleep state.  There is another register, SLP_TYPx, that defines the sleep state to assume after SLP_EN is enabled.  Somehow, SLP_TYPx must be set to 0x05 (shutdown) prior to calling _PTS.  I wonder if SLP_TYPx needs to be set to 0x03 for suspend?

 

The same _PTS shutdown patch is required for the Thinkpad T61 for those who are curious (although SLPE is at a different location on the Thinkpad T61 (NVS 140m): OperationRegion (PMRS, SystemIO, 0x1030, One) ).  Looks like sleep on the Latitude E6410 is going to be a challenge.

 

EDIT: For the interested reader, here's more about SLPE and shutdown / sleep.

Edited by tonyx86
Added link with more info...

Share this post


Link to post
Share on other sites

I noticed that AAPL,clock-id and device_type are absent from the IORegistry for EHC1 (EH01).  I don't see anything wrong with my DSDT rename/_DSM for EH01 (in DSDT.aml) and USB ports work correctly, but I'd like to eliminate any potential USB issues in order to resolve this sleep problem.  The only fix I found (thanks to @feartech) was to use CLOVER on-the-fly rename/fix for USB.  I have changed this on my system and tested it.  Unfortunately it does not resolve the sleep problem (no change in sleep behavior).  I haven't updated the attached files in Post #1 to reflect this change.

Share this post


Link to post
Share on other sites

Alps trackpad performance is lousy with the "standard" VoodooPS2Controller.kext (a known issue).  Switching to the "Refined ALPS Touchpad driver" is a big improvement.  I made the switch, but haven't updated the attached files in Post #1 to reflect this change.

 

EDIT: The "Refined VoodooPS2Controller.kext" switches keys on the keyboard.  Annoying.

 

EDIT2: Key remapping in "System Preferences > Keyboard > Modifier Keys" may do the trick.  Switch the Option and Command keys.  See attached screenshot and reply with your own suggestions.

Screen Shot 2019-06-15 at 5.17.31 PM.png

Edited by tonyx86
Having trouble attaching the screenshot

Share this post


Link to post
Share on other sites

EDIT: Deleting this post which ventured a guess at the wrong sleep solution.  The correct sleep solution is documented later in this thread.

Edited by tonyx86

Share this post


Link to post
Share on other sites

I found that switching the Command and Option keys wasn't the only fix required to compensate for the Refined Alps Touchpad driver (VoodooPS2Controller.kext).  I needed to change the keyboard type to ISO European (instead of ANSI) to fix the [ ` ~ ] key to the left of the "1" (one).  With these two changes (switch modifier keys and change keyboard type to ISO European, it appears that the Latitude E6410 keyboard is back to normal after taking advantage of the improved ALPS Touchpad performance with the new VoodooPS2Controller.kext.

Share this post


Link to post
Share on other sites

Also been looking at this and wanted to share some observations/tool ideas
I found that you can follow along with sleep in the system logging if you first generate a system log like this:
log show --last 1h --debug > /tmp/boot2.log

then search for:

ScreenOn changed: on -> off

Regarding the _WAK function,  I did notice that it seems to be calling a series of EV methods.  I wonder if we switched what EV function it was calling into, if we could see more success.  
Further I noticed that if search for the Sleep() command elsewhere in my DSDT, it seems it can also be called with the parameter 

Sleep (0x01F4)

 

Haven't had any success yet but wanted to share my results before I lost track of them

 

Share this post


Link to post
Share on other sites
1 hour ago, Dr. Monkey said:

Also been looking at this and wanted to share some observations/tool ideas
I found that you can follow along with sleep in the system logging if you first generate a system log like this:
log show --last 1h --debug > /tmp/boot2.log

then search for:

ScreenOn changed: on -> off

Regarding the _WAK function,  I did notice that it seems to be calling a series of EV methods.  I wonder if we switched what EV function it was calling into, if we could see more success.  
Further I noticed that if search for the Sleep() command elsewhere in my DSDT, it seems it can also be called with the parameter 

Sleep (0x01F4)

 

Haven't had any success yet but wanted to share my results before I lost track of them

 

It's great to have some else on the E6410/Mojave team!  From what I've gathered about Sleep(), the parameter is the sleep duration (which I imagine means that the higher the number, the longer the sleep.  The Sleep() command in DSDT.aml is not the laptop sleep, but is a time to wait before execution continues.  If someone knows differently, please chime in.

 

EDIT: Also, take a look a this. @itsworking has edited his DSDT to log events as they are executed in the DSDT.  Looks tedious, but may be an option.  Note that my display name is "deeveedee" in this other forum.  You'll see my question that I asked - not sure who's still following that other thread.

Edited by tonyx86

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 unamlosito
      Ciao a tutti, premetto che è la mia prima volta con un hackintosh e che comunque ho un po' di esperienza windows/linux alle spalle.
      Vorrei installare sul mio portatile, un acer nitro 5, la versione di mac os in questione (mojave), ma seguendo una guida online, mi da degli errori che non dovrebbero esserci. Chiedo quindi aiuto su questo forum che credo sia fatto di gente che ne capisce più di me per quanto riguarda il mondo hackintosh. C'è qualche guida che posso seguire per istallarlo quindi? Perché non ci sto capendo veramente niente.
    • By tonyx86
      This thread for installing Catalina on the Dell Latitude E6410 WITH NVIDIA GRAPHICS (BIOS A17, NVidia 3100m) will help you install a fresh installation of Catalina on your Dell Latitude E6410, it will help you upgrade from 10.15.2 to 10.15.3 (if you originally installed Catalina from this thread) and it will also help you upgrade from Mojave 10.14.6 if you have already installed Mojave by following the instructions here.  The instructions in this first post assume that you are installing Catalina in an APFS container.  If you are curious about the evolution of this solution and how sleep/wake was solved, review the Mojave installation thread.
       
      Important: This Thread is NOT intended to help you install macOS on a Latitude E6410 with Intel HD Graphics (without Nvidia graphics).  The DSDT attached to this first post (in E6410-Catalina.zip) is VERY SPECIFIC to the Nvidia graphics implementation and has not been edited for HD Graphics - there are elements required for HD Graphics that are missing from the attached DSDT and there are DSDT mods that have not been tested with HD Graphics.  Also, the kexts attached to this first post are specific to a Broadcom Wi-Fi card which must replace the original Intel Wi-Fi card.
       
      This first post will be modified to reflect lessons learned and to reflect the most current working state of my Latitude E6410 (with NVidia 3100m discrete graphics) running Catalina.  Issues, observations and performance tips are recorded toward the bottom of this first post.  My recommended CLOVER configuration is specified toward the bottom of this first post.
       
      *** If you want help with your installation, please post your issue along with problem reporting files generated using @black.dragon74's problem reporting tool.  Google 'GENERATE PROPER PROBLEM REPORTING FILES black.dragon74' to find it. ***.  If Catalina's Read-Only protections block your installation of black.dragon74's gen_debug script, please copy the attached gen_debug script to your Desktop, change script properties with the terminal command 'chmod a+x ~/Desktop/gen_debug' and run the script from your Desktop.
       
      My system is as follows:
      Dell Latitude E6410 (I7-620m, Nvidia 3100M, 8GB DDR3, 512GB SSD, 1440x900 display, BIOS: A17) Wi-Fi: Broadcom BCM 94352HMB (replaced original Wi-Fi card) BIOS (version A17) configured 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;   
      Versions of the software used in this installation are listed below the installation steps.  EFI and kexts for Catalina are attached to this first post in E6410-Catalina.zip.  CLOVER configuration is specified below the installation steps.
       
      Wi-Fi connection to an Access Point is delayed when using AppleALC for sound.  Do not use Apple ALC.  Use VoodooHDA pkg 2.9.2 v14 for sound.
       
      Steps to install Catalina on a Dell Latitude E6410 (BIOS A17, NVidia 3100m)
      Make sure that your system matches my system description above (including BIOS version, Wi-Fi card, BIOS settings) If performing an upgrade from Mojave or a previous version of Catalina, backup your Mojave or Catalina partition! (Carbon Copy or similar) Download Catalina Installer Download DosDude Catalina Patcher Use DosDude Patcher to create Catalina USB Installer Delete LegacyUSBInjector.kext (we're using @RehabMan's USBInjectAll.kext with custom SSDT) and delete SIPManager.kext (CLOVER is managing SIP) from Catalina USB Installer's /Library/Extensions folder Copy all but the FakeSMC sensor kexts in E6410-Catalina.zip (attached) LE folder to the Catalina USB Installer /Library/Extensions (copy all kexts (including FakeSMC.kext) but not the FakeSMC sensor kexts) Install CLOVER Bootloader (Legacy) on USB Installer using the EFI in the E6410-Catalina.zip (attached).  Use the CLOVER configuration specified below.  Be sure to replace the XX-MASKED-XX parameters in the attached config.plist with your own values. Reset your Latitude E6410 NVRAM by doing the following (this may be important if you're making changes to your existing EFI and won't hurt anything if you're not making any changes) turn-off your laptop remove A/C power and main battery press and hold the power button for 30 seconds restore A/C power and battery Boot your Latitude E6410 from the Catalina USB Installer that you created in steps 5-8. Select "Reinstall macOS" (note that I have existing installations of Mojave and High Sierra on my Latitude E6410, so it's possible that this menu item changes to "Install macOS" if you don't have any previous macOS installations). Select your Catalina destination partition (which will be your Mojave or previous Catalina partition if you are upgrading) After the Catalina Installer reboots the first time, boot from the "macOS Installer" partition on the disk that you selected as your Catalina destination (not the macOS installer on the USB) After the Catalina Installer reboots the second time, boot the Catalina macOS Installer on the USB Select the Post Install Patcher utility Select only the following Post Install Patches (no other patches / options) Install Patch Updater Legacy Video After the Post Install Patcher reboots,  boot from the newly installed (or upgraded) Catalina partition and complete the macOS configuration Remove these kexts (if they exist) from /Library/Extensions: LegacyUSBInjector.kext, LegacyUSBVideoSupport.kext and SIPManager.kext If you are performing a fresh installation of Catalina: Install CLOVER on your boot disk and configure EFI using files in the attached E6410-Catalina.zip.  Use the CLOVER configuration below.  Your EFI Clover/kexts/Other folder needs only FakeSMC.kext, IntelMausiEthernet.kext, USBInjectAll.kext and VoodooPS2.kext.  Be sure to replace the XX-MASKED-XX parameters in the attached config.plist with your own values. Install all kexts in the attached E6410-Catalina.zip LE folder to your /Library/Extensions folder.  NOTE: These instructions assume installation of Brcm kexts in /Library/Extensions.  Read the Brcm install instructions if you're installing kexts in EFI/Clover/kexts/Other, since your installation and at least one kext WILL BE DIFFERENT. Copy HWMonitor from the application folder in the attached E6410-Catalina.zip to your Applications folder. Install VoodooHDA (I installed using the Classic method) Skip to Step 21 If you are upgrading from a previous version of Catalina using the instructions from this thread or from Mojave that you installed using the instructions here: Update Lilu.kext and replace BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext (in /Library/Extensions) with latest BrcmBluetoothInjector.kext, BrcmFirmwareRepo.kext and BrcmPatchRAM3.kext. NOTE: These instructions assume installation of Brcm kexts in /Library/Extensions.  Read the Brcm install instructions if you're installing kexts in EFI/Clover/kexts/Other, since your installation and at least one kext WILL BE DIFFERENT. Update IntelMausiEthernet.kext Remove VoodooSDHC.kext from /Library/Extensions Re-install VoodooHDA if necessary (I installed using the Classic method) Ensure PROPER kext installation: If you're manually installing kexts in /Library/Extensions, make sure that you execute the following (in terminal) cd /Library/Extensions sudo chown -R root:wheel *.kext sudo chmod -R 755 *.kext sudo kextcache -i / After you execute 'sudo kextcache -i /' you should observe that ALL kexts are allowed.  If not, your kext directory attributes are probably incorrect.  Repeat kext installation and try again. Reboot from your new/upgraded Catalina partition Welcome to macOS Catalina! Change the keyboard type to ISO (System Preferences > Keyboard > Change Keyboard Type) Swap the Command and Option keys (System Preferences > Keyboard > Modifier Keys) Set hibernatemode: In terminal, execute sudo pmset -a hibernatemode 0 sudo rm -f /var/vm/sleepimage sudo touch /var/vm/sleepimage sudo chflags schg /var/vm/sleepimage  
      Version Info at the time of this writing:
      Catalina Installer 10.15.3 CLOVER v2.5k r5103 DosDude Catalina Patcher: v1.3.0 Lilu.kext 1.4.1 AirportBrcmFixup.kext 2.0.6 BrcmFirmwareRepo.kext 2.5.1 BrcmBluetoothInjector.kext 2.5.1 BrcmPatchRAM3.kext 2.5.1 IntelMausiEthernet.kext 2.5.0
      VoodooHDA.kext 2.9.2 v14 (NOT AppleALC)
       
      What is not working (that was working in Mojave)
      SD Card Slot (had to remove VoodooSDHC.kext which caused system freeze on wake)  
      Known Issues and Their Solutions
      (No solution yet) Brightness slider does not work in System Preferences > Displays.  Brightness is easily controlled with Dell brightness keys.  There is some work on this later in this thread, but I will not be solving this as I'm content with the Dell brightness keys (and Ambient Light Sensor works to auto-adjust brightness). I continue to refine the DSDT and CLOVER config.plist to optimize my Latitude E6410 for multi-booting between various macOS versions (High Sierra, Mojave and Catalina at the time of this writing). If you upgrade your Latitude E6410 EFI using my attached EFI, you may find that your Latitude E6410 is stuck in a boot-loop that ends in a white screen and reboots.  Clear your system by doing the following: turn off your laptop, remove A/C power, remove the main battery, press and hold the power button for 30 seconds, restore A/C power and battery, boot normally.  I have only found this to be necessary (very rarely) after making an EFI change, but you may find it helpful if making kext changes in /Library/Extensions as well. (Work-around - no permanent solution yet) Cannot turn on Bluetooth after shutting-down with Bluetooth off.  Work-around is to leave Bluetooth on.  I don't use Bluetooth and don't mind, so this will likely be solved by someone else.  If you experience this issue and can't turn-on Bluetooth, I have found that putting the laptop to sleep (Fn-F1) and then waking the laptop restores proper operation of Bluetooth.  I have posted a problem description, logs and problem reporting files in this thread for help with this problem. (Solved - no further work required) Laptop does not sleep when closing lid.  Solution is to add a Notify (LID0) code to Method (BTNV) in the DSDT.  No surprise that the Latitude E6410 has yet another incomplete ACPI implementation.  I am using the same EFI for High Sierra 10.13.6, Mojave 10.14.6 and Catalina 10.15.3 and it works in all three macOSes. (No solution yet) No SD Card Slot (had to remove VoodooSDHC.kext) - I read somewhere that there is a solution that does not require any kexts (just a DSDT edit).  Haven't yet implemented this fix. (Not a problem that needs to be solved - leaving for historical purposes.  I am running Catalina without this.) - IOHWControl does not load under GFX0 (as observed in IORegistryExplorer).  Solution (if it needs to be solved) is to install AppleHWSensor.kext from a DosDude-patched Mojave /S/L/E in Catalina's /L/E.  Copy and install your own or use the kext attached to this post. (Solved - no further work required) Wi-Fi connection is delayed until a minute or so after boot - Use VoodooHDA and NOT AppleALC (Solved - no further work required) External USB ports do not work after waking from sleep (S3) - Upgrade Lilu.kext and replace BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext (in /L/E) with latest BrcmBluetoothInjector.kext, BrcmFirmwareRepo.kext and BrcmPatchRAM3.kext. (Solved - no further work required) Boot and shut-down time of Catalina is slower than Mojave - Upgrade Lilu.kext and replace BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext (in /L/E) with latest BrcmBluetoothInjector.kext, BrcmFirmwareRepo.kext and BrcmPatchRAM3.kext. (Solved - no further work required) Wi-Fi is not immediately available at OS startup - Upgrade Lilu.kext and replace BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext (in /L/E) with latest BrcmBluetoothInjector.kext, BrcmFirmwareRepo.kext and BrcmPatchRAM3.kext. (Solved - no further work required) Laptop freezes on wake - Remove VoodooSDHC.kext from /Library/Extensions  
      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 (I haven't noticed this issue for a while since I completed DSDT edits for Mojave, but keeping this here for historical purposes)  
      CLOVER Installation: Use these configuration options
      Install Clover in the ESP Boot Sectors Install boot0af in MBR Clover for BIOS (legacy) booting Clover EFI 64-bits SATA BIOS Drivers, 64-bit Recommended drivers FSInject File System drivers ApfsDriverLoader Install RC scripts on target volume Themes Choose your desired theme Install Clover Preference Pane After clicking "Continue", if prompted with "This Clover package is incompatible with this version of macOS," install anyway  
      After CLOVER installation is complete Copy the following from the attached E6410-Catalina.zip ACPI patched contents config.plist (change XX-MASKED-XX values to your own) kexts/Other (remove all other kext folders) Remove christmas and new year folders from themes (if present)  
      Credits
      Thanks to those who contributed to my Mojave solution and to the DosDude team (for the incredible macOS patchers), I think this Catalina installation was the easiest macOS installation that I have experienced (so far).  Many thanks to @Slice and his team for the incredible work on CLOVER and for continuing to support old legacy systems like this.  Also, thanks to @Mieze and @headkaze and others I'm sure for maintaining the Brcm kexts.  And finally, I still prefer to manually apply patches to the DSDTs in my systems.  CLOVER offers extensive patching functionality, but I'm old-school and like to have an error-free, fully-patched DSDT with a simple CLOVER config.plist.  I think that this manual DSDT patching approach (which required an extensive review and debugging of the original unpatched DSDT in this thread) is the reason that this Latitude E6410 is such a perfect MacBookPro6,2.  Thank you @RehabMan for being a great teacher and for always insisting on problem reporting files .
       
       
       

      AppleHWSensor.kext.zip

      gen_debug
      E6410-Catalina-3v5.zip
×