ACPI/ru

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page ACPI and the translation is 90% complete.
Outdated translations are marked like this.
Resources

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:

ФАЙЛ /etc/acpi/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:


См. также