RehabMan / OS-X-ACPI-Battery-Driver

Implements an Advanced Configuration and Power Interface (ACPI) based battery manager kernel extension (kext/driver) for non-Apple laptops running OS X.
Other
178 stars 58 forks source link

Issue with ACPI-Battery #7

Closed Vmonheros closed 10 years ago

Vmonheros commented 10 years ago

I use your last BatteryManager kext (download from here) and I encounter an "issue" with it about the battery status icon.

When I'm charging the battery, normal icon (the battery with the "power" inside). However, when the battery is finished to be charge, the battery icon change to the default battery one - the one you've got in fact when you're on battery (and normally discharging it) remaining at 100% charge (and when I check the status, it says that the power is coming from battery, not from wall plug). So, the icon didn't change to the normal "electrical plug" one. It is the same if I remove the charger, let the battery discharge only few % (I know that in this case, battery will not charge after to avoid "memory" ) and plug again the transformer on the laptop, the battery icon doesn't change and remain "on battery"... However, for sure, battery % didn't decrease...

I don't have this behavior (in fact I've got the normal one) with the Zprood kext (the old from) from here http://www.insanelymac.com/forum/topic/272...nager-for-lion/. However, this kext is not able to read correctly battery count cycle for my battery.

So, can I help you to track this ?

Thanks.

Fred.

P.S.: I've got an Asus Zenbook UX32LN patched with your MacIASL "repository" change 4.08. I can forward you my patched DSDT and SSDTs if necessary.

RehabMan commented 10 years ago

Post DSDT. And ioreg when it is showing the incorrect state. Use IORegistryExplorer v2.1.

Vmonheros commented 10 years ago

Here the required information.

You've got the original & patched DSDTs, and also 2 Ioregistrys, one with your last kext + the other one from Zprood kext (I just reboot after replacing your kext by Zprood one).

Note that in this case, I've got the "battery" with 100% power with your kext, and the "normal" battery with power plug inside with Zprood one. Your kext say that my power source is battery, Zprood one says power is transformer.

As I said previously, it only occurs when the battery is completely charged, or discharged so slightly (just a few % under 100) that default behavior is not to charge it even if we plug the transformer.

Here the link for the files

https://drive.google.com/folderview?id=0B6xzsYEopnzNQ3d0LVpaeTg2WDA&usp=sharing

Thanks.

Vmonheros commented 10 years ago

Hi RehabMan, have you got some news on this topic ? Is there something I can do to help you ?

RehabMan commented 10 years ago

Install debug version of ACPIBatteryManager.kext and provide logs from system.log.

Also, what is output from 'kextstat|grep battery'?

Vmonheros commented 10 years ago

Hi

I upload your debug kext version.

Here the output of my kextstat

