ACPI/de
ACPI (Advanced Configuration and Power Management Interface) ist ein Energiemanagement System, das Teil des BIOS ist.
Installation
Kernel
Die folgenden Kerneloptionen müssen für ACPI aktiviert werden:
Power management and ACPI options --->
[*] Power Management support
[*] ACPI (Advanced Configuration and Power Interface) Support --->
Option | Modul | Empfehlung | Beschreibung |
---|---|---|---|
Veraltete /proc/acpi Dateien | - | No | Erzeugt veraltete Dateien im Dateisystem procfs, die nun durch Dateien im Dateisystem sysfs ersetzt werden. |
Veraltete Leistung /proc/acpi Verzeichnisse | - | No | Erzeugt veraltete Dateien im procfs-Dateisystem, die nun durch Dateien im sysfs-Dateisystem ersetzt werden. |
EC Lese-/Schreibzugriff über /sys/kernel/debug/ec | ec-debugfs | No | Debug-Schnittstelle zum Embedded Controller. |
Veraltete /proc/acpi/event Unterstützung | - | No | Erzeugt veraltete Dateien im procfs-Dateisystem, die nun durch das Eingabe-Layer oder Netlink-Ereignisse ersetzt werden. |
Netzadapter | ac | Laptops | Erzeugt Dateien, um festzustellen, ob das System an das Stromnetz angeschlossen ist. |
Batterie | battery | Laptops | Erzeugt Dateien, um festzustellen, ob das System mit einer Batterie betrieben wird. |
Tasten | button | - | Verarbeitet Ereignisse auf den Power-, Sleep- und Deckel-Tasten |
Video | video | - | Unterstützt grundlegende Operationen für Grafikkarten. |
Lüfter | fan | - | Unterstützt ACPI-Lüftergeräte, so dass Anwendungen im Benutzermodus eine grundlegende Lüftersteuerung (Ein, Aus, Status) durchführen können. |
Dock | dock | - | Unterstützt ACPI-gesteuerte Dockingstationen und Wechsellaufwerksschächte, siehe den Artikel acpi dock. |
Prozessor | processor | - | Installiert ACPI als den Idle-Handler für Linux und verwendet die ACPI-Prozessorzustände C2 und C3, um Strom zu sparen |
Prozessor-Aggregator | processor-aggregator | - | ACPI 4.0-Funktion zur Durchführung spezifischer Prozessorkonfiguration und -steuerung |
Thermozonen | thermal | Yes | Unterstützt ACPI-Thermozonen zum Schutz des Prozessor vor Überhitzung. |
NUMA-Unterstützung | - | - | |
Debug-Anweisungen | - | No | |
PCI-Slot-Erkennungstreiber | pci-slot | No | Hilft bei der Zuordnung von PCI-Bus-Adressen zu physikalischen Steckplätzen |
Container- und Modulgeräte | container | - | Unterstützt ACPI-Container- und Modulgeräte zum Hotplugging von Knoten, CPUs und Speicher. |
Intelligentes Batteriesystem | sbs, sbshc | - | Unterstützt eine andere Art des Zugriffs auf die Batterieinformationen, die bei einigen Laptops zu finden ist. |
Hardware-Fehler-Gerät | hed | - | Unterstützt das Hardware-Fehler-Gerät, das zur Meldung einiger Hardwarefehler verwendet wird. |
Erlaubt das Einfügen/Ersetzen von ACPI-Methoden während der Laufzeit | custom-method | No | |
ACPI Platform Error Interface (APEI) | - | - | APEI ermöglicht es, Fehler (z.B. vom Chipsatz) an das Betriebssystem zu melden. |
Emerge
Desktopumgebungen reagieren auf die allgemeinen Ereignisse die von ACPI erzeugt werden. Wenn keine Desktopumgebung installiert ist oder das System auf spezielle Ereignisse reagieren soll, kann das ACPI-Paket installiert werden. Installieren Sie das Paket sys-power/acpid:
root #
emerge --ask sys-power/acpid
USE-Flags
Mehrere Pakete kennen das globale acpi
USE-Flag. Für sys-power/acpid sind zur Zeit keine USE-Flags verfügbar.
SELinux
Damit acpid ein SELinux-System herunterfahren kann, müssen Sie sicherstellen, dass das Paket sec-policy/selinux-shutdown installiert und die ausführbare Datei /sbin/shutdown umbenannt ist:
root #
emerge --ask sec-policy/selinux-shutdown
Konfiguration
Die Skripte in /etc/acpi definieren, wie das System auf ACPI-Ereignisse reagiert. Sie können nach Bedarf bearbeitet werden, um die Bedürfnisse des Benutzers zu erfüllen.
Dienste
OpenRC
Der acpid-Dienst kann nun gestartet werden. Bei Verwendung von OpenRC führen Sie aus:
root #
/etc/init.d/acpid start
Um den acpid-Dienst beim Booten zu starten, fügen Sie ihn dem Standard-Runlevel hinzu:
root #
rc-update add acpid default
systemd
Wenn systemd als Init-System verwendet wird, aktivieren Sie den acpid-Dienst beim Systemstart, indem Sie Folgendes eingeben:
root #
systemctl enable acpid.service
Um den Dienst jetzt zu starten:
root #
systemctl start acpid.service
Fortgeschrittene Beispiele
Die Standard-ACPI-Einstellung mag für einige Benutzer zufriedenstellend sein, jedoch kann eine zusätzliche Konfiguration erforderlich sein, damit der acpid-Daemon einige grundlegende ACPI-Ereignisse richtig behandelt (Ein- und Ausschalten der Stromversorgung, Multimedia-Tasten usw.).
Änderungen können an /etc/acpi/default.sh zusammen mit /etc/acpi/events/default vorgenommen werden, falls erforderlich. Warum nicht ein kompliziertes Setup erstellen, das die Möglichkeiten von /etc/acpi/actions und /etc/acpi/events nutzt? Legen Sie einfach Skripte und Ereignisdateien an diesen Orten für die erweiterte Nutzung ab.
Eine einfache default.sh-Datei wird wahrscheinlich für die meisten Benutzer ausreichen, aber das Folgenden ist eine Beispiel dafür, was mit default.sh gemacht werden könnte:
#!/bin/sh
#
# $Header: /etc/acpi/default.sh Exp $
# $Author: (c) 2012-2014 -tclover <tokiclover@dotfiles.> Exp $
# $License: MIT (or 2-clause/new/simplified BSD) Exp $
# $Version: 2014/12/24 21:09:26 Exp $
#
log() { logger -p daemon "ACPI: $*"; }
uhd() { log "event unhandled: $*"; }
set $*
group=${1%/*}
action=${1#*/}
device=$2
id=$3
value=$4
[ -d /dev/snd ] && alsa=true || alsa=false
[ -d /dev/oss ] && oss=true || oss=false
amixer="amixer -q set Master"
ossmix="ossmix -- vmix0-outvol"
case $group in
ac_adapter)
case $value in
*0) log "switching to power.bat power profile"
hprofile power.bat;;
*1) log "switching to power.adp power profile"
hprofile power.adp;;
*) uhd $*;;
esac
;;
battery)
case $value in
*0) log "switching to power.adp power profile"
hprofile power.adp;;
*1) log "switching to power.adp power profile"
hprofile power.adp;;
*) uhd $*;;
esac
;;
button)
case $action in
lid)
case "$id" in
close) hibernate-ram;;
open) :;;
*) uhd $*;;
esac
;;
power) shutdown -H now;;
sleep) hibernate-ram;;
mute)
$alsa && $amixer toggle;;
volumeup)
$alsa && $amixer 3dB+
$oss && $ossmix +3;;
volumedown)
$alsa && $amixer 3dB-
$oss && $ossmix -3;;
*) uhd $*;;
esac
;;
cd)
case $action in
play) :;;
stop) :;;
prev) :;;
next) :;;
*) uhd $*;;
esac
;;
jack)
case $id in
*plug) :;;
*) uhd $*;;
esac
;;
video)
case $action in
displayoff) :;;
*) uhd $*;;
esac
;;
*) uhd $*;;
esac
unset alsa oss amixer ossmix group action device id
# vim:fenc=utf-8:ft=sh:ci:pi:sts=4:sw=4:ts=4:
Beachten Sie, dass das obige Skript mit ALSA und OSS kompatibel ist, so dass beim Wechsel von OSS zu ALSA oder umgekehrt keine zusätzlichen Aktionen erforderlich sind. Zögern Sie nicht, das Skript zu bearbeiten!
Das obige Skript verwendet auch ein Energieverwaltungsprofil mit hprofile. Weitere Informationen dazu finden Sie im Artikel hprofile.
Userspace-Werkzeuge
Viele Pakete verwenden ACPI-Funktionen. Einige davon sind hier aufgeführt:
- sys-power/acpi: um Informationen aus dem /proc-Dateisystem anzuzeigen, z.B. den Batteriestatus oder thermische Informationen
- sys-power/acpitool: eine kleine Befehlszeilenanwendung, die als Ersatz für das Programm apm gedacht ist
- sys-power/acpilight: Ersatz für xbacklight, das die ACPI-Schnittstelle zur Einstellung der Helligkeit verwendet
- app-laptop/laptop-mode-tools: Linux Kernel laptop_mode Userspace-Hilfsmittel
- x11-misc/cbatticon: ein leichtes und schnelles Batteriesymbol, das in der Taskleiste angezeigt wird
- app-admin/conky: ein fortschrittlicher, hochgradig konfigurierbarer Systemmonitor für X
Siehe auch
- ACPI/ThinkPad-special-buttons — describes how to configure ACPI events and actions for the Lenovo ThinkPad T410 laptop.
- Suspend and hibernate — describes how to suspend or hibernate a Gentoo system.
- Knowledge Base:Disabling ACPI support at boot time