Skip to content

Latest commit

 

History

History
172 lines (83 loc) · 5.01 KB

README.md

File metadata and controls

172 lines (83 loc) · 5.01 KB

ACPIBatteryManager by RehabMan

How to Install:

Install the kext using your favorite kext installer utility, such as Kext Wizard. The Debug director is for troubleshooting only, in normal "working" installs, you should install the Release version.

Please read this post if you need to make DSDT edits: http://www.tonymacx86.com/mavericks-laptop-support/116102-how-patch-dsdt-working-battery-status.html

Downloads:

Downloads are available on Bitbucket:

https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloads

Archived builds are available on Google Code:

https://code.google.com/p/os-x-acpi-battery-driver/downloads/list

Build Environment

My build environment is currently Xcode 7.3, using SDK 10.8, targeting OS X 10.6.

No other build environment is supported.

32-bit Builds

Currently, builds are provided only for 64-bit systems. 32-bit/64-bit FAT binaries are not provided. But you can build your own should you need them. I do not test 32-bit, and there may be times when the repo is broken with respect to 32-bit builds, but I do check on major releases to see if the build still works for 32-bit.

Here's how to build 32-bit (universal):

  • xcode 4.6.3
  • open ACPIBatteryManager.xcodeproj
  • click on ACPIBatteryManager at the top of the project tree
  • select ACPIBatteryManager under Project
  • change Architectures to 'Standard (32/64-bit Intel)'

probably not necessary, but a good idea to check that the targets don't have overrides:

  • multi-select all the Targets
  • check/change Architectures to 'Standard (32/64-bit Intel)'
  • build (either w/ menu or with make)

Or, if you have the command line tools installed, just run:

  • For FAT binary (32-bit and 64-bit in one binary) make BITS=3264

  • For 32-bit only make BITS=32

Source Code:

The source code is maintained at the following sites:

https://github.com/RehabMan/OS-X-ACPI-Battery-Driver

https://bitbucket.org/RehabMan/os-x-acpi-battery-driver

Feedback:

Please use this thread on tonymacx86.com for feedback, questions, and help:

http://www.tonymacx86.com/hp-probook/69472-battery-manager-fix-boot-without-batteries.html

Known issues:

  • Most DSDTs need to be patched in order to work properly with OS X.

  • OS X does not deal well with dual-batteries: Consider SSDT-BATC, which will combine two batteries to a single battery.

Change Log:

2016-05-31 v1.70.0

  • added SSDT-BATC.dsl which allows multiple batteries to be dealt with as a single ACPI battery

  • changed the code that responds to battery notifications so it is not sensitive to incorrect remove/add flags

  • misc cleanup

2015-12-30 v1.60.5

  • Fixed bug with zero length dictionary (ACPI-based configuration)

  • correct capacities only if non-zero

  • change StartupDelay to 0ms

2015-11-09 v1.60.4

  • added configurable StartupDelay

  • changed default StartupDelay from 500ms to 50ms

2015-10-29 v1.60.3

  • Add correction for capacities that don't conform to OS X expectations (CurrentCapacity<=MaxCapacity<=DesignCapacity)'

2015-09-30 v1.60

  • Add CurrentDischargeRateMax configuration key as a way to cap the discharge rate against bad data from ACPI _BST

  • Add ACPI method for overriding configuration data in Info.plist. See config_override.txt for more info

2015-01-23 v1.55

  • Add 500ms delay before polling initial battery state (_STA) to account for battery devices at are not ready early in the boot process. This avoids dimming the display when booting on battery, as the system doesn't detect it as a battery present->battery removed transition.

  • some minor fixes for watts when CurrentRate is ACPI_UNKNOWN

  • debug messages are now in decimal

2014-10-16 v1.53

  • added debug output for _BIX

2014-02-07 v1.52

  • Fix deadlock caused by changes made for multiple batteries. See issue #3.

  • When determining if other batteries are discharging, ignore batteries that are not connected. See issue #2.

  • To provide AC status changes quicker after an AC change, poll battery objects more often after such a change. See issue #4.

2014-01-21 v1.51

  • Some fixes related to multiple batteries. Work in progress.

2013-12-04 v1.50

  • Added ACPIACAdapter implementation, which implemeents an ACPI compliant object to track status changes of the AC adapter. As the status change, the battery objects are notified.

prior fixes:

  • I didn't really track a change log prior to now. Read the threads linked or the commit log in git.

History

See original post at: http://www.insanelymac.com/forum/index.php?s=bfca1f05adde52f77c9d5c0caa1250f7&showtopic=264597&view=findpost&p=1729132

See updated wiki documentation at: https://github.com/gsly/OS-X-ACPI-Battery-Driver/wiki

Original Credits

Most of the base code for AppleSmartBatteryManager and AppleSmartBattery created by gsly on insanelymac.com, no doubt with influences from the many other ACPI battery implementations that were out there.

Other ideas brought in by myself, some borrowed from zprood on insanelymac.com.

RehabMan - recent enhancements/bug fixes Zprood - cycle count hack in _BIF gsly - base code for RehabMan enhancements