1 57 0xffffff7f807e3000 0x8d80 0x8d80 com.apple.kpi.bsd (13.3.0) 2 7 0xffffff7f80b97000 0x28c0 0x28c0 com.apple.kpi.dsep (13.3.0) 3 79 0xffffff7f807ac000 0x1dfb0 0x1dfb0 com.apple.kpi.iokit (13.3.0) 4 84 0xffffff7f807ca000 0xbf40 0xbf40 com.apple.kpi.libkern (13.3.0) 5 69 0xffffff7f807a9000 0x2d10 0x2d10 com.apple.kpi.mach (13.3.0) 6 35 0xffffff7f807d6000 0x7d90 0x7d90 com.apple.kpi.private (13.3.0) 7 57 0xffffff7f807de000 0x48e0 0x48e0 com.apple.kpi.unsupported (13.3.0) 8 2 0xffffff7f80b9d000 0x47000 0x47000 com.apple.kec.corecrypto (1.0) <7 6 5 4 3 1> 9 0 0xffffff7f80c5c000 0xb000 0xb000 com.apple.kec.pthread (1) <7 6 5 4 1> 10 19 0xffffff7f81125000 0x9000 0x9000 com.apple.iokit.IOACPIFamily (1.4) <7 6 4 3> 11 19 0xffffff7f808be000 0x2f000 0x2f000 com.apple.iokit.IOPCIFamily (2.9) <7 6 5 4 3> 12 2 0xffffff7f82290000 0x5f000 0x5f000 com.apple.driver.AppleACPIPlatform (2.0) <11 10 7 6 5 4 3 1> 13 1 0xffffff7f80e49000 0xb000 0xb000 com.apple.driver.AppleFDEKeyStore (28.30) <8 7 6 5 4 3 1> 14 2 0xffffff7f81114000 0x11000 0x11000 com.apple.iokit.IOReportFamily (23) <5 4 3> 15 3 0xffffff7f807ec000 0x2d000 0x2d000 com.apple.iokit.IOStorageFamily (1.9) <7 6 5 4 3 1> 16 0 0xffffff7f811e4000 0x1e000 0x1e000 com.apple.driver.DiskImages (371.1) <15 7 6 5 4 3 1> 17 2 0xffffff7f8188f000 0x1d000 0x1d000 org.netkas.driver.FakeSMC (1323) <10 7 5 4 3 1> 18 0 0xffffff7f81f7f000 0x14000 0x14000 com.apple.driver.AppleKeyStore (2) <8 7 6 5 4 3 1> 19 0 0xffffff7f8230a000 0xa000 0xa000 org.rehabman.driver.AppleSmartBatteryManager (1.52) <10 4 3> 20 0 0xffffff7f818e9000 0x5000 0x5000 org.hwsensors.driver.CPUSensors (1323) <17 7 5 4 3> 21 0 0xffffff7f80b9a000 0x3000 0x3000 com.apple.security.TMSafetyNet (7) <7 6 5 4 2 1> 22 2 0xffffff7f80c3b000 0x5000 0x5000 com.apple.kext.AppleMatch (1.0.0d1) <4 1> 23 1 0xffffff7f80c40000 0x14000 0x14000 com.apple.security.sandbox (278.11.1) <22 7 6 5 4 3 2 1> 24 0 0xffffff7f80c54000 0x7000 0x7000 com.apple.security.quarantine (3) <23 22 7 6 5 4 2 1> 25 0 0xffffff7f82300000 0x8000 0x8000 com.apple.nke.applicationfirewall (153) <7 6 5 4 3 1> 26 0 0xffffff7f82264000 0x3000 0x3000 com.apple.driver.AppleAPIC (1.7) <4 3> 27 2 0xffffff7f810a6000 0x4000 0x4000 com.apple.iokit.IOSMBusFamily (1.1) <5 4 3> 28 0 0xffffff7f822ef000 0x7000 0x7000 com.apple.driver.AppleACPIEC (2.0) <27 12 10 5 4 3> 29 0 0xffffff7f81e7c000 0x4000 0x4000 com.apple.driver.AppleSMBIOS (2.1) <7 4 3> 30 0 0xffffff7f8219f000 0x3000 0x3000 com.apple.driver.AppleHPET (1.8) <10 7 5 4 3> 31 0 0xffffff7f81ea8000 0x7000 0x7000 com.apple.driver.AppleRTC (2.0) <10 5 4 3 1> 32 2 0xffffff7f81eff000 0xd000 0xd000 org.emlydinesh.driver.ApplePS2Controller (3.8.8) <10 7 5 4 3 1> 33 3 0xffffff7f80e54000 0x85000 0x85000 com.apple.iokit.IOHIDFamily (2.0.0) <13 7 6 5 4 3 2 1> 34 0 0xffffff7f822f9000 0x4000 0x4000 com.apple.driver.AppleACPIButtons (2.0) <33 12 10 7 6 5 4 3 1> 35 0 0xffffff7f818f1000 0x8000 0x8000 org.hwsensors.driver.ACPISensors (1323) <17 10 7 5 4 3> 36 1 0xffffff7f82237000 0x5000 0x5000 com.apple.driver.AppleEFIRuntime (2.0) <7 6 5 4 3> 37 0 0xffffff7f8223c000 0xa000 0xa000 com.apple.driver.AppleEFINVRAM (2.0) <36 7 6 5 4 3> 38 0 0xffffff7f821d4000 0x2000 0x2000 net.osrom.kext.Disabler (1.0.1) <4 3> 39 4 0xffffff7f80d84000 0x34000 0x34000 com.apple.iokit.IONetworkingFamily (3.2) <7 6 5 4 3 1> 40 1 0xffffff7f813d7000 0x7000 0x7000 com.apple.driver.mDNSOffloadUserClient (1.0.1b5) <39 4 3 1> 41 1 0xffffff7f813de000 0x80000 0x80000 com.apple.iokit.IO80211Family (640.36) <39 7 6 5 4 3 1> 42 0 0xffffff7f8145e000 0x3be000 0x3be000 com.apple.driver.AirPort.Brcm4360 (842.21.65) <41 40 39 11 7 5 4 3 1> 44 9 0xffffff7f80dc5000 0x6d000 0x6d000 com.apple.iokit.IOUSBFamily (683.4.0) <11 7 5 4 3 1> 45 0 0xffffff7f80f66000 0x18000 0x18000 com.apple.driver.AppleUSBEHCI (660.4.0) <44 11 7 5 4 3 1> 46 1 0xffffff7f81f0c000 0xc000 0xc000 org.emlydinesh.driver.ApplePS2Keyboard (3.8.8) <33 32 7 6 5 4 3 1> 47 2 0xffffff7f8138c000 0x19000 0x19000 com.apple.iokit.IOAHCIFamily (2.6.5) <5 4 3 1> 48 0 0xffffff7f82269000 0x1a000 0x1a000 com.apple.driver.AppleAHCIPort (3.0.5) <47 11 5 4 3 1> 49 0 0xffffff7f81bce000 0x9000 0x9000 com.apple.BootCache (35) <7 6 5 4 3 1> 50 0 0xffffff7f82221000 0x4000 0x4000 com.apple.AppleFSCompression.AppleFSCompressionTypeZlib (1.0.0d1) <6 4 3 2 1> 51 0 0xffffff7f82227000 0x5000 0x5000 com.apple.AppleFSCompression.AppleFSCompressionTypeLZVN (1.0.0d1) <6 4 3 2 1> 52 0 0xffffff7f8222e000 0x3000 0x3000 com.apple.AppleFSCompression.AppleFSCompressionTypeDataless (1.0.0d1) <7 6 4 3 2 1> 54 0 0xffffff7f80e46000 0x3000 0x3000 com.apple.iokit.IOUSBUserClient (660.4.2) <44 7 5 4 3 1> 55 0 0xffffff7f80f47000 0x18000 0x18000 com.apple.driver.AppleUSBHub (683.4.0) <44 5 4 3 1> 56 0 0xffffff7f813b2000 0x18000 0x18000 com.apple.iokit.IOAHCIBlockStorage (2.6.0) <47 15 6 5 4 3 1> 57 0 0xffffff7f81d0d000 0x3000 0x3000 com.apple.driver.XsanFilter (404) <15 5 4 3 1> 59 1 0xffffff7f80ee2000 0x7000 0x7000 com.apple.driver.AppleUSBComposite (656.4.1) <44 4 3 1> 60 8 0xffffff7f81191000 0x43000 0x43000 com.apple.iokit.IOGraphicsFamily (2.4.1) <11 7 5 4 3 1> 61 2 0xffffff7f81fce000 0x72000 0x72000 com.apple.iokit.IOAcceleratorFamily2 (98.22) <60 11 7 6 5 4 3 1> 62 2 0xffffff7f820b8000 0x6000 0x6000 com.apple.AppleGraphicsDeviceControl (3.6.22) <7 6 5 4 3 1> 63 0 0xffffff7f820be000 0x68000 0x68000 com.apple.driver.AppleIntelFramebufferAzul (8.2.8) <62 61 60 14 11 10 7 6 5 4 3 1> 64 1 0xffffff7f811d4000 0x10000 0x10000 com.apple.iokit.IONDRVSupport (2.4.1) <60 11 7 5 4 3> 65 1 0xffffff7f81091000 0x15000 0x15000 com.apple.iokit.IOSurface (91.1) <7 5 4 3 1> 66 0 0xffffff7f82040000 0x51000 0x51000 com.apple.driver.AppleIntelHD5000Graphics (8.2.8) <65 61 60 11 7 5 4 3 1> 68 0 0xffffff7f8217b000 0x3000 0x3000 com.apple.driver.AppleHWAccess (1) <7 5 4 3> 69 3 0xffffff7f81138000 0x15000 0x15000 com.apple.driver.AppleSMC (3.1.8) <10 7 5 4 3 1> 70 0 0xffffff7f81901000 0x5000 0x5000 com.apple.Dont_Steal_Mac_OS_X (7.0.0) <69 7 4 3 1> 71 4 0xffffff7f8112e000 0xa000 0xa000 com.apple.driver.IOPlatformPluginFamily (5.7.1d6) <10 7 6 5 4 3> 72 0 0xffffff7f81f77000 0x3000 0x3000 com.apple.driver.AppleLPC (1.7.0) <71 11 5 4 3> 73 1 0xffffff7f80b25000 0x12000 0x12000 com.apple.kext.OSvKernDSPLib (1.14) <5 4> 74 1 0xffffff7f80b37000 0x37000 0x37000 com.apple.iokit.IOAudioFamily (1.9.7fc2) <73 5 4 3 1> 75 0 0xffffff7f80b6e000 0x21000 0x21000 org.voodoo.driver.VoodooHDA (2.8.6) <74 11 7 5 4 3> 76 0 0xffffff7f81e68000 0x3000 0x3000 com.apple.driver.AppleSMBusPCI (1.0.12d1) <11 5 4 3> 77 1 0xffffff7f81e6b000 0x11000 0x11000 com.apple.driver.AppleSMBusController (1.0.12d1) <27 11 10 5 4 3> 78 0 0xffffff7f81f3d000 0xe000 0xe000 com.apple.driver.AppleMCCSControl (1.2.5) <77 60 11 10 7 5 4 3 1> 79 0 0xffffff7f82319000 0x3000 0x3000 com.darwin.driver.ACPIBacklight (2.0.2) <60 10 4 3> 82 1 0xffffff7f8114d000 0x11000 0x11000 com.apple.driver.X86PlatformPlugin (1.0.0) <71 69 44 10 7 6 5 4 3 1> 86 0 0xffffff7f81f18000 0x13000 0x13000 org.emlydinesh.driver.ApplePS2ElanTouchpad (3.8.8) <46 33 32 7 6 5 4 3 1> 89 0 0xffffff7f812ab000 0xad000 0xad000 com.apple.iokit.IOBluetoothFamily (4.2.6f1) <44 14 7 5 4 3 1> 90 0 0xffffff7f80db8000 0x7000 0x7000 com.apple.iokit.IOUserEthernet (1.0.0d1) <39 6 5 4 3 1> 91 0 0xffffff7f81d62000 0x5000 0x5000 com.apple.driver.AppleUpstreamUserClient (3.5.13) <60 11 10 7 5 4 3 1> 93 0 0xffffff7f80f40000 0x7000 0x7000 com.apple.driver.AppleUSBMergeNub (650.4.0) <59 44 4 3 1> 94 1 0xffffff7f81284000 0x1d000 0x1d000 com.apple.iokit.IOBluetoothHostControllerUSBTransport (4.2.6f1) <44 11 10 7 5 4 3 1> 95 0 0xffffff7f812a1000 0x7000 0x7000 com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport (4.2.6f1) <94 44 11 10 7 5 4 3> 96 0 0xffffff7f8115e000 0x6000 0x6000 com.apple.driver.X86PlatformShim (1.0.0) <82 71 69 7 4 3> 97 0 0xffffff7f81f30000 0x4000 0x4000 com.apple.driver.ApplePlatformEnabler (2.0.9d6) <7 5 4 3> 98 0 0xffffff7f821d7000 0x13000 0x13000 com.apple.driver.AGPM (100.14.28) <71 64 62 60 11 5 4 3> 99 0 0xffffff7f8087c000 0x31000 0x31000 com.apple.iokit.IOSCSIArchitectureModelFamily (3.6.6) <5 4 3 1> 100 1 0xffffff7f810af000 0x11000 0x11000 com.apple.iokit.IOSerialFamily (10.0.7) <7 6 5 4 3 1> 101 0 0xffffff7f81270000 0xa000 0xa000 com.apple.iokit.IOBluetoothSerialManager (4.2.6f1) <100 7 5 4 3 1> 102 1 0xffffff7f80be4000 0x5000 0x5000 com.apple.kext.triggers (1.0) <7 6 5 4 3 1> 103 0 0xffffff7f81bd9000 0x9000 0x9000 com.apple.filesystems.autofs (3.0) <102 7 6 5 4 3 1>

