Can't get battery status to work (OpenCore, Thinkpad X250)

So far I have succeeded in installing Catalina using OpenCore 0.6.0 on my Lenovo Thinkpad X250 following the Dortania guide. Now I am trying to enable battery monitoring , but I can't get it to work. Am I doing something wrong? Any help would be greatly appreciated!

This is what I did:

  • I copied SMCBatteryManager.kext to my Kexts folder and added it to config.plist.
  • I extracted DSDT.aml using SSDTtime on linux during install.
  • I decompiled it on MacOS to get a DSDT.dsl: iasl -da -dl DSDT.aml
  • I tried patching it using Rehabmans guide. It caught my attention that this process was very similar to these patches (for Thinkpad X230 and others), except for:
    • My embedded controller is called EC0, while the example patches a situation where it is called EC
    • There is an extra ocurrence of HWAC, which I patched as well.
    • Result (or diff)
    • Now the DSDT compiles using MacIASL
  • I compiled the DSDT as ASL by chosing 'Save as...' in MacIASL, and saved it as DSDT.asl in /EFI/OC/ACPI.
  • I added DSDT.aml as a first entry in the ACPI-block in config.plist

Now, this does not work. I don't get a battery indicator. When I go to 'energy saver' settings in MacOS. It says the battery is at 0%, and when I click the checkmark to add battery state to the menu bar, it briefly flashes an icon there, but immediately turns off the setting again.

While booting; i am seeing this message:

SMCBatteryManager smcbus: @ BatteryManager probe failure SMCBatteryManager bmgr: @ failed to find batteries or adapters!

(Can I view this logs somewhere after booting? It is not in the opencore-{timestamp}.txt files which are generated at every boot )

Some things I tried:

  • I tried using SSDT-BATT.aml from the apparently succesful installation on a X250 found here. - When I decompiled the SDST, it refers to EC, while my DSDT has a EC0. It also calls the OperationRegion BRAM, while I see it being called ECOR. I tried editing and recompiling it (by opening it in MacIASL and saving again), but no luck.
  • I tried this SSDT-BATT.dsl because it is referenced in this X250 Clover guide. Again, it refers to a EC, so I tried editing it to EC0.
  • My computer has dual batteries, so I tried adding SSDT-BATC.aml:
    • I tried the one found in SMCBatteryManager.kext/Contents/Resources
    • I tried an (edited) SSDT-BATC.aml from the previous source on a sucessful X250 install.
    • I tried adding SSDT-NTFY.aml to fix the Notify ( ...BAT{0,1}... ) from this repository on the Thinkpad T460s, a similar machine.
    • (Is it actually necessary to fix the dual-battery stuff at once, or can I try to handle it later, separately from getting battery monitoring working at all?)
  • I have a SSDT-EC.aml generated by SSDTTime to create a fake-EC (?). And I have this block 'rename EC to EC0' in config.plist (I think also from SSDTTime?). I tried disabling the SSDT, turning the rename around (to create 'rename EC0 to EC'), and using an SSDT that referes EC.

Does somebody have any advice on what I might be doing wrong? Would mean a lot to me!

submitted by /u/nrkms
[link] [comments]