Lenovo Ideapad battery conservation mode on GNU/Linux

For the last few weeks, I have been using Arch Linux as my main OS, but I have had to boot Windows 10 every day just to enable the battery conservation mode.

Today, I finally found a way to enable battery conservation mode directly from Arch Linux. You may want to read the posts at the following links, or just skip to the solutions down below.

Solutions #

Three different solutions were suggested in the posts. The first one, explained in this forum reply requires a Windows installation and Lenovo Vantage app installed to enable the battery conservation mode and monitor which byte actually changed using RWEverything. I did not personally test this solution because the next two solutions were easier and worked for me.

acpi_call solution #

This solution requires the kernel module acpi_call.

Install kernel module #

As explained in ArchWiki, if you’re running a kernel from official repositories, you need to install the acpi_call package; otherwise, install the acpi_call-dkms package.

pacman -S acpi_call
# Or
pacman -S acpi_call-dkms

Enable battery conservation mode #

The value 3 worked on my Ideapad to enable battery conservation mode. The value may differ for your model. This post suggests that the value 0 may work for some models.

echo '\_SB.PCI0.LPCB.EC0.VPC0.SBMC 3' > /proc/acpi/call
# Or
echo '\_SB.PCI0.LPCB.EC0.VPC0.SBMC 0' > /proc/acpi/call

Disable battery conservation mode #

Just like with the value 3, the value 5 below worked on my model but may not work on yours. The same post suggests that you can try the value 1 to disable the battery conservation mode.

echo '\_SB.PCI0.LPCB.EC0.VPC0.SBMC 5' > /proc/acpi/call
# Or
echo '\_SB.PCI0.LPCB.EC0.VPC0.SBMC 1' > /proc/acpi/call

This solution requires the kernel module ideapad_laptop to be loaded. The solution is also described in the ArchWiki.

Is ideapad_laptop loaded? #

lsmod | grep ideapad_laptop

Find the right path for your model #

ls /sys/bus/platform/drivers/ideapad_acpi

Search for something that looks similar to VPC2004:00. If you have something different, replace it in the commands below.

Read battery conservation mode status #

Value 1 means conservation mode is enabled, and value 0 means it’s currently disabled.

cat /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode

Enable battery conservation mode #

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

Disable battery conservation mode #

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

all tags