Jump to content

Working sleep on Intel HD 4000 and nVidia NVS 5200M on Dell Latitude E6430 (Optimus Enabled or Disabled)!


FrostyTheSnowman

Recommended Posts

Working sleep on E6430 for both graphics modes! (Optimus Enabled or Disabled)

 

*** This package is intended for those who want full use of both Intel and Nvidia cards on their E6430 under macOS(X) - you will be able to use Intel and Nvidia graphics cards together (Optimus Enabled in BIOS), or Nvidia graphics card alone (Optimus Disabled in BIOS) with full functionality. If you are looking for Intel-only (Nvidia turned off all the time for battery savings) support this is not the focus of this package/thread.

 

NOTE: Reported to also work on E6530 models!

 

Targeted macOS(X) Versions:

 

El Capitan 10.11.x and Sierra 10.12.x

 

NOTES:

 

1. No CPU-specific SSDT code/settings are included, should work on any E6430 CPU
2. No wifi-specific code/settings are included, refer to compatible card list for suitable replacement wifi card
3. No SMBIOS details are set other than 'ProductName' and 'Board-ID', everything else is auto-generated by Clover - if you want iMessage, etc working you will need to provide valid data
4. If you are using the 1366x768 LCD you will need to be on BIOS A13 or older to prevent artifacts when using Intel (Optimus Enabled), and you will need to set Clover to '1366x768' along with 'ig-platform-id' set to '0x01660003'
5. Be sure to disable hibernation and remove your hibernate file within your OS!
 

Hardware used for build:

  Reveal hidden contents

 

 

Fixes Applied:

 

  Reveal hidden contents

 

 

DSDT Changes:

 

  Reveal hidden contents

 

 
Clover Installer settings:

  Reveal hidden contents

 

 

Clover 'config.plist':

 

  Reveal hidden contents

 

 

XOSI SSDT (Windows 2009) based on RehabMan's XOSI-SSDT.dsl

 

  Reveal hidden contents

 

 

EFI drivers added to Clover's 'drivers64' and 'drivers64UEFI' directories:

  Reveal hidden contents

 

 

Kext files added to Clover's 'kexts/Other/' directory:

 

  Reveal hidden contents

 

 

Kext files added to '/Library/Extensions/' or '/System/Library/Extensions/'

  Reveal hidden contents

 

E6430 HD and NVS working sleep.zipFetching info...

  • Like 2
Link to comment
Share on other sites

  • Administrators

Looking good, thanks.
 
Please note that you should not use the VoodooSDHC kext as that's unnecessary and highly likely to cause wake issues. Instead, patch your DSDT to inject compatibility with Apple's default SD card reader. Details of the patch are available here and in original thread from Joe82. The patch works perfectly on all E6x20/6x30/6x40 models.

 

Have you found ACPIPoller to be necessary? I've not needed it on my E6230...

 

HDMI output and HDMI audio are also achievable through a combination of DSDT patches + Capri FB patches and AppleHDA patches.

  • Like 2
Link to comment
Share on other sites

  On 9/15/2016 at 9:23 AM, Hervé said:

Looking good, thanks.

 

Please note that you should not use the VoodooSDHC kext as that's unnecessary and highly likely to cause wake issues. Instead, patch your DSDT to inject compatibility with Apple's default SD card reader. Details of the patch are available here and in original thread from Joe82. The patch works perfectly on all E6x20/6x30/6x40 models.

 

Ah! I thought I recalled reading about that, I will implement it immediately and update the package after testing. Thanks! :)

 

  On 9/15/2016 at 9:23 AM, Hervé said:

Have you found ACPIPoller to be necessary? I've not needed it on my E6230...

 

It's only necessary while using 'Nvidia-only' mode (Optimus Disabled), it seems like the lid only functions correctly using 'Intel/Nvidia' mode (Optimus Enabled).

 

The normal 'LID' code seems to be built around the Intel code in DSDT, so without LIDP patch/ACPIPoller.kext the lid doesn't respond when closed using 'Nvidia-only' (Optimus Disabled). :(

 

  On 9/15/2016 at 9:23 AM, Hervé said:

HDMI output and HDMI audio are also achievable through a combination of DSDT patches + Capri FB patches and AppleHDA patches.

 

I'm somewhat of a minimalist when it comes to patches, I try not to patch the DSDT for preference of one graphics card's functions over the other (audio or video) to avoid potential conflicts when switching between them, so 'VoodooHDA' tends to be pretty good for me (although I admit most people prefer AppleHDA patches over VoodooHDA).

 

I am able to get HDMI video and audio output under both modes (Intel/Nvidia and Nvidia-only), as it seems the Nvidia card is used in both cases for HDMI.

Link to comment
Share on other sites

  On 9/15/2016 at 9:23 AM, Hervé said:

Please note that you should not use the VoodooSDHC kext as that's unnecessary and highly likely to cause wake issues. Instead, patch your DSDT to inject compatibility with Apple's default SD card reader. Details of the patch are available here and in original thread from Joe82. The patch works perfectly on all E6x20/6x30/6x40 models.

 

I applied the DSDT patch and it worked great, thanks! SD card reader seems to work fine with injected properties into RP06. :)

 

Sleep is working now with or without SD card inserted, I am attaching an updated DSDT to this post for use instead of installing 'VoodooSDHC.kext'.

 

  On 9/15/2016 at 1:32 PM, The_Moves said:

Bump for A18 BIOS, I've got my setup using it as well without issues, however I wasn't aware that Samsung LTN140KT07 was a requirement. I do have the 1400x900 display, but unsure of the specific Samsung panel.

 

I'm not sure what causes the issue with the garbage on Intel, but my guess is either EDID or LVDS link cable... my personal E6430 originally had the 1366x768 LCD with a single-link LVDS cable and I had to run a BIOS lower than A13 to fix the garbage.

 

However, after upgrading to the Samsung 1600x900 panel and the dual-link cable I no longer encountered the garbage when using Intel, regardless of my BIOS version... it would be interesting to know which brand/model LCD you have on yours to be sure. :)

DSDT_sd_card_injected.zipFetching info...

Link to comment
Share on other sites

Hi FrostyTheSnowman,

 

Great job on this topic!

 

I'm trying to activate the Nvidia 5200M in order to use an external monitor through a docking station using the Display Port connector. I already have this working on Yosemite and I'm trying to enable on El Capitan. Have plans to install Sierra, but not now due to software compatibilities. 

 

I'm facing some issues during the compilation of the DSDT and I'm not sure if I'm doing something wrong.

 

I can understand most of the topics about Hackintosh, but DSDT/SSDT is something very unclear to me. I read lot's of posts related, but the problem is with me and I can't understand clearly.

 

I'm getting a compilation error below because (I suspect) I didn't imported the Nvidia SSDT-7.dsl into DSDT.dsl. In fact, I don't know how to do it. Just merge the files? Is there any specific place in DSDT.dsl to insert the SSDT-7.dsl content? Should I copy part or full SSDT-7 content?

 

DSDT.dsl   6839:     \_SB.PCI0.PEG0.VID._OFF()

Error    6084 -     Object does not exist ^  (\_SB.PCI0.PEG0.VID._OFF)

 

DSDT.dsl   6898:     \_SB.PCI0.PEG0.VID._ON ()

Error    6084 -    Object does not exist ^  (\_SB.PCI0.PEG0.VID._ON)

 
I'm using the RehabMan iasl command with ACPI 6.1 in the terminal to compile.
 
Another doubt that I have is about the _OSI to XOSI. I could insert in the Clover DSDT patch, but I didn't understand how to apply into DSDT. Is just a matter of renaming _OSI to XOSI inside DSDT?
 
This USB3 step is a little bit confusing for me.
 
Another part that I'm in doubt is the "added backlight properties to Nvidia _DSM (not needed for Intel)". And in the other part you mention "- Nvidia _DSM cleared and replaced with injection of backlight properties". Should I remove the _DSM methods via '[syn] Remove _DSM methods' or only remove the method content? Where is the content backlight properties?
 
One thing that I'm curious, you mentioned to extract DSDT with Optimus activated. But I will use it deactivated to use the Nvidia card, is not a problem? Shouldn't extract the DSDT with Optimus unmarked on BIOS?
 
I'm sorry to have all these questions, but I'm failing to enable the Nvidia card.
 
Best regards,
Pablo Iglesias
Link to comment
Share on other sites

  • Administrators

You're getting compilation error for the _OFF and _ON methods you've added because they're not declared in the DSDT but in one of the SSDTs. As such, you must declare these functions as External functions at the very top of your DSDT; you'll see similar code lines for other functions. Just copy/paste existing external declarations and adjust to _OFF/_ON functions.
 
Should be something like:

External (_SB.PCI0.PEG0.VID._OFF, MethodObj)
External (_SB.PCI0.PEG0.VID._ON, MethodObj)

You'll find guidance and samples on this matter here.

Link to comment
Share on other sites

  • Moderators

Pablo, 

 

If you have a working system with Yosemite, you could reuse the same boot pack. Just need to change a couple of things in the Config file.

You need to disable SIP and change Smbios to MBA 6.2.

 

Launch Config.plist file with Clover Configurator, under RT variables tab, enter the following

BooterConfig = 0x28

CsrActiveConfig = 0x67

 

Then under SmBIOS, click on the magic wand and select MacBookAir 6,2.

See here.

Link to comment
Share on other sites

Pablo,

 

Yes, the content from the external Nvidia SSDT was copied into the DSDT to allow me to call the _ON and _OFF methods.

 

