Problem with Lenovo battery threshold

I recently installed Linux on my Lenovo Ideapad 320, but I forgot to disable conservation mode from Lenovo vantage with Windows 10. The problem is that now my PC doesn't charge over 60%. I already tried with tlp but it doesn't seem to work.

How can I return to default thresholds (100%)?


Solution 1:

The battery conservation mode is enabled with:

$ echo '\_SB.PCI0.LPCB.EC0.VPC0.SBMC 3' | sudo tee /proc/acpi/call

It can be disable with:

$ echo '\_SB.PCI0.LPCB.EC0.VPC0.SBMC 5' | sudo tee /proc/acpi/call

On Debian/Ubuntu you should install the package acpi-call-dkms

(Credits: ArchLinux wiki - Lenovo IdeaPad 720s)

The just mentioned wiki page refers to the IdeaPad 720s, on my IdeaPad 320 I've double check on the BIOS DSDT table and it seems to be the same. Browsing the web, I've found a case where the proper code to enable it was 4 (instead of 3) but 5 was used to disable it in any case.

Edit Edit Edit

The battery conservation mode is now exposed via the kernel module ideapad-laptop, so just load the module and then use:

# to read the current status
cat /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode

# to enable
echo 1 > /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode

# to disable
echo 0 > /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode

Solution 2:

The simple solution would be to reboot Windows 10 and set the threshold to 100%.

You should always keep Windows installed (but reduce it's size) so you can install new drivers, boot into it if Ubuntu breaks and as you point out to change battery charge threshold.

Solution 3:

The question asks how to disable conservation mode. My issue was the opposite: I wanted to activate conservation mode. After booting I was always having 0 and going to 100% in the battery charge.

If you run cat /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode, you will get 1 or 0 as the output. 1 means conservation_mode is activated. 0 means it's disabled.

To enable conservation mode, my solution was to edit this file:

sudo gedit /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode

and change 1 to 0.

While this solved my problem, I still could not figure out how to make the change permanent in Windows or Ubuntu.