ACPI/ru
ACPI (Advanced Configuration and Power Management Interface – усовершенствованный интерфейс управления конфигурацией и питанием) – это система управления питанием, являющаяся частью BIOS.
Установка
Ядро
Для работы ACPI необходимо активировать следующие опции ядра:
Power management and ACPI options --->
[*] Power Management support
[*] ACPI (Advanced Configuration and Power Interface) Support --->
Опция | Модуль | Рекомендуется? | Описание |
---|---|---|---|
Устаревшие файлы в /proc/acpi | - | No | Создаёт устаревшие файлы в файловой системе procfs, которые теперь заменены файлами в файловой системе sysfs. |
Устаревшие папки для контроля питания в /proc/acpi | - | No | Создаёт устаревшие файлы в файловой системе procfs, которые теперь заменены файлами в файловой системе sysfs. |
Доступ к встроенному контроллеру (EC) для чтения/записи через /sys/kernel/debug/ec | ec-debugfs | No | Отладочный интерфейс для встроенного контроллера. |
Устаревшая поддержка /proc/acpi/event | - | No | Создаёт устаревшие файлы в файловой системе procfs, которые теперь заменены input layer или событиями netlink. |
Адаптер переменного тока (AC adapter) | ac | Для ноутбуков | Создаёт файлы, указывающие, подключена ли ваша система к сети переменного тока. |
Аккумулятор (Battery) | battery | Для ноутбуков | Создаёт файлы, указывающие, питается ли ваша система от батареи. |
Кнопка (Button) | button | - | Обрабатывает события, связанные с кнопками питания, сна и закрывающейся крышкой. |
Видео (Video) | video | - | Поддерживает основные операции для графических адаптеров. |
Кулер (Fan) | fan | - | Поддерживает вентиляторы с интерфейсом ACPI, позволяя пользовательским приложениям выполнять базовое управление вентиляторами (включение, выключение, состояние). |
Док (Dock) | dock | - | Поддерживает док-станции с интерфейсом ACPI и съёмные отсеки для дисков, см. статью acpi dock. |
Процессор (Processor) | processor | - | Устанавливает ACPI в качестве обработчика режима ожидания для Linux и использует состояния процессора ACPI C2 и C3 для экономии энергии. |
Агрегатор процессора (Processor Aggregator) | processor-aggregator | - | Функция ACPI 4.0 для выполнения специфической конфигурации и управления процессором. |
Thermal Zone | thermal | Yes | Поддерживает ACPI Thermal Zone для защиты процессора от перегрева. |
Поддержка NUMA | - | - | |
Сообщения об отладке (Debug statements) | - | No | |
Драйвер обнаружения слота PCI | pci-slot | No | Помогает сопоставить адреса шины PCI с физическими слотами |
Container and Module Devices | container | - | Поддерживает устройства ACPI Container and Module для горячего подключения узлов, процессоров и памяти. |
Smart Battery System | sbs, sbshc | - | Поддерживает другой тип доступа к информации об аккумуляторе, встречающийся на некоторых ноутбуках. |
Hardware Error Device | hed | - | Поддерживает "ardware Error Device", которое используется для сообщения о некоторых аппаратных ошибках. |
Разрешить вставку/замену методов ACPI во время работы системы | custom-method | No | |
ACPI Platform Error Interface (APEI) | - | - | APEI позволяет сообщать операционной системе об ошибках (например, от чипсета). |
Установка
Окружение рабочего стола реагирует на общие события, генерируемые ACPI. В случае если окружение рабочего стола не установлено и нужно или чтобы система реагировала на особые события, можно установить пакет ACPI. Установка пакета sys-power/acpid:
root #
emerge --ask sys-power/acpid
USE-флаги
Некоторые пакеты знают о глобальном USE-флаге acpi
. На данный момент нет каких-либо use-флагов для sys-power/acpid.
SELinux
Чтобы acpid мог выключить SELinux подсистему, убедитесь, что пакет sec-policy/selinux-shutdown установлен и испольняемый файл /sbin/shutdown перемаркирован:
root #
emerge --ask sec-policy/selinux-shutdown
Настройка
Скрипты, находящиеся в /etc/acpi определяют как система должна реагировать на события ACPI. Они могут быть отредактированы под потребности пользователя.
Сервисы
OpenRC
Сервис acpid теперь может быть запущен. В случае использования OpenRC запустите:
root #
/etc/init.d/acpid start
Добавьте сервис acpid на уровень запуска по умолчанию, чтобы сервис он запускался во время загрузки:
root #
rc-update add acpid default
systemd
В случае если systemd используется как система инициализцации, включите сервис acpid для запуска во время загрузки запустив:
root #
systemctl enable acpid.service
Чтобы запустить сервсис сейчас:
root #
systemctl start acpid.service
Расширенные примеры
Настройки ACPI по умолчанию могут быть удовлетворительными для некоторых пользователей, тем не менее небольшие дополнительные настройки могут быть необходимы чтобы демон acpid правильно обрабатывал некоторые базовые ACPI события (подключение/отключение источника бесперебойного питания, мультимедия кнопки и так далее).
При необходимости изменения могут быть внесены в /etc/acpi/default.sh вместе с /etc/acpi/events/default. Почему бы не создать сложную установку, использующую возможности /etc/acpi/actions и /etc/acpi/events? Просто добавьте сценарии и файлы событий в данные расположения для продвинутого использования.
Базового файла default.sh скорее всего будет достаточно для большинства пользователей, однако ниже представлен пример того, что может быть сделано с использованием default.sh:
#!/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:
Стоит отметить, что приведённый выше скрипт совместим и с ALSA, и с OSS, поэтому при переключении между ними никаких дополнительных действий не требуется. Не бойтесь редактировать скрипт!
Приведённый выше скрипт также использует профиль управления питанием с помощью hprofile. См. статью hprofile для получения дополнительных сведений.
Userspace utilities
Many packages use ACPI functions. A few are listed here:
- sys-power/acpi: to show information from the /proc filesystem, such as battery status or thermal information
- sys-power/acpitool: a small command line application, intended to be a replacement for the apm tool
- sys-power/acpilight: replacement for xbacklight that uses the ACPI interface to set brightness
- app-laptop/laptop-mode-tools: linux kernel laptop_mode user-space utilities
- x11-misc/cbatticon: a lightweight and fast battery icon that sits in your system tray
- app-admin/conky: an advanced, highly configurable system monitor for X
См. также
- 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