Усовершенствованная конфигурация и интерфейс питания. ACPI — технология управления питанием

Настройки управления энергопотреблением в BIOS (Power Management Settings)

Данная статья Вам поможет снизить количество потребление электричества ноутбуком, нетбуком и стационарным компьютером (обычный ПК или системник).

Прошу заметить обладателей ноутбуков и нетбуков, эта статья как раз для Вас. Отключив определенные функции можно продлить время работы Вашего аппарата на час и более.

И так приступим разбору настроек энергопотребления в BIOS SETUP. В частности для настройки вкладка в BIOS называется "Power Management Settings ".

На картинке снизу Вы увидите вкладку "Power Management Settings " работающий чип на микрокоде Phoenix/Award.

В этой сфере BIOS у пользователей часто наблюдается путаница. Если не выставлены правильные настройки, то система перестанет выключаться должным образом, а также не будет правильно выходить из состояний Standby или Hibernate. Windows уже оснащена встроенным управлением энергопотреблением, все соответствующие опции в BIOS можно выключить. Иначе они будут конфликтовать друг с другом, и ни одна не будет работать правильно. Производители материнских плат понимают, что Windows используют не все, поэтому большинство настроек предназначено для пользователей других ОС.

И так перейдем к разбору основных опций в вкладке " Power Management Settings".

ACPI Suspend to RAM: ACPI означает усовершенствованный интерфейс управления конфигурированием и энергопотреблением (Advanced Configuration and Power Interface) — не путайте его с APIC или IPCA, которые тоже присутствуют в качестве опций в некоторых BIOS. Функция Suspend to RAM, которую также называют S3/STR, позволяет компьютеру экономить больше энергии в режиме ожидания (Standby), однако все устройства, подключённые к компьютеру, должны быть ACPI-совместимы. У некоторых BIOS для этого сценария существует опция S1/ POS. Если вы включите эту функцию и у вас появятся проблемы с режимом ожидания, то вернитесь в BIOS и выключите её.

Video Off Method (способ выключения видео): DPMS расшифровывается как управление режимом энергосбережения монитора (Display Power Management System). Эта опция позволяет BIOS управлять графической картой, поддерживающей функцию DPMS. Опция чёрный экран (Blank Screen) выдаёт пустой чёрный экран — её следует использовать для тех мониторов, которые не поддерживают зелёные опции или режим сбережения энергии. Опция V/H SYNC Blank не только выдаёт чёрный экран, но и выключает вертикальное и горизонтальное сканирование. Если ваш компьютер и монитор выпущены в последние лет пять, то мы рекомендуем опцию DPMS.

HDD Down In Suspend (выключение HDD в режиме Suspend): функция определяет, будет ли автоматически выключаться жёсткий диск в режиме Suspend. Большинство подобных настроек управляются Windows, но если ваш жёсткий диск не выключается, когда компьютер входит в режим сна Suspend, то включите эту опцию. Иначе лучше оставить её выключенной (Disabled).

PWR Button < 4 Secs (клавиша питания): по умолчанию все ATX-компьютеры выключаются, если удерживать клавишу питания больше четырёх секунд. Эта настройка говорит компьютеру, что следует делать, если клавишу питания будут удерживать меньше четырёх секунд. Можно как выключить систему, так и перевести её в режим Suspend. Так что решайте сами.

Power Up On PCI Device (включение по устройству PCI): если вы используете Wake-On-LAN — эта опция часто применяется в больших офисных окружениях для удалённого включения компьютеров — то оставьте опцию включённой (Enabled). Иначе мы рекомендуем выключить эту опцию (Disabled).

Wake/Power Up on Ext. Modem (включение по внешнему модему): эта функция позволяет компьютеру автоматически включаться при активации телефонной линии модема. Опять же, удобная функция для удалённого управления. В других окружениях, то есть для большинства пользователей, её лучше выключить (Disabled).

Automatic Power Up (автоматическое включение): эта функция позволяет установить время, когда ваш компьютер будет автоматически включаться. Если вам нужна подобная функция, то включите её (Enabled). В противном случае выключите (Disabled).