As line 19, you can see 19 0 0xffffff7f8230a000 0xa000 0xa000 org.rehabman.driver.AppleSmartBatteryManager (1.52) <10 4 3>. So your kext is correctly uploaded.

I will charge my battery again, and provide you the output of my log when my battery is full, as it's at this time that I've got "my issue"

Vmonheros commented 10 years ago

Hi,

I did the test. So, you will see in log "battery charging", and at the end of the charge (12h38min37s), we go to "Battery discharging". However, I didn't unplug the charger at this time !

You will find the log at my google drive https://drive.google.com/folderview?id=0B6xzsYEopnzNQ3d0LVpaeTg2WDA&usp=sharing

RehabMan commented 10 years ago

This section here is I think where you're referring to...

Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: acpibat_bst size = 4
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fPowerUnit       = 0x0
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: currentStatus    = 0x2
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentRate     = 0x90e
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentCapacity = 0xb030
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentVoltage  = 0x2c2e
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: Calculating for WATTS
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentRate = 204
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentCapacity = 3987
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fAverageRate = 0xd3
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery: Battery is charging.
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::constructAppleSerialNumber called
Aug  9 12:38:21 air-de-frederic kernel[0]: AppleSmartBattery::rebuildLegacyIOBatteryInfo called
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBatteryManager: polling battery state
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::pollBatteryState: path = 0x1
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBatteryManager::getBatterySTA called
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatterySTA: battery_status = 0x1f
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBatteryManager::getBatteryBIX called
Aug  9 12:38:37 air-de-frederic kernel[0]: ACPIACAdapter::message: type: E0028010 provider: AC0
Aug  9 12:38:37 air-de-frederic kernel[0]: ACPIACAdapter::message setting AC connected
Aug  9 12:38:37 air-de-frederic kernel[0]: BatteryTracker::notifyBatteryManagers: entering notifyBatteryManager(connected)
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBIX: acpibat_bix size = 20
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBatteryManager::getBatteryBST called
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: acpibat_bst size = 4
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fPowerUnit       = 0x0
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: currentStatus    = 0x1
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentRate     = 0x8f7
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentCapacity = 0xb178
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentVoltage  = 0x2c2e
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: Calculating for WATTS
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentRate = 202
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentCapacity = 4016
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery::setBatteryBST: fAverageRate = 0xce
Aug  9 12:38:37 air-de-frederic kernel[0]: AppleSmartBattery: Battery is discharging.

