Jump to content

Battery Status is working but it shows "Service Recommended".


davieees
 Share

19 posts in this topic

Recommended Posts

Good afternoon, members. I am new to this website, so I will start with the issue. I saw a lot of people on the internet (hackintosh forums) with this battery issue and haven't seen a fix for it. I would highly appreciate your patience to help me. So, yesterday I updated from Big Sur to Monterey (for the new features, but only for the low power mode thing). I want to mention that the issue was before I upgraded the system, even on Big Sur. First, cycle count in the System Report on 'About This Mac', it's with the value of 0. Which is pretty strange.. Also, I got the 'Service Recommended' notification in Settings -> Battery. Even in System Report. The only thing I want to do about this situation is to have the Low Power Mode feature on this hackintosh, which I think it has to do with the notification pop up. What can I do? Full DSDT Patch? How? I am kinda a newbie in the process of making a DSDT Patch and I would like some help (I don't understand some details on old forums, the forum with RehabMan). If someone wanna help a newbie, I would appreciate a lot. I want to mention too that I used the ECEnabler fix, didn't work. What can I do more? Please let me know down in the comments. Also, the EFI is fully configured and almost everything is working on the laptop. 

 

Specifications:

Proccessor -> Intel i5 5200U

Memory -> 8GB RAM DDR3

iGPU -> Intel HD 5500

eGPU -> nVIDIA 920m (disabled in the SSDT)

Storage -> Some kind of Kingston SSD Drive. Working properly.

Battery -> Some kind of Sanyo Battery. Battery status working. Notification issue.

 

                                              **LAPTOP: Acer Aspire E5-573G**

*If you want any other information about this laptop, let me know down below in the comments.*

 

 

Screenshot 2021-08-05 at 8.34.45 PM.png

Screenshot 2021-08-05 at 8.35.10 PM.png

Edited by davieees
Link to comment
Share on other sites

hello chris! i am a big fan of you. okie thankies for the suggestions. sorry for bothering you with my stupid questions but i am needed to. what patches should I use on my DSDT? i need to add the DSDT only in the ACPI section, or do I need to do something extra? yeah, i know that you'll say i need to watch tutorials on youtube, but i don't know how to fix some errors. i can't find them on internet tho. i just want to remove the service recommended thing. uhm, should I use the Acer Aspire E1-571 battery dsdt patch? I mean, i think i need to try one by one. anyways, thanks for your fast reply. again, sorry for annoying you with my stupid questions. regards, dave.

Link to comment
Share on other sites

On 8/6/2021 at 2:14 AM, Hervé said:

Afaik, many Hackintosh laptops have that under Big Sur. All mines certainly do. Could be the result of using ACPIBatteryManager/FakeSMC rather than VirtualSMC & PlugIns.

hello herve! even on big sur i have this issue. haven't tried on catalina. i am not using acpi thing or fakesmc. i am using the virtualsmc kext and the smcbatterymanager one. what could be the issue? i just wanna have the low power mode thing and the optimized battery charging thing. i heard you can get them once you have your battery fully configured or fully working. thanks anyways for your reply. i hope there's someone who could help me fix this. would appreciate everyone's patience. have a great day<3

Link to comment
Share on other sites

4 hours ago, davieees said:

hello herve! even on big sur i have this issue. haven't tried on catalina. i am not using acpi thing or fakesmc. i am using the virtualsmc kext and the smcbatterymanager one. what could be the issue? i just wanna have the low power mode thing and the optimized battery charging thing. i heard you can get them once you have your battery fully configured or fully working. thanks anyways for your reply. i hope there's someone who could help me fix this. would appreciate everyone's patience. have a great day<3

There are two way to fix the issue: acpi patching or choose other set of kexts. How else you propose to get a help?

  • Like 1
Link to comment
Share on other sites

My Dell M4700 has that message, but it's battery is atrocious (60% of original life I think?) so the messaging isn't too far off there :lol:
My X1 Extreme doesn't though, and I'm using VirtualSMC + SMCBatteryManager + ECEnabler (no ACPI patches at all needed)

I'm not quite how it determines if a battery needs servicing, but depending on how old it is, it might be accurate?

Link to comment
Share on other sites

On 8/7/2021 at 8:59 PM, Slice said:

There are two way to fix the issue: acpi patching or choose other set of kexts. How else you propose to get a help?

hi slice! i don't mind. one which I can understand, i guess? i can do patching too. but i just need some tips, i am not an expert. kinda a newbie. i mean, i am watching tutorials on youtube, but it seems kinda hard. maybe some help, i would appreciate a lot. i tried one time to patch the dsdt but no luck. eh.. kexts? sure, but i dunno which ones. thanks for the reply. waitin' for your response. i mean, anything. i just want the optimized battery charging thing, or maybe if it's possible, the low power mode. thanks again. regards, dave.

On 8/7/2021 at 10:18 PM, 1Revenger1 said:

My Dell M4700 has that message, but it's battery is atrocious (60% of original life I think?) so the messaging isn't too far off there :lol:
My X1 Extreme doesn't though, and I'm using VirtualSMC + SMCBatteryManager + ECEnabler (no ACPI patches at all needed)

I'm not quite how it determines if a battery needs servicing, but depending on how old it is, it might be accurate?

it is kinda new. this laptop is almost new. just changed the hard drive to a faster ssd. the battery is fully working on windows though. never had an issue with the battery on my other hackintoshes, but as i said, this thing is new to me. would appreciate someone's help. have a great day! thanks for your reply. regards, dave.

20 hours ago, STLVNUB said:

@1Revenger1wow I had to look twice I thought you where RevoGirl (RIP)

hey stlvnub. i would and i think everyone will appreciate only help replies. thanks. regards, dave.

Link to comment
Share on other sites

10 hours ago, davieees said:

hi slice! i don't mind. one which I can understand, i guess? i can do patching too. but i just need some tips, i am not an expert. kinda a newbie. i mean, i am watching tutorials on youtube, but it seems kinda hard. maybe some help, i would appreciate a lot. i tried one time to patch the dsdt but no luck. eh.. kexts? sure, but i dunno which ones. thanks for the reply. waitin' for your response. i mean, anything. i just want the optimized battery charging thing, or maybe if it's possible, the low power mode. thanks again. regards, dave.

 

Hi,

I just want to propose very other solution. To use it you have to exclude all kexts from previous solutions.

Not use VirtualSMC, SMCBattery

Not use FakeSMC with plugins from Rehabman.

Not use ACPIBatteryManager, not edit DSDT.

I want to propose you to use FakeSMC3+VoodooBattery. The link is in my signature. You also must install HWMonitor.app because it produces polling to change battery status.

Link to comment
Share on other sites

6 hours ago, Slice said:

Hi,

I just want to propose very other solution. To use it you have to exclude all kexts from previous solutions.

Not use VirtualSMC, SMCBattery

Not use FakeSMC with plugins from Rehabman.

Not use ACPIBatteryManager, not edit DSDT.

I want to propose you to use FakeSMC3+VoodooBattery. The link is in my signature. You also must install HWMonitor.app because it produces polling to change battery status.

hi slice. yeah, i tried. samething but i also have a new option under settings -> battery -> power adapter: (you can see it in the image below)

i remvoed virtualsmc, and the battery thing. haven't used fakesmc with plugins from rehabman. i used the fakesmc3 with the battery one. i installed the app, and nothing changed. what can i do more? also, new information in system report -> power (it has been changed due to the kexts i think, see the image below). should i do a dsdt patch? what patches to apply? i am a newbie as i said and would appreciate some help. thankies! regards, dave.

Screenshot 2021-08-09 at 3.51.32 PM.png

Screenshot 2021-08-09 at 3.51.51 PM.png

Screenshot 2021-08-09 at 3.51.55 PM.png

Screenshot 2021-08-09 at 3.51.19 PM.png

Screenshot 2021-08-09 at 3.51.27 PM.png

Edited by davieees
*battery -> power*
Link to comment
Share on other sites

35 minutes ago, Slice said:

Yes, it looks like the battery is near to end of life. Consider to replace it.

oh okie. thanks anyways for your patience to figure it out. i'll try to replace it with a new battery, maybe over 2000 mAh. thanks! wish you a wonderful day!

you can consider this case as resolved. regards, dave.

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

I believe that _BIF is the ACPI method for battery information and _BST is the ACPI method for battery status.  Leaving the post below for historical purposes.

 

The following from MBP6,2 ACPI shows the returned package sizes/formats for _BIF and _BST:

 

_BIF returns

                  Package (0x0D)
                        {
                            0x00, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0x01, 
                            0xFFFFFFFF, 
                            0xFA, 
                            0x64, 
                            0x0A, 
                            0x0A, 
                            " ", 
                            " ", 
                            " ", 
                            " "
                        }

 

_BST (Battery Status) returns

                        Package (0x04)
                        {
                            0x00, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF
                        }

 

============================================

 

Resurrecting this old post with the same issue of my own.  Does anyone know what ACPI method is used to read battery status?  Specifically, what method is used to read CurrentCapacity and DesignCapacity?  It seems to me that macOS is incorrectly reading either my battery's CurrentCapacity or DesignCapacity (or both).

 

Details below...

 

On my HackBookPro6,2, I am using FakeSMC3 and VoodooBatterySMC.kext.  I just noticed that battery status in my Menu Bar reports "Service Recommended."   Addition of ECEnabler.kext does not change the reported battery status.  I do not implement any battery ACPI patching.  Battery charge level (with percentage) seems to be properly displayed in my Menu Bar.  

 

Inspection of my IORegistry reveals that Current Capacity (fully charged) is much less than Design Capacity, so I suspect this is why macOS reports "Service Recommended."

 

Battery attributes in IORegistry

Spoiler

1402659844_ScreenShot2023-02-11at4_29_46PM.png.2f47113008c62c36696745428853921e.png

 

When I boot Windows 10, battery health is reported as OK.  It's a fairly new battery and the battery holds a charge for hours (which is amazing given that this is a 2010 laptop).  When running macOS, battery charges normally and battery discharge rate seems normal and battery level is displayed as what seems to be normally in the Menu Bar.

 

EDIT: The DesignCapacity 0x19c8 is 6600 decimal.  I think it is a 6600 mAh battery, so DesignCapacity appears to be read correctly.

 

EDIT2: Interesting ... This M$ document indicates that _BIX returns DesignCapacity, etc.  Neither my Dell ACPI nor a real MBP6,2 ACPI implement _BIX.

 

EDIT3: This document indicates that the method is _BIF.  _BIF looks to be the correct method common to PC and Mac ACPI.

Edited by deeveedee
  • Like 1
Link to comment
Share on other sites

7 hours ago, Jazzoo said:

I got "Service recommended" recently on my 7490. Battery holds good 5+ hours daily tasks. BIOS says "Excellent" condition. MacOS is either too sensitive in terms of battery health or just give us wrong information 😆

macOS is not able to read battery status. It is a hackintosh driver for battery affair.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Slice said:

macOS is not able to read battery status.

 

I was hoping to learn something by comparing my Dell Latitude E6410 ACPI to the ACPI of a real MBP6,2,  but only ended up more confused.  In the ACPI of a real MBP6,2, there is a single battery device, BAT0, and BAT0._STA returns 0 when running macOS:

 

BAT0._STA from real MBP6,2

Spoiler
                Scope (\_SB)
                {
                    Device (BAT0)
                    {
                        Method (_STA, 0, NotSerialized)
                        {
                            If (OSDW ())
                            {
                                Return (0x00)
                            }
						.
						.
						.
                        }

 

 

This is consistent with the IOReg from a real MBP6,2:

 

MBP6,2 IOReg

Spoiler

1483330908_ScreenShot2023-02-13at11_39_34AM.png.efc301d61cbbc5891f9885201a35d484.png

 

Looking further in the MBP6,2 IOReg shows where SmartBattery appears

Spoiler

2043253361_ScreenShot2023-02-13at11_40_18AM.png.ba13c538083b654c894bcb8a4e0ea801.png

 

Looking again at the MBP6,2 ACPI reveals two battery related methods that reference SMB0:

 

Spoiler
                        Method (UBIF, 0, NotSerialized)
                        {
                            \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x18, RefOf (Local0))
                            Multiply (Local0, 0x0A, Index (PBIF, 0x01))
                            \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x10, RefOf (Local0))
                            Multiply (Local0, 0x0A, Index (PBIF, 0x02))
                            \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x19, RefOf (Local0))
                            Store (Local0, Index (PBIF, 0x04))
                            \_SB.PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x21, RefOf (Local0))
                            Store (Local0, Index (PBIF, 0x09))
                            Store (Buffer (0x01)
                                {
                                    0x00
                                }, Index (PBIF, 0x0A))
                            \_SB.PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x22, RefOf (Local0))
                            Store (Local0, Index (PBIF, 0x0B))
                            \_SB.PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x20, RefOf (Local0))
                            Store (Local0, Index (PBIF, 0x0C))
                        }

                        Method (UBST, 0, NotSerialized)
                        {
                            \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x09, RefOf (Local2))
                            Store (Local2, Index (PBST, 0x03))
                            \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x0A, RefOf (Local0))
                            If (And (Local0, 0x8000))
                            {
                                Not (Local0, Local0)
                                And (Increment (Local0), 0xFFFF, Local0)
                            }

                            Multiply (Local0, Local2, Local0)
                            Divide (Local0, 0x03E8, , Index (PBST, 0x01))
                            \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x0F, RefOf (Local0))
                            Multiply (Local0, 0x0A, Index (PBST, 0x02))
                            Store (0x00, Local1)
                            If (PWRS)
                            {
                                \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x16, RefOf (Local0))
                                If (LNot (And (Local0, 0x40)))
                                {
                                    Store (0x02, Local1)
                                }
                            }
                            Else
                            {
                                Store (0x01, Local1)
                            }

                            Store (Local1, Index (PBST, 0x00))
                        }

 

