Jump to content

Elitebook 840 G3: Fixing battery percentage and closing lid to sleep without SSDT-840G3?


Lost-Entrepreneur439

Recommended Posts

I have an HP Elitebook 840 G3, hackintoshed on 13.3.1 Ventura, and for my battery percentage and being able to close the lid for sleep, I am relying on SSDT-840G3, however this SSDT is causing me issues. Basically, I can't boot into my Windows 8.1 dualboot from OpenCore if I have this SSDT enabled, it'll just sit there on the loading screen forever, I have to either disable the SSDT, or boot into Windows from the F9 boot menu. How can I fix these without SSDT-840G3, or can that SSDT be patched so it doesn't load into Windows?

 

Thanks in advance!

SSDT-840G3.aml.zip

Link to comment
Share on other sites

  • Administrators

You would not have this kind of problem with Clover. However, with OpenCore, one solution to fix this is to apply an "If Darwin" condition to your SSDT so that it only applies to OS X/macOS and will be ignored when you boot any other OS. This may be done as follows:

DefinitionBlock (<bla bla bla>)
{
    External <bla bla bla>
    ...

    If (_OSI ("Darwin"))     /* places SSDT code under condition of running OS X/macOS */
    {
        Device (RMCF)
        {
            ...
        }
        Scope (_SB.PCI0.RP05.PEGP)
        {
            ...
        }

        ...
        ...
        ...

        Device (RMD3)
        {
            ...
        }
    }     /* endif */
}

 

In other words, you place all the code past the heading External declarations within this conditional section:

If (_OSI ("Darwin"))
{
    ...
}

and Bob's your uncle!

Link to comment
Share on other sites

  • Administrators

Please don't quote messages to post replies; forum provides a Reply box at the bottom of each page.

 

Your code is Ok but if you renamed your table, make sure you also rename it in your OC config and Reset NVRAM at OC Picker when you reboot. I've tested the stated principle on my own E7270 (with a different SSDT of course) and it works just fine.

Link to comment
Share on other sites

The name was only just because I had it stored on a folder that had the original SSDT-840G3, I gave it that name temporarily then renamed it when putting it into my EFI. Turns out I misclicked and didn't copy it the first time, After copying it again and resetting NVRAM, it's still causing problems, Windows still won't boot from OpenCore, however now instead of loading forever, pretty much the second Windows starts loading I get an ACPI_BIOS_ERROR BSOD. I'm assuming there's just something with the Darwin check that only Windows 10 and 11 know how to handle, and it's causing 8.1 to still freak out.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...