-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8275f89
commit 0b81354
Showing
77 changed files
with
4,923 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
obj-m := acpi_call.o | ||
|
||
KVER ?= $(shell uname -r) | ||
KDIR ?= /lib/modules/$(KVER)/build | ||
VERSION ?= $(shell cat VERSION) | ||
|
||
default: | ||
$(MAKE) -C $(KDIR) M=$(CURDIR) modules | ||
|
||
clean: | ||
$(MAKE) -C $(KDIR) M=$(CURDIR) clean | ||
|
||
install: | ||
$(MAKE) -C $(KDIR) M=$(CURDIR) modules_install | ||
|
||
load: | ||
-/sbin/rmmod acpi_call | ||
/sbin/insmod acpi_call.ko | ||
|
||
dkms.conf: dkms.conf.in | ||
sed "s/@@VERSION@@/$(VERSION)/" $^ > $@ | ||
|
||
dkms-add: dkms.conf | ||
/usr/sbin/dkms add $(CURDIR) | ||
|
||
dkms-build: dkms.conf | ||
/usr/sbin/dkms build acpi_call/$(VERSION) | ||
|
||
dkms-install: dkms.conf | ||
/usr/sbin/dkms install acpi_call/$(VERSION) | ||
|
||
dkms-remove: dkms.conf | ||
/usr/sbin/dkms remove acpi_call/$(VERSION) --all | ||
|
||
modprobe-install: | ||
modprobe acpi_call | ||
|
||
modprobe-remove: | ||
modprobe -r acpi_call | ||
|
||
dev: modprobe-remove dkms-remove dkms-add dkms-build dkms-install modprobe-install |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# acpi\_call | ||
This is a fork of [acpi_call](https://github.com/mkottman/acpi_call) maintained by the NixOS community. | ||
Patches also for non-NixOS related fixes are welcome! | ||
|
||
A simple kernel module that allows one to call ACPI methods by writing the | ||
method name followed by its arguments to `/proc/acpi/call`. | ||
|
||
## Notes on dkms and Secure Boot | ||
|
||
If that is the way you want to install this module, you can follow | ||
[this guide](https://web.archive.org/web/20210215173902/https://gist.github.com/dop3j0e/2a9e2dddca982c4f679552fc1ebb18df) ([mirror](https://gist.github.com/s-h-a-d-o-w/53c2215e955c3326c6ec8f812a0d2f27)) | ||
to have dkms automatically sign the module after building. | ||
|
||
## 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 the 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: <description>' - 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 | ||
|
||
|
||
## GUI Alternatives | ||
|
||
Found this too difficult? Try to use these programs provided by Marco Dalla Libera and do it via graphic interface. **Note that they is not suitable for arbitrary | ||
APCI calls but intended for turning off discrete graphics only**. | ||
|
||
* [acpi_call_GUI (Ubuntu and his derivates)](https://github.com/marcoDallas/acpi_call_GUI) | ||
* [acpi_call_GUI_systemd (all linux distros that support systemd: Ubuntu 16.04+, Fedora, Arch, Mandriva etc.)](https://github.com/marcoDallas/acpi_call_GUI_systemd) | ||
|
||
*** | ||
|
||
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
1.2.2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#!/bin/sh | ||
|
||
PACKAGE=acpi_call | ||
ORIGPATH=$PWD | ||
|
||
cd $SLACKTRACKSCRATCHDIR | ||
cp -r $ORIGPATH/* . | ||
|
||
KERNEL=${KERNEL:-"$(uname -r)"} | ||
VERSION=3.17 | ||
chown -R root:root . | ||
chmod -R og-w . | ||
|
||
make clean && make && make install | ||
|
||
mkdir -vpm755 /usr/doc/${PACKAGE}-${VERSION} | ||
cp -favv README.md examples support /usr/doc/${PACKAGE}-${VERSION} | ||
|
||
rm -fr /install | ||
mkdir -vpm755 /install | ||
cat ${ORIGPATH}/slack-desc > /install/slack-desc | ||
sed "s%@KERNEL@%$KERNEL%" ${ORIGPATH}/doinst.sh > /install/doinst.sh |
Oops, something went wrong.