AC Power Loss Restart (включение после потери питания): эта опция говорит компьютеру, что ему следует делать после неожиданной потери питания и его восстановления. Если опция выключена (Disabled), то система не будет запущена. Если включена (Enabled) — то система будет перезагружена. Мы рекомендуем выключить эту опцию (Disabled).

Power On By PS/2 Mouse (включение по мыши PS/2): если опция включена, то для включения ПК может использоваться мышь PS/2 (не USB). Выключите (Disabled) эту опцию, чтобы не включать компьютер, случайно затронув мышь.

Power On By PS/2 Keyboard (включение по клавиатуре PS/2): при активации этой функции с помощью специальных клавиш можно включать систему. Лучше выключить функцию (Disabled), чтобы не ошибиться случайно клавишей.

Внимание: Если у Вас стоит на ноутбуке операционная система Windows надо в BIOS SETUP отключить все опции в разделе "Power Management Settings".

ACPI Standby State

Возможные значения:

S1/POS , S3/STR
или
S1(POS) , S3(STR)
или
S1&S3 , S1(POS) , S3(STR)
или
Auto , S1/POS , S3/STR

Описание:

Опция позволяет указать, какой из режимов будет использоваться при переходе в состояние энергосбережения: S1(POS) (в некоторых версиях BIOS значение выглядит как S1(PowerOn-Suspend) ) или S3(STR) (в некоторых версиях BIOS — S3(Suspend-To-RAM) ). Если ваша материнская плата и блок питания совместимы со вторым режимом, выбирайте его, как более экономичный. Иногда присутствует и вариант S1&S3 , в этом случае операционной системой могут быть использованы оба режима энергосбережения.

Кратко остановимся на этих режимах. Большинство компьютеров, поддерживающих спецификации ACPI, позволяют использовать два режима энергосбережения: S1 (POS) и S3 (STR). В первом (расшифровывается как Power on Suspend) отключается питание от жесткого диска, некоторых карт расширения, плюс, гасится монитор. Все остальные компоненты (процессор, оперативная память, чипсет…) работают в штатном режиме, возможен только переход на пониженные частоты. Благодаря этому пробуждение происходит очень быстро. Второй режим (сокращение от Suspend to RAM) характеризуется гораздо меньшим энергопотреблением. Перед переходом в него вся информация о состоянии различных компонентов сохраняется в оперативной памяти, после чего все остальные устройства отключаются, остается только дежурное питание. Расплачиваться за это приходится более долгим пробуждением компьютера. Есть еще Hibernate или Suspend to Disk, но он не относится к режимам энергосбережения. При его использовании информация о состоянии различных компонентов «сбрасывается» на жесткий диск, после чего происходит обычное отключение питания.

Для того чтобы режим Suspend to RAM (как, впрочем, и Suspend to Disk) функционировал без сбоев, необходимо четкое взаимодействие всех драйверов компонентов, установленных в системе. При наличии «кривого» драйвера компьютер может не просыпаться вообще или после выхода из спящего режима работать с ошибками. В этом случае необходимо вернуться к менее требовательному в этом плане Power on Suspend.

Режим Suspend to RAM накладывает определенные ограничения на блок питания: ток, отдаваемый по цепи Standby (+5V SB), должен быть не менее 800 мА (рекомендуется 1 А). К современным моделям претензий в этом плане нет — все они совместимы с режимом Suspend to RAM, проблемы могут возникнуть только со старыми компьютерами.

Если в кластере используются интегрированные fence devices, то в этом случае необходимо настроить ACPI (Advanced Configuration and Power Interface) для обеспечения немедленного и полного отключения узла в ходе выполнения процедуры фенсинга.

Если узел кластера настроен на отключение при помощи интегрированного fence device, то для этого узла необходимо отключить функцию ACPI Soft-Off. Ее отключение позволяет интегрированному fence device немедленно и полностью отключить узел, вместо выполнения попытки корректно провести его отключение (например, при помощи команды shutdown -h now). В том случае, если функция ACPI Soft-Off включена, интегрированному fence device может потребоваться более 4 секунд для отключения узла (см. замечание ниже). К тому же, если при включенной функции ACPI Soft-Off узел "зависнет" при выключении, fence device не сможет его выключить. В этих условиях отключение откладывается или вообще заканчивается неудачей. Следовательно, в случае отключения узла с активной функцией ACPI Soft-Off при помощи интегрированного fence device, восстановление кластера будет происходить медленно и может потребовать вмешательства администратора.

