Jump to content
FrostyTheSnowman

Working sleep on Intel HD and Nvidia NVS on Dell Latitude E6430 (Optimus Enabled or Disabled)!

Recommended Posts

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

 

1. PNLF code can be tricky... there are some different variations floating around. The '[igpu] Brightness fix (HD3000/HD4000)' patch does work for Intel, but it does not work correctly for Nvidia. I adjusted the code slightly to work with both Intel/Nvidia, this was the resulting code I used:

 

 

 

   Scope (_SB)

    {
        Device (PNLF)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_HID, EisaId ("APP0002"))  // _HID: Hardware ID
            Name (_CID, "backlight")  // _CID: Compatible ID
            Name (_UID, 0x0A)  // _UID: Unique ID
            Name (_STA, 0x0B)  // _STA: Status
        }
    }

 
2. Backlight code for the Nvidia card is not very well documented online... there isn't much love for Nvidia on Hackintosh laptops because troubleshooting can be complicated (compared to Intel). In this case I had to research the 'PWM' info for the backlight on Nvidia cards and create my own code based on the Intel backlight code - this was the resulting code I used:
 

       Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store (Package (0x06)
                {
                    "AAPL,backlight-control", 
                    Buffer (0x04)
                    {
                         0x01, 0x00, 0x00, 0x00                         
                    }, 
 
                    "@0,backlight-control", 
                    Buffer (0x04)
                    {
                         0x01, 0x00, 0x00, 0x00                         
                    }, 
 
                    "@0,pwm-info", 
                    Buffer (0x14)
                    {
                        /* 0000 */  0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00,
                        /* 0008 */  0x08, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
                        /* 0010 */  0x00, 0x04, 0x00, 0x00                         
                    }
                }, Local0)
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    }

 
NOTE: The above '_DSM' method requires 'DTGP' method to be present in DSDT to work. This is the resulting code I used:
 

   Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                             0x03                                           
                        }, Arg4)
                    Return (One)
                }
 
                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }
 
        Store (Buffer (One)
            {
                 0x00                                           
            }, Arg4)
        Return (Zero)
    }

 
3. There are many _DSM methods in DSDT, however they do not affect the Nvidia card, because the Nvidia code is located in 'SSDT-7.dsl' (unless you copy it into the DSDT manually). The _DSM method in 'SSDT-7.dsl' is the one you need to clear and replace.
 
4. Yes, the XOSI 'SSDT-n.aml' file needs to be created and placed in '/EFI/CLOVER/ACPI/patched', the 'n' can be any number you like as long as the order is correct and it doesn't conflict with other SSDTs. This is the resulting XOSI code I used:
 

DefinitionBlock ("", "SSDT", 1, "hack", "XOSI", 0x00000000)
{
    Method (XOSI, 1, NotSerialized)
    {
        Name (WINV, Package (0x09)
        {
            "Windows", 
            "Windows 2001", 
            "Windows 2001 SP2", 
            "Windows 2006", 
            "Windows 2006 SP1", 
            "Windows 2009"
        })
        Return (LNotEqual (Ones, Match (WINV, MEQ, Arg0, MTR, Zero, Zero)))
    }
}

 
Let me know if you have any questions! ;)

Share this post


Link to post
Share on other sites

Hi FrostyTheSnowman,

 

First of all, thanks for your patience and help!

 

Sorry for the delay on answering you, but I still haven't the time to check the procedures you informed. I will try this weekend and let you know how it worked.

 

Best regards,

Pablo Iglesias

Share this post


Link to post
Share on other sites

How much time did you spend to patch DSDT? I have an E6530 laptop with Nvidia card..Should you boot pack work for me?

 

It doesn't take too long, the DSDT patches are documented in post #1, #5 and #12 of this thread. I'm sure they would work the same on the E6530 (w/Nvidia). :)

 

I don't know for sure if the E6430 DSDT in my bootpack will be compatible with E6530, but I would go ahead and try my bootpack anyway and see how it works - it will probably work fine.

 

Let us know how it works out! ;)

Share this post


Link to post
Share on other sites

hmm..I use your bootpack to enable sleep. I generate an CPU ssdt with the famous ssdtPRGen.The laptop was still unable to start

15577451_10206957686891039_1164661457_n.

Checked drop SSDT from clover bootloader and it started.Sleep is working. I still have the sensation that something is not working ok.It takes too long to start... I hope to have the courage to patch my own DSDT.

Share this post


Link to post
Share on other sites

hmm..I use your bootpack to enable sleep. I generate an CPU ssdt with the famous ssdtPRGen.The laptop was still unable to start

15577451_10206957686891039_1164661457_n.

Checked drop SSDT from clover bootloader and it started.Sleep is working. I still have the sensation that something is not working ok.It takes too long to start... I hope to have the courage to patch my own DSDT.

 

Awesome, looks like the E6430 DSDT is working just fine on your E6530! 
 
Unfortunately the issues you are describing (and the screenshot you provided) are a symptom of Nvidia GPU PM (power management) not working properly - if you remove/drop the CPU SSDT then OSX will not attempt to enable GPU PM and OSX will boot normally (but slow), however you will not have any CPU PM if you do this.
 
The easiest fix for this issue is to edit the Clover 'config.plist' file with a different 'Board-ID' used for an iMac (instead of a MacBook) but keep the 'ProductName' the same:
 
Change this:
 

<key>SMBIOS</key>
<dict>
          <key>Board-ID</key>
          <string>Mac-4B7AC7E43945597E</string>
          <key>ProductName</key>
          <string>MacBookPro9,2</string>
          <key>Trust</key>
          <false/>
</dict>

 
To this:
 

<key>SMBIOS</key>
<dict>
          <key>Board-ID</key>
          <string>Mac-00BE6ED71E35EB86</string>
          <key>ProductName</key>
          <string>MacBookPro9,2</string>
          <key>Trust</key>
          <false/>
</dict>

 
After editing the Clover 'config.plist' with the above OSX will not attempt to enable GPU PM, and you should be able to use your CPU SSDT. ;)

Share this post


Link to post
Share on other sites

How do I find that my cpu is working properly?Is Turbo mode available to hackintosh?

The USB 3.0 seems that is not working. I removed the backlight kext and my system seems  is starting faster.

One time, it fails to wake.It started with bios loading,clover and so one...

Why is so important smbios settings?

Another thing...when i opened the HWSensors app, my screen turned in white or gray and freeze....

Share this post


Link to post
Share on other sites

I have Dell Latitude E6530 with FHD 15.6" and core i7 3740 QM. I managed to get all hardware working under 10.11.6 except nVidia card. I can not get it when i switch off 'Optimus'. Any help needed ))

Thanks for this topic )) With this help I managed to bring up card reader and battery status! 

BTW I used MacBookPro10,1 as default profile.

  • Like 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...