acpi_call

A linux kernel module that enables calls to ACPI methods through /proc/acpi/call. Now with support for Integer, String and Buffer parameters.

A kernel simple module that enables you to call ACPI methods by writing the
method name followed by arguments to /proc/acpi/call.

This module is to be considered a proof-of-concept and has been superseeded by
projects like bbswitch. It
allows you to tamper with your system and should be used with caution.

Want to use acpi_call via graphic interface? Click here

Usage:

echo '<call>', sudo tee /proc/acpi/call

You can then retrieve the result of the call by checking your dmesg or:

sudo cat /proc/acpi/call

An example to turn off discrete graphics card in a dual graphics environment
(like NVIDIA Optimus):

# turn off discrete graphics card
echo '\_SB.PCI0.PEG1.GFX0.DOFF' > /proc/acpi/call
# turn it back on
echo '\_SB.PCI0.PEG1.GFX0.DON' > /proc/acpi/call

These work on my ASUS K52J notebook, but may not work for you. For a list of
methods to try, see http://linux-hybrid-graphics.blogspot.com/ or try running
the provided script examples/turn_off_gpu.sh

It SHOULD be ok to test all of the methods, until you see a drop in battery
drain rate (grep rate /proc/acpi/battery/BAT0/state), however it comes
with NO WARRANTY - it may hang your computer/laptop, fail to work, etc.

You can pass parameters to acpi_call by writing them after the method,
separated by single space. Currently, you can pass the following parameter
types:

  • ACPI_INTEGER - by writing NNN or 0xNNN, where NNN is an integer/hex
  • ACPI_STRING - by enclosing the string in quotes: "hello, world"
  • ACPI_BUFFER - by writing bXXXX, where XXXX is a hex string without spaces,
    or by writing { b1, b2, b3, b4 }, where b1-4 are integers

The status after a call can be read back from /proc/acpi/call:

  • 'not called' - nothing to report
  • 'Error: ' - the call failed
  • '0xNN' - the call succeeded, and returned an integer
  • '"..."' - the call succeeded, and returned a string
  • '{0xNN, ...}' - the call succeeded, and returned a buffer
  • '[...]' - the call succeeded, and returned a package which may contain the
    above types (integer, string and buffer) and other package types

Graphic interface

Found this too difficult? Try to use these programs provided by Marco Dalla Libera and do it via graphic interface:


Copyright (c) 2010: Michal Kottman

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

主要指標

概覽
名稱與所有者mkottman/acpi_call
主編程語言C
編程語言C (語言數: 3)
平台
許可證
所有者活动
創建於2010-06-27 21:09:21
推送於2023-05-03 12:10:51
最后一次提交2013-07-05 09:06:13
發布數2
最新版本名稱v1.1.0 (發布於 )
第一版名稱v1.0.0 (發布於 )
用户参与
星數319
關注者數18
派生數133
提交數89
已啟用問題?
問題數58
打開的問題數30
拉請求數10
打開的拉請求數19
關閉的拉請求數14
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?