Note

Количество времени, требуемое для отключения сбойного узла зависит от используемого интегрированного fence device. Некоторые из таких устройств выполняют оперцию, эквивалентную нажатию и удержанию кнопки питания; следовательно, узел будет отключен через четыре-пять секунд после начала операции. Другие выполняют операцию, эквивалентную однократному нажатию на кнопку питания. В этом случае за выключение узла отвечает уже операционная система; следовательно, опреация отключения занимает гораздо больше пяти секунд.

Для отключения функции ACPI Soft-Off можно использовать команду chkconfig . Использование chkconfig является предпочтительным, тем не менее, если этот способ не подходит, можно воспользоваться следующими альтернативными способами:

    Изменить настройку действия кнопки питания в BIOS на "instant-off" или аналогичную, при которой выключение питания происходит немедленно

    Замечание

    Отключение ACPI Soft-Off в BIOS недоступно на некоторых компьютерах.

    Добавить параметр acpi=off в командную строку ядра в файле /boot/grub/grub.conf

    Важно

    Этот метод полностью отключает ACPI; некоторые компьютеры не могут корректно загрузиться при полностью отключенном ACPI. Этот метод следует использовать только в случаях, когда все остальные способы неэффективны.

2.3.1. Отключение опции ACPI Soft-Off с помощью chkconfig

Для отключения ACPI Soft-Off можно воспользоваться командой chkconfig . Можно либо management to disable ACPI Soft-Off either by removing the ACPI daemon (acpid) from chkconfig management or by turning off acpid .

В наших с вами компьютерах существует множество опций, к существованию которых мы давно привыкли и воспринимаем их как должное. Среди них есть и такие, которые были введены в компьютерную жизнь благодаря принятию в середине 90-х гг. ведущими производителями компьютерного оборудования стандарта ACPI(Advanced Configuration and Power Interface - Расширенный интерфейс управления настройкой и питанием). Этот стандарт предоставляет операционной системе и, как следствие, пользователю компьютера мощные и эффективные средства для контроля аппаратных компонентов и управления их работой.

Например, в операционной системе Windows благодаря технологии ACPI пользователь может программно установить такие параметры, как временное или постоянное отключение компьютера или отдельных его компонентов, переход компьютера в режим пониженного энергопотребления, в спящий режим или в режим гибернации.

Эти функции кажутся нам теперь совершенно естественными, но в ранних версиях Windows, таких как Windows 95, не поддерживавших технологию ACPI (не говоря уже об операционных системах семейства DOS), операционная система не могла даже автоматически выключить компьютер, и пользователю приходилось самостоятельно нажимать кнопку питания для того, чтобы выключить системный блок.

Нельзя сказать, что стандарт ACPI появился на пустом месте. До его появления существовал стандарт управления питанием APM. Однако он поддерживался исключительно на уровне BIOS. Кроме того, его возможности были ограничены и в настоящее время этот стандарт практически не используется.

ACPI изначально разрабатывался в качестве открытого стандарта. Первая реализация ACPI была создана в 1996 году компаниями Toshiba, Intel и Microsoft, к которым позже присоединились Phoenix и Hewlett-Packard. Стандарт ACPI постоянно совершенствуется, а его последняя версия была выпущена в 2011 г. Первоначально в ACPI использовалась 16 и 32-битная адресация, которая позже сменилась 64-битной. В версии ACPI 3.0, вышедшей в 2004 г., была добавлена поддержка разъемов SATA, а также шины PCI Express.

На сегодняшний день эта технология поддерживается большинством операционных систем, а также процессорных архитектур. Помимо семейства ОС Microsoft Windows стандарт ACPI поддерживается также такими семействами ОС, как Linux и Free BSD.

Принцип работы

ACPI представляет собой независимый от платформы стандарт, облегчающий поиск устройств, их конфигурирование, управление питанием, а также мониторинг. Благодаря принятию стандарта ACPI были устранены конфликты между BIOS и операционной системой, и управление питанием стало осуществляться под контролем операционной системы.