I dumped the DSDT/SSDT tables with Optimus enabled to ensure my DSDT had code for both video cards being active, this way it will also work with one card disabled (Optimus disabled in BIOS), as I was having issues with DSDT/SSDT dumps done with Optimus disabled.

 

As Herve was saying above, you can certainly use the 'External' reference to call the _OFF and _ON methods (easiest way) -or- you can copy the code from the Nvidia SSDT into the DSDT, either way works fine. I decided to copy the SSDT code into the DSDT to help keep the DSDT working with future BIOS versions.

 

Here's a quick rundown of the requirements to get Nvidia working on E6430 (and others) under El Capitan/Sierra:

 

  • Optimus Enabled or Disabled in BIOS (either way)
  • Nvidia injection set to 'true' in Clover 'config.plist' to enable Nvidia card in OS X
  • Specified 'ProductName' of 'MacBookPro9,2' and 'Board-ID' of 'Mac-4B7AC7E43945597E' in SMBIOS section in Clover 'config.plist' to get past the black screen issue
  • Added _OFF call to top of _PTS method to disable the Nvidia hardware before entering sleep state, then added _ON call to top of _WAK method to enable the Nvidia hardware when leaving sleep state to fix Nvidia sleep freeze
  • Added 'PNLF' method to DSDT to force LCD screen to identify as built-in, this is needed by OS X to enable sleeping with lid
  • Added RehabMan's 'Poll for LID changes' patch to DSDT and installed RehabMan's 'ACPIPoller.kext' to fix lid sleep on Nvidia
  • Cleared the _DSM method (removed all code inside the _DSM method, original code was used for switching video cards in Windows which won't work on Mac) in the Nvidia SSDT and replaced it with backlight code for Nvidia to fix brightness slider in OS X

 

Here's a quick rundown of the requirements to get USB 3.0 working on E6430 (and others) under El Capitan/Sierra:

 

  • Renamed _OSI to XOSI via Clover patch (this could also be done manually inside the DSDT instead) then created SSDT (or you could also copy this code into DSDT if you wanted to) with XOSI method set for 'Windows 2009' to force the BIOS to enable USB 3.0
  • Set 'USB Ownership' in Clover's 'config.plist' to 'true' to fix USB ownership (required or OS X will freeze on bootup)
  • Renamed EHC1 to EH01 and EHC2 to EH02 via Clover patches (this could also be done manually inside the DSDT instead) to prevent OS X from loading the default USB 3.0 drivers/injection (default driver/injection causes side-effects, RehabMan's 'USBInjectAll.kext' is used instead)
  • Installed RehabMan's 'USBInjectAll.kext', 'fakepciid.kext' and 'fakepciid_xhcimux.kext' to inject USB 3.0 port and routing information to enable USB 3.0 in OS X
  • Applied RehabMan's 'USB3 _PRW 0x0D (instant wake)' patch to DSDT to fix USB properties to allow sleep

 

Let me know if you have any other questions, i'm happy to help. :)

Link to comment
Share on other sites

Hi Hervé, Jake, FrostyTheSnowman,

 

I really appreciate your very quick response, clarifying my doubts.

 

Hervé, will try the approach of declaring an external method, as it's the easiest. But at the same time, I agree with copying SSDT content inside to DSDT so it will be compatible with future version of BIOS. As my display is 1366x768, I'm not planning to update my BIOS, keeping with the first option.

 

Jake, I got the bootpack you referenced and it worked perfectly. Thanks! I did all the changes in the config.plist and it's booting perfectly with external monitor and much better performance! It seems that the sleep is not working, then I disabled for a while.

 

About the SMBIOS MBA 6.2, this is a Haswell cpu and e6430 has an Ivy Bridge. Does it matter when creating the SSDT.aml via ssdtPRGen.sh script?

 

FrostyTheSnowman, I really appreciate your kindness on helping me. May I ask you (and the others too) few more questions?

 

1. I didn't find the PNLF method to insert in the DSDT. Is it the '[igpu] Brightness fix (HD300/HD4000)' patch that I need to apply?

 

2. I was looking around, but I could not find the 'backlight code for Nvidia' to replace the content of the _DSM method in the SSDT-7.dsl. Could you help me to find it? I will continue reading related posts. 

 

3. I could find the _DSM method in SSDT-7.dsl and inside the DSDT.dsl. Should I clean only in the SSDT-7.dsl file, or both including DSDL.dsl.

 

4. About the _OSI to XOSI, I did inside the config.plist via Clover patch. If I create the SSDT with XOSI method to set 'Windows 2009', should I saved in /EFI/CLOVER/ACPI/patched? Which name should I use SSDT-n.aml (where n is a number from 0 to 9)? Does it matter to use any that doesn't exist?

 

Thank you all for the help!

 

Best regards,

Pablo Iglesias

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...