• Stars
    star
    308
  • Rank 135,712 (Top 3 %)
  • Language
    C
  • Created over 14 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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.

More Repositories

1

AndroLua

Lua and LuaJava ported to Android
C
1,028
star
2

lqt

Lua bindings for Qt4 by Mauro Iazzi
C++
188
star
3

luacrypto

Fork of LuaCrypto, which enables encryption and decryption through OpenSSL
Shell
92
star
4

lua-gdb-helper

This is a collection of several GDB macros that simplify debugging of C modules for Lua
67
star
5

luaclang-parser

Lua binding for libclang, the Clang compiler API to access the AST of C/C++ source files
C++
56
star
6

lua-git

An attempt to implement the basics of Git in pure Lua
Lua
40
star
7

lua-sophia

lua-sophia is a Lua binding to Sophia embeddable key-value database
C
24
star
8

ltn12ce

A compression (zlib, bzip2, LZO and LZMA) and encryption (PolarSSL) library with common interface, usable by LuaSocket LTN12 module, with no external dependencies (everything's embedded).
C
20
star
9

ffi_fun

Various examples of (ab)using of the LuaJIT FFI
Lua
13
star
10

luaspell

Lua binding for Hunspell
C++
12
star
11

wdm

web data mining - a small utility library for Lua for easy HTTP mining with curl & sqlite3
Lua
11
star
12

luacene

Lua binding for Lucene / CLucene
C++
11
star
13

scite

My SciTE "distro" based on SciTE, SciTE-tools, scintillua and SciTE-debug
C++
10
star
14

tidy

Lua bindings for HTML Tidy
C
8
star
15

AR_playground

Examples and experiments of Augmented Reality through ARToolkitPlus, OpenCV and OpenGL.
C++
7
star
16

PdfCropGUI

A GUI tool to crop PDF files visually, based on pdfcrop.
C++
6
star
17

lighttpd-1.5-mingw

A set of patches to enable compilation of lighttpd 1.5 (svn://svn.lighttpd.net/lighttpd/trunk/) using MinGW on Windows, with FastCGI support
C
5
star
18

scite_scripts

custom scripts for the Scite editor
Lua
4
star
19

lua-xdiff

Lua binding to the LibXDiff diff library
C
4
star
20

villie

Visual Language Interpreter
Lua
3
star
21

calendar

A simple Lua framework for evented model simulation.
Lua
1
star
22

luadist

Simple Lua Module Development, Distribution and Deployment Tool.
1
star
23

lua-cv

Work-in-progress: A hand-written Lua OpenCV binding
C
1
star