[LINUX] Upgrading to 0.23 With DSDT Fixes May Have Broken Battery and Power

Using this as a placeholder for now - mainly to see if others are having the same issue.

After upgrading to 0.23, and using the DSDT CPIO image, sysfs for both /sys/class/power_supply devices no longer works (the directory is completely empty). This prevents power tools from working properly. As soon as I remove the DSDT initrd image from boot, both BAT0 and ADP1 display and work properly.

Any ideas @PeterCxy?

1 Like

the DSDT hack probably needs to be rebased to the newer firmware. This is why I ended up writing the kernel patch because it can free us from doing this each time a BIOS update breaks the hack.

1 Like

I would probably update the DSDT hack at some point but I’d suggest maybe someone can do a prebuilt kernel with my patches on LKML so that no such things would happen again.

My patches would need to be based on gpio/for-next though. Only the v1 version can be applied to the current kernel.

1 Like

I’ll probably build a patched kernel for ArchLinux and put PKGBUILD on AUR and prebuilt package in archlinuxcn repo. Frankly I’ll most likely be tired with updating the DSDT thing soon so with a proper package and packaging bot it would be better.

1 Like

I’m unsure if related but I’ve noticed a considerable decrease in battery life on Ubuntu Mate 19.10 (alpha) with version 0.23 bios. Compared with 0.22 bios.

@PeterCxy Thanks for the update! I will just do without the touchscreen.

FYI - I just learned that you cannot go down in BIOS versions when attempting to go from 0.23 -> 0.22. I tried both the EFI shell method and in Windows with no luck. It reads the flash, then fails on erasing/writing the update. A “fresh” flash of 0.23 worked fine. Maybe there’s some override params that need to be pushed to the afuefix64.efi line?


Just my 5 cents (not even sure if it’s relevant). If you ‘unpack’ the 0.23 BIOS exe (I used simple extract in 7zip) it gives something like 10 files. Including multiple bat files, the BIOS .bin image itself (which is 8MB), couple of sys drivers and there’s a GUI tool for flashing even. That tool can be used to query current bios version (in a non-console way), it can open .bin files, has multiple options for flashing and so on. I didn’t use it on older versions yet.