Функции ACPI хранятся в БИОСЕ компьютера. Это справедливо, разумеется, для тех BIOS, которые поддерживают ACPI. Кроме того, для работы функций ACPI требуется поддержка технологии со стороны операционной системы.

ACPI на уровне BIOS состоит из нескольких компонентов, которые включают ядро ACPI и таблицы данных. В отличие от таких встроенных в BIOS технологий, как PnP, реализация ACPI в рамках BIOS не столь объемна, а функции ACPI BIOS ограничиваются организацией загрузки таблиц ACPI в память компьютера. Таблицы данных ACPI содержат сведения об аппаратной конфигурации и помогают операционной системе управлять аппаратными компонентами.

Преимущества

Какие же преимущества дает повсеместное внедрение стандарта ACPI простому пользователю?

Основная функция ACPI – контроль со стороны операционной системы за потреблением энергии всего компьютера и его отдельных компонентов. Например, при помощи функций ACPI операционная система может погрузить компьютер в режим сна, а также автоматически выключить питание. На практике пользователь может так настроить поведение компьютера, что он ничем не будет отличаться от электронной бытовой техники, такой, например, как музыкальный центр или телевизор, которые готовы к работе сразу же после того, как вы нажимаете их кнопку питания. При этом пользователь может пропустить ставшую традиционной загрузку компьютера.

Но этим возможности ACPI не ограничиваются. Пользователь может также запрограммировать поведение кнопки выключения питанием на системном блоке. При ее нажатии система будет спрашивать у вас, что делать - выключать ли компьютер, переводить ли его в спящий режим, режим гибернации, то есть, приостановки работы компьютера с сохранением текущей сессии, или ничего не делать. Единственной кнопкой на блоке, не зависящей от программных установок, на компьютере, поддерживающем ACPI, осталась лишь кнопка Reset.

Помимо контроля управления энергопитанием компьютера, технология предоставляет средства мониторинга состояния оборудования, что позволяет отслеживать такие параметры, как температура материнской платы и процессора, скорость вращения вентиляторов, и.т.д. Пользователи ноутбуков благодаря стандарту ACPI получили возможность следить за уровнем заряда батареи.

Стандарт ACPI определяет несколько режимов потребления энергия – номинальный режим, энергосберегающий режим, режим полной остановки, и.т.д. Эти режимы поддерживаются как всем компьютером, так и его отдельными компонентами, в том числе и центральным процессором.

Пользователь может настроить уровень поддержки ACPI компьютером, а также включить или выключить отдельные опции ACPI в БИОСЕ при помощи интерфейса настроек BIOS Setup.

Основные преимущества технологии:

  • Управление питанием компьютера и его компонентов программными средствами
  • Повышение экономичности компьютера
  • Разрешение конфликтов между BIOS и ОС при конфигурировании устройств
  • Платформенная независимость технологии ACPI

Заключение

Появление технологии ACPI является важным этапом эволюции компьютерных устройств. Благодаря появлению технологии ACPI компьютеры научились работать в более гибком режиме, подстраиваясь под нужды пользователя и стали более экономичными. Кроме того, благодаря ей упростился контроль со стороны операционной системы над аппаратным обеспечением компьютера.

Трудно приходится линуксоидам, не имеющим DE, а сидящим исключительно на WM - всё, что в полноценном Desktop Environment (окружении рабочего стола или как это лучше обозначить на великом и могучем?) поставляется и работает “из коробки” в WM нужно подбирать и настраивать. Вот и автором сего поста ранее были использованы элементы xfce для таких вещей как управление питанием, регулировка громкости звука и яркости экрана. Но вступило что-то в голову: ведь в моей системе всегда установлены acpi и laptop-mode-tools, так почему бы не обучить их выполнять их же непосредственные обязанности: делать всё то, для чего раньше нужны были xfce4-volumed и xfce4-power-manager?

Для обучения нам понадобятся пакеты laptop-mode-tools , acpi , acpid . Acpid должен быть запущен.

Уровень яркости экрана

Дописать в /etc/default/grub строки:

GRUB_CMDLINE_LINUX_DEFAULT =

Лезем в acpi

