Page MenuHomeSolus

Closed, WontfixPublic


description: A linux kernel module that enables calls to ACPI methods through /proc/acpi/call. Now with support for Integer, String and Buffer parameters. (Needed for setting battery charge thresholds and recalibration in tlp on recent thinkpad models (Sandy Bridge and newer) )
open source: yes, GPL3

Related Objects

Duplicates Merged Here
T1402: acpi_call
alexp created this task.Oct 27 2016, 3:52 PM
DataDrake closed this task as Wontfix.Oct 27 2016, 9:52 PM
DataDrake claimed this task.
DataDrake added a subscriber: DataDrake.

No new releases or commits in 3 years. This is clearly abandoned and not eligible for inclusion.

alexp added a comment.Oct 28 2016, 6:35 AM

I should have checked that better, I'm sorry.

paule reopened this task as Open.Nov 28 2016, 5:39 PM
paule added a subscriber: paule.

abandoned or not, on my Thinkpad T440s tlp asks me to install it, otherwise the extended battery functions are not available, and I'd love to manage this with tlp.

+++ Suggestions

  • Install acpi-call kernel module for ThinkPad advanced battery functions

Error: ThinkPad extended battery functions not available.

could you please include it?

JoshStrobl closed this task as Wontfix.Nov 28 2016, 11:23 PM
JoshStrobl changed the edit policy from "All Users" to "Triage Team (Project)".

for those having the same issue,

i installed it from source and now the extended battery functions are working perfectly.
need to edit "acpi_call.c" and change
#include <acpi/acpi.h> to
#include <linux/acpi.h> before compiling.



hexive added a subscriber: hexive.EditedDec 16 2016, 7:46 PM


I'm also in need of this module for my thinkpad, but am having some trouble compiling from source. would you be willing to write up a short tutorial on the Solus Forum about how you got this working?

thanks in advance!

siru added a subscriber: siru.Nov 11 2017, 9:33 PM

@hexive - here's a draft of what I think you'd need to do. edits from others welcome.

  1. sudo eopkg install linux-lts-headers or linux-current-headers depending on your kernel (if you don't know, uname -r will tell you)
  2. sudo eopkg install -c system.devel
  3. git clone
  4. cd acpi_call
  5. use nano/vim/atom/whatever to edit acpi_call.c and make the change @paule noted above, save and exit.
  6. make
  7. sudo make install

You'll probably need to do this for each new kernel, since the module is installed into the headers for the specific kernel.

This comment was removed by abdulocracy.

@mcritchlow Here are instructions for successfully building the kernel module on current Solus:

  1. git clone
  2. cd acpi_call
  3. sudo eopkg it -c system.devel
  4. sudo eopkg it libelf-devel linux-current-headers (linux-lts-headers if running LTS kernel)
  5. Edit acpi_call.c:
    • Replace #include <asm/uaccess.h> with #include <linux/uaccess.h>
    • Replace #include <acpi/acpi.h> with #include <linux/acpi.h>
  6. make
  7. sudo make install

The module needs to be built again with every kernel update. Unfortunately is not eligible for 2-Distro Waiver due to only Debian/Ubuntu including it, openSUSE and Fedora do not.

Sorry to bump this thread, but could you please describe the way to set up a hook so that my script that compiles and installs the module will be run on every kernel update?

PS. On 4.19.12-106 make advised me to use raw_copy_from_user instead of copy_from_user, I assume this is ok?

There is no such hook.