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
source: https://github.com/mkottman/acpi_call
Description
Related Objects
- Duplicates Merged Here
- T1402: acpi_call
Event Timeline
No new releases or commits in 3 years. This is clearly abandoned and not eligible for inclusion.
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.
TLP:
+++ Suggestions
- Install acpi-call kernel module for ThinkPad advanced battery functions
and:
Error: ThinkPad extended battery functions not available.
could you please include it?
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.
cheers
paule
paule,
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!
@hexive - here's a draft of what I think you'd need to do. edits from others welcome.
- sudo eopkg install linux-lts-headers or linux-current-headers depending on your kernel (if you don't know, uname -r will tell you)
- sudo eopkg install -c system.devel
- git clone https://github.com/mkottman/acpi_call.git
- cd acpi_call
- use nano/vim/atom/whatever to edit acpi_call.c and make the change @paule noted above, save and exit.
- make
- 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.
I haven't tested but https://github.com/marcoDallas/acpi_call_GUI_systemd might work on Solus.
@mcritchlow Here are instructions for successfully building the kernel module on current Solus:
- git clone https://github.com/mkottman/acpi_call.git
- cd acpi_call
- sudo eopkg it -c system.devel
- sudo eopkg it libelf-devel linux-current-headers (linux-lts-headers if running LTS kernel)
- Edit acpi_call.c:
- Replace #include <asm/uaccess.h> with #include <linux/uaccess.h>
- Replace #include <acpi/acpi.h> with #include <linux/acpi.h>
- make
- 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?
Acpi_call seems to be forked and adopted by NixOS community. Would that be eligible for inclusion?
https://github.com/nix-community/acpi_call
For no reason in particular I just took a peek at this repo today, and it looks like just shortly after this comment they started doing tagging. Nothing new since Aug 2020, but at least they are tagging.
https://github.com/nix-community/acpi_call/tags
Also, with the mods in this fork, it compiles and installs without patching.