Contribute
Register

[Guide] How to patch DSDT for working battery status

Guys i've got an issue.

I'm trying to patch my DSDT for battery status with the appropriate patch i found on another thread but i get errors which i cannot go beyond. Also i applied the usb patch for el capitan using maciasl and after that the system reboots when i press shutdown so i manually power off.
The system is a Fujitsu AH552/sl but to my understanding it has the same battery as an AH531 hence the patch i'm trying to use.

I would be extremely grateful if someone could help me deal with those 2 issues

View attachment 158928View attachment 158929

Your patch lacks the B1B2 method patch. And you'll need to patch for the MDCP and MBCP reference in S024.

Read post #1.
 
Read post #1.

Can i send you my DSDT just for you to know if is everything OK?
Or where i need to patch? Becasue in Yosemite i had patched the DSDT.
Thanks
 
Can i send you my DSDT just for you to know if is everything OK?
Or where i need to patch? Becasue in Yosemite i had patched the DSDT.
Thanks

If you already have a patched DSDT for battery, then I don't know why you're not using it.
 
If you already have a patched DSDT for battery, then I don't know why you're not using it.
I'm using it, but it only works with chameleon bootloader, but with clover doesn't work :(
 
I'm using it, but it only works with chameleon bootloader, but with clover doesn't work :(

Clearly not patched correctly.

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
if [ -d ~/Downloads/RehabMan ]; then rm -R ~/Downloads/RehabMan; fi
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Note: It is easier if you use copy/paste instead of typing the commands manually.

Post contents of Downloads/RehabMan directory (as ZIP).

Also, post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

And output from:
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc

Also, post EFI/Clover folder.
 

Attachments

  • Patch Battery.zip
    4.5 MB · Views: 80
Here you have it.
Many thanks for trying to help me.

Your DSDT needs work. It is not simulating a version of Windows for "Darwin".

For example...to simulate Windows Vista...
Code:
        Method (OSID, 0, NotSerialized)
        {
            If (LEqual (ACOS, Zero))
            {
                Store (One, ACOS)
                If (CondRefOf (\_OSI, Local0))
                {
                    If (_OSI (WXP))
                    {
                        Store (0x10, ACOS)
                    }

[B]                    If (1) // was: If (_OSI (WLG))[/B]
                    {
                        Store (0x20, ACOS)
                    }

                    If (_OSI (WIN7))
                    {
                        Store (0x80, ACOS)
                    }

                    If (_OSI (LINX))
                    {
                        Store (0x40, ACOS)
                    }
                }
                Else
                {
                    If (STRE (_OS, W98S))
                    {
                        Store (0x02, ACOS)
                    }

                    If (STRE (_OS, WINM))
                    {
                        Store (0x04, ACOS)
                    }

                    If (STRE (_OS, NT5S))
                    {
                        Store (0x08, ACOS)
                    }
                }
            }

            Return (ACOS)
        }

Also, you have 3 battery objects, probably only one active. You will need to disable the non-active ones by returning Zero from _STA.
 
Your patch lacks the B1B2 method patch. And you'll need to patch for the MDCP and MBCP reference in S024.

Read post #1.

This is the part that bugs me. I can't go beyond that cause of my lack of knowledge.
Pardon my ignorance but i don't see any reference about MDCP or MBCP in post #1.
I already figured out the B1B2 method.

Thanks for your help
 
This is the part that bugs me. I can't go beyond that cause of my lack of knowledge.
Pardon my ignorance but i don't see any reference about MDCP or MBCP in post #1.
I already figured out the B1B2 method.

Thanks for your help

MDCP and MBCP are causing errors due to access to 16-bit registers that have been patched.

You need to work through the example in post #1, then take a detailed look at your own patches, own DSDT.
 
Back
Top