It does appear that macOS is having no problem finding the battery information, since my hacks IOReg shows AppleSmartBattery.  Whether it is reading the battery information correctly is not clear.

Spoiler

1614489042_ScreenShot2023-02-13at1_07_06PM.png.0d4a71e3e97a81e33b9555553453d63b.png

 

Edited by deeveedee
Link to comment
Share on other sites

19 hours ago, 1Revenger1 said:

Check the acpi specification docs. Macs do battery status differently compared to other devices. The driver communicates over SMBus (through the EC) in the AppleECBusController driver if I’m remembering right. It’s not worth trying to compare the two’s acpi in this case.

 

My posted info here seems to validate your SMBUS/EC statement.  It is interesting that AppleSmartBattery is "attached" to my hack's BAT0 in IORegistry, so macOS is finding the battery info.

 

EDIT: I'm developing a better understanding/appreciation of VoodooBatterySMC.kext.  Without the kext, AppleSmartBattery does not discover my hack's battery info (no AppleSmartBattery appears under BAT0 in IORegistry).  Forgive my remedial posts about this, but I'm just learning this stuff.

 

IORegistry: BAT0 without VoodooBatterySMC.kext

Spoiler

2079529644_ScreenShot2023-02-13at4_03_50PM.png.ba7b53a9ee16a193ac346a976ed09151.png

 

EDIT: I have a HackBookPro15,2 that uses VirtualSMC and SMCBatteryManager.  With the Acidanthera kexts, AppleSmartBattery is not "attached" to BAT0, so clearly SMCBatteryManager's implementation of the SMC Battery spoofing is different than that of VoodooBatterySMC.

Edited by deeveedee
Link to comment
Share on other sites

19 hours ago, deeveedee said:

@Slice Does VoodooBatterySMC.kext read battery info using ACPI methods _BIF and _BST?  Is VoodooBatterySMC.kext interrupt driven or does it poll battery status?

Yes, it uses ACPI methods. It polls battery status but I am not sure if effectively so I propose to use HWMonitorSMC application which make additional polling 1 per second.

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...