Создайте файлы со следующим содержанием:

Для увеличения яркости:

# /etc/acpi/actions/bl_up.sh # #!/bin/sh bl_device = /sys/class/backlight/intel_backlight/brightness echo $(($(cat $bl_device ) + 200 )) >$bl_device

и для уменьшения яркости

# /etc/acpi/actions/bl_down.sh: # #!/bin/sh bl_device = /sys/class/backlight/intel_backlight/brightness echo $(($(cat $bl_device ) - 200 )) >$bl_device

В bl_device замените inel_backlight на своё значение в зависимости от используемой видеокарты. Также стоит выяснить устраивающее вас значение, на основе которого будет увеличиваться или уменьшаться яркость экрана. У автора это значение = 200.

Как найти подходящее значение? Посмотрите какая цифра стоит сейчас. Если вы ничего ещё не настраивали, она должна отражать максимально допустимое значение:

# cat /sys/class/backlight/intel_backlight/brightness 4882

Теперь поиграйте со значениями, чтобы выбрать нужный шаг:

# echo 1000 > /sys/class/backlight/intel_backlight/brightness # echo 1010 > /sys/class/backlight/intel_backlight/brightness # echo 1100 > /sys/class/backlight/intel_backlight/brightness

Посмотрите как будет изменяться яркость экрана при разных значениях, если при добавлении 10 единиц вы практически не чувствуете разницы, добавьте ещё 50-100 единиц. Какой шаг покажется оптимальным, тот и оставьте.

Теперь укажем acpi использовать наши скрипты:

# /etc/acpi/events/bl_up # event = video[ /]brightnessup action = /etc/acpi/actions/bl_up.sh # /etc/acpi/events/bl_down # event = video[ /]brightnessdown action = /etc/acpi/actions/bl_down.sh

и сделаем эти скрипты исполняемыми:

# chmod +x /etc/acpi/actions/{bl_up.sh,bl_down.sh}

Чтобы автоматически подбирать яркость при работе от аккумулятора или же сети, установим laptop-mode-tools:

# pacman -S laptop-mode-tools

и немного изменим его настройки:

# /etc/laptop-mode/conf.d/lcd-brightness.conf # CONTROL_BRIGHTNESS = 1 # Commands to execute to set the brightness on your LCD # #BATT_BRIGHTNESS_COMMAND="echo " BATT_BRIGHTNESS_COMMAND = "echo 700" LM_AC_BRIGHTNESS_COMMAND = "echo 2000" NOLM_AC_BRIGHTNESS_COMMAND = "echo 3000" BRIGHTNESS_OUTPUT = "/sys/class/backlight/intel_backlight/brightness"

Разумеется, значения 700/2000/3000 и путь /sys/class/backlight/intel_backlight/brightness должны быть заменены на ваши значения.

Автогибернация при критическом уровне заряда батареи

Достаточно часто бывает такое, что при работе от батареи забываешь посматривать на уровень её заряда, в результате чего получаешь отключение машины при полной разрядке батареи. Внезапное - как хлопок - выключение и все несохранённые данные потеряны. Обидно, не правда ли? Поэтому неплохо было бы позаботиться о своевременных мерах предосторожности.

Для этих целей также будем использовать функционал laptop-mode.

# /etc/laptop-mode/conf.d/auto-hibernate.conf: # ENABLE_AUTO_HIBERNATION = 1 # # The hibernation command that is to be executed when auto-hibernation # is triggered. # HIBERNATE_COMMAND = /usr/share/laptop-mode-tools/module-helpers/pm-hibernate # # Auto-hibernation battery level threshold, in percentage of the battery"s # total capacity. # AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT = 4 # # Enable this to auto-hibernate if the battery reports that its level is # "critical". # AUTO_HIBERNATION_ON_CRITICAL_BATTERY_LEVEL = 1

Если вас не устраивают значения по умолчанию, вы также можете изменить их. В случае, если до этого момента у вас не был указан раздел swap, укажите его в grub2, эти настройки уже были даны выше:

# /etc/default/grub # GRUB_CMDLINE_LINUX_DEFAULT = "acpi_backlight=vendor resume=/dev/sda5"