If you did not unplug the power at this time, then your issue is a DSDT issue. According to _BST, your battery is discharging at a rate of 202 mA.

Vmonheros commented 10 years ago

Hi.

No, I didn't unplug the power at this time. For DSDT, I use the battery patch you did for Asus N55SL/Vivobook (and some Asus Zenbook). It works with Zprood battery manager.

I gave you inside my link my original and patched DSDT. I must admit that pointers are welcome here !

RehabMan commented 10 years ago

I think you're going to have to figure out why your DSDT _BST reports status 0x01 (battery discharging) upon full charge with AC power still connected. You can use my ACPIDebug.kext to figure it out.

Vmonheros commented 10 years ago

Hi,

I re-did all my DSDT corrections. Informations provided by _BST are OK now (seems that I badly applied the battery corrections the last time), but I've always got the same behavior. Here a small trace of the logs.

16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::pollingTimeOut called 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::pollBatteryState: path = 0x2 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::pollBatteryState: path = 0x1 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBatteryManager::getBatterySTA called 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatterySTA: battery_status = 0x1f 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBatteryManager::getBatteryBIX called 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBIX: acpibat_bix size = 20 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBatteryManager::getBatteryBST called 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: acpibat_bst size = 4 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: fPowerUnit = 0x0 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: currentStatus = 0x1 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentRate = 0x0 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentCapacity = 0xb41e 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentVoltage = 0x2c2e 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: Calculating for WATTS 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentRate = 0 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: fCurrentCapacity = 4076 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::setBatteryBST: fAverageRate = 0x0 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery: Battery is discharging. 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::constructAppleSerialNumber called 16/08/2014 16:54:02,000 kernel[0]: AppleSmartBattery::rebuildLegacyIOBatteryInfo called

FCurrentRate = 0, so 0 charge or discharge at this time... Normal, battery is at 100% and the power is plug. But, in this case, why I've got "Battery is discharging" here ?

Furthermore, if I look with "information system", it says in "Power" that my battery is not charging, but also that my power is unplugged.

Note that when the battery is charging, I've got battery is charging & power plugged correctly reported.

I also use your ACPIBacklight driver. When I unplug the power, the screen backlight doesn't changed also.

If I switch your kext with the Zprood one, and reboot, I've got the right icon (so my battery is full & that I'm on power), the right charger "plug in" in "Information System" and your ACPI Backlight driver detects when my power is plug & unplugged and so changes the backlight of my screen.

So the issue seems to be in the power plug/unplug detection. Have you got some trick on how to trace that ?

I yet found in log the

Aug 16 17:14:44 air-de-frederic kernel[0]: ACPIACAdapter::message: type: E0028010 provider: AC0 Aug 16 17:14:44 air-de-frederic kernel[0]: ACPIACAdapter::message setting AC disconnected

and

Aug 16 17:14:53 air-de-frederic kernel[0]: ACPIACAdapter::message: type: E0028010 provider: AC0 Aug 16 17:14:53 air-de-frederic kernel[0]: ACPIACAdapter::message setting AC connected

So for me "power" status is correctly detected by ACPIACAdapter.

P.S.: I updated my google drive share with my update DSDT

RehabMan commented 10 years ago

Your DSDT is still reporting the wrong value for _BST fCurrentStatus. It should report zero (0) when there is no discharging or charging.

I could special case it in the kext, but I see no reason to do so. You should change your DSDT so it is compliant with the spec.

Vmonheros commented 10 years ago

Hi.

You were right. Thanks to ACPIDebug, I hunt bit inside my DSDT, to find where is define fCurrentStatus. As you pointed me on _BST, it helps...

The culprit is here, inside method FBST (called inside _BST)

Store (Zero, Local0) If (^^LPCB.EC0.ACAP ()) { Store (One, Local0) }

So Local0=1 if the laptop is on power, fine ;) If (Local0) { If (CHGS (Zero)) => here CHGS =0 id battery is charging { Store (0x02, Local0) } Else { Store (One, Local0) ==== The error is here, if I'm on power and battery is not charging, we must store zero, not one ! } } Else { Store (One, Local0) }

With this "small" correction, everything works well now.

Thanks for all the hints !!!

RehabMan commented 10 years ago

Makes sense. Glad you have it working...

dhnguyen92 commented 9 years ago

Can you add this to your DSDT patch repo? I saw many laptops with same problem.

RehabMan commented 9 years ago

Not possible to create a generic patch. It will always be DSDT/machine specific.

klydra commented 5 years ago

Hey @RehabMan , I experienced the same issue. Could you help me too? I provided the information according to your battery patching guide. report.zip

RehabMan commented 5 years ago

Requires analysis of your battery related code in ACPI.