Use acpi_call to manage your battery charge level in Linux after enabling the battery charge limit function in Windows 11

Question:

How can I disable the battery charge limit function that I enabled in Windows 11 after switching to Linux?

I have a Lenovo Ideapad 3 15alc6 laptop that came with Windows 11. I used the Lenovo Vantage software to set a limit on the battery charge level to extend its lifespan. However, I decided to change my OS to Linux and I forgot to turn off the battery charge limit function before doing so. Now, I can only charge my battery up to the limit that I set in Windows 11, and I cannot find any way to disable it in Linux. I also checked the BIOS settings, but there was no option related to battery charge limiting. I do not want to reinstall Windows 11 just to disable this function. Is there a solution that does not involve opening the laptop and resetting the CMOS?

Answer:

If you have a Lenovo laptop that came with Windows 11, you may have used the Lenovo Vantage software to set a limit on the battery charge level. This feature is designed to extend the battery lifespan by preventing it from being fully charged or discharged. However, if you switch to Linux, you may encounter a problem: the battery charge limit function remains active, and you cannot disable it in Linux. This means that your battery will always stay at the level that you set in Windows 11, and you will not be able to use the full capacity of your battery. This can be frustrating and inconvenient, especially if you need to use your laptop for a long time without plugging it in.

Fortunately, there is a solution that does not require you to reinstall Windows 11 or open your laptop and reset the CMOS. You can use a tool called acpi_call, which allows you to send commands to the ACPI (Advanced Configuration and Power Interface) of your laptop. ACPI is a standard that defines how the hardware and software interact to manage power and configuration settings. By using acpi_call, you can override the battery charge limit function and set your own charge level.

Here are the steps to use acpi_call to disable the battery charge limit function in Linux:

1. Install acpi_call. You can find the instructions for different Linux distributions on the [GitHub page](https://github.com/mkottman/acpi_call) of the project. Alternatively, you can use a package manager like apt or yum to install it from the official repositories.

2. Find the correct ACPI call for your laptop model. You can use the [acpi_call_GUI_tester](https://github.com/morgwai/acpi_call_GUI_tester) script to test different ACPI calls and see their effects on your battery. You can also check the [wiki page](https://github.com/mkottman/acpi_call/wiki/ThinkPad-Battery) of acpi_call for some examples of ACPI calls for different Lenovo models. For the Lenovo Ideapad 3 15alc6, the correct ACPI call to disable the battery charge limit function is `\SB.PCI0.LPCB.EC0.VPC0.SBMC 5`.

3. Run the ACPI call as root. You can use the acpi_call command to run the ACPI call that you found in the previous step. For example, `sudo acpi_call ‘\SB.PCI0.LPCB.EC0.VPC0.SBMC 5’`. You should see a message like `Call successful` if the command worked.

4. Check your battery status. You can use the acpi command to see the current charge level and status of your battery. For example, `acpi -b`. You should see something like `Battery 0: Charging, 80%, 00:15:32 until charged` if your battery is charging beyond the limit that you set in Windows 11.

5. Make the ACPI call persistent. If you want to make the ACPI call run automatically every time you boot your laptop, you can create a systemd service that executes the acpi_call command. You can find the instructions on how to do that on the [wiki page](https://github.com/mkottman/acpi_call/wiki/Installation-instructions) of acpi_call.

By following these steps, you should be able to disable the battery charge limit function in Linux and use the full capacity of your battery. However, keep in mind that this may reduce the battery lifespan in the long run, so you may want to enable the battery charge limit function again if you switch back to Windows 11 or use another tool to manage your battery health in Linux.

: acpi_call is a Linux kernel module that allows you to execute ACPI methods by writing the method name followed by the parameters to /proc/acpi/call. See https://github.com/mkottman/acpi_call for more details.

Leave a Reply

Your email address will not be published. Required fields are marked *

Privacy Terms Contacts About Us