где /dev/sda5 - ваш swap-раздел Кроме того, в случае с archlinux следует добавить хук suspend в /etc/mkinitcpio.conf:

HOOKS = "base udev autodetect modconf block filesystems usbinput fsck resume"

и пересобрать initrd:

# mkinitcpio -p linux

Регулировка звука

Для этого снова обратимся к скриптам acpi, как и в случае с управлением яркостью дисплея.

# /etc/acpi/actions/volume_up.sh # #!/bin/bash /usr/bin/amixer set Master 5%+ # /etc/acpi/actions/volume_down.sh # #!/bin/bash /usr/bin/amixer set Master 5%- # /etc/acpi/events/volume_up # event = button[ /]volumeup action = /etc/acpi/actions/volume_up.sh # /etc/acpi/events/volume_down # event = button[ /]volumedown action = /etc/acpi/actions/volume_down.sh

Делаем скрипты в actions исполняемыми:

# chmod +x /etc/acpi/actions/{volume_up.sh,volume_down.sh}

Для корректного распознавания мультимедийных клавиш, лучше использовать утилиту xmodmap .

$ xmodmap -pke > ~/.xmodmap $ vim .xinitrc: xmodmap ~/.xmodmap

Acpi и события клавиш

Честно говоря, меня устраивает поведение по-умолчанию, поэтому с пристрастием этот вопрос не рассматривался. При закрытии крышки ноутбука машина переходит в режим гибернации. При нажатии кнопки питания - корректно отключает систему. Оно и хорошо.

Похоже, управление этими событиями тоже берёт на себя laptop-mode-tools (только пока неясно, в каком модуле/скрипте лежат эти настройки), поскольку в /etc/acpi/handler.sh каких-либо действий на события не назначено.

Но таки рассмотрим как настраивать то или иное событие.

Ответственен за эти шаманские действа вышеупомянутый handler.sh (или default.sh в зависимости от используемого дистрибутива), где и прописываются настройки. В случае, если вам хочется использовать не команду, а скрипт, расположите его в отдельном файле, подобно тому, как выше настраивалось управление яркостью дисплея и уровнем громкости.

Пример из дефолта:

button/lid) case " $3 " in close) logger "LID closed" ;; open) logger "LID opened" ;; * ) logger "ACPI action undefined: $3 " ;; esac ;;

button/lid указывает на управление закрытием/открытием крышки ноутбука, пока здесь нет ничего интересного.

Пример с воспроизведением звукового файла при закрытии/открытии крышки ноутбука:

button/lid) case " $3 " in close) logger "LID closed" aplay /home/redvi/.scripts/message.wav ;; open) logger "LID opened" aplay /home/redvi/.scripts/message.wav ;; * ) logger "ACPI action undefined: $3 " ;; esac ;;

То есть для настройки события нужно добавить его команду в соответствующее поле (здесь после logger "LID closed"). Так, действие при открытии крышки нужно будет вписать после logger "LID opened" .

button/power - события, связанные с кнопкой управления питанием

logger "PowerButton pressed" - когда клавиша нажата

button/sleep - сон, если подобная кнопка/клавиша имеется

ac_adapter - события, связанные с подключением/отключением адаптера питания

logger "AC unpluged" - когда адаптер отключен

logger "AC pluged" - когда адаптер подключен

battery - батарея ноутбука

button/lid - крышка ноутбука

Для перевода в ждущий/спящий режимы можно использовать скрипты laptop-mode-tools из /usr/share/laptop-mode-tools/module-helpers: pm-hibernate и pm-suspend .

Для выключения питания при закрытии крышки достаточно добавить в /etc/acpi/actions/lm_lid.sh строку:

[ " $3 " = "close" ] && poweroff

Помимо всего вышеописанного мы можем контролировать парковку головок жёсткого диска. Дабы отключить парковку совсем пропишите в /etc/laptop-mode/laptop-mode.conf:

BATT_HD_POWERMGMT = 254 LM_AC_HD_POWERMGMT = 254 NOLM_AC_HD_POWERMGMT = 254

Пожалуй, на этом стоит остановиться и дать читателю возможность самостоятельно поэкспериментировать с настройками энергосбережения и событий acpi.

Похожие публикации