Won’t your Linux laptop charge when the battery’s drained completely? This may fix it

I’ve got a dual-boot laptop that lets me switch between Windows 10 and Linux. The Linux distribution varies between Ubuntu 18.04 LTS, 18.10 and Fedora 29, but what I’m about to describe is the same for all of them.

Sometimes — for instance now over the holidays — my laptop can lay unused for days. If I was booted into Linux and did not shutdown the computer before closing, the battery slowly drains. After a few days it’s completely discharged.

When I connect the computer to AC power and boot Linux again, the charge remains at 0 %. It basically doesn’t charge, and the GUI is unable to calculate how much time remains before fully charged. Given that it actually doesn’t charge, that’s not surprising. At first, though, I thought that this maybe only was a reporting error. But running acpi from the command line verified the issue (“will never charge”).

A few Google searches tells me that I’m not alone in having this problem. People have suggested replacing the battery or even the charger itself. But I have never suspected that this is a hardware issue. Because if I boot into Windows the computer manages to recharge. It surprised me that software could have something to do with charging, something I’d always thought of as an hardware thing. But I didn’t bother researching it further; this cumbersome solution worked well enough, it was just a bit annoying.

But this Christmas I managed to delete my Windows partition and suddenly charging-by-Windows was no longer an option. So now I actually had to figure it out. My Google searches didn’t help, so for some reason I opened the BIOS setup (press and hold F2 when booting your computer to access this).

Under Advanced I found a setting called FlexiCharger. Apparently this is a mechanism to prevent the battery from both draining and charging completely. The idea is that this will improve battery longevity, although it somewhat decreases the time you can operate your computer on battery only, as your computer — ideally — will never be fully charged.

What it does isn’t important here; what’s important is that on my computer FlexiCharger was disabled.

I pressed Enter and enabled it. I didn’t know what to enter, so I set stop charge to 100 %. As I understand it I should set it to around 80 %, but battery longevity wasn’t the issue here — getting it to charge was, so I didn’t bother adjusting this at the time (maybe I will now).

My guess is that the values here is not important for solving the charge issue, so enter whatever you like here. In my case the settings looked like this when I had enabled the function:

I saved these settings and rebooted into Linux. And lo and behold! The computer charged again!

Why this helps beats me — I guess the minimum charge settings has something to do with it. Maybe it’s forcing a charge up to 40 % when the hardware discovers it’s below that. I don’t know. I’m just glad that it helped.

Hopefully this may be a solution for you too, should you have the same issue as me.