× К оглавлению На главную Об авторе

   Дата и время публикации   :

Назначение и использование

1. Назначение

Интерфейс расширенной настройкой и управлением питанием (англ. Advanced Configuration and Power Interface) относится к открытой индустриальной спецификации, разработанной Hewlett-Packard, Intel, Microsoft, Phoenix, и Toshiba. В настоящее время широко используется производителями не только для автоматизированного и визуального контроля за работоспособностью аппаратуры, но и в целях обеспечения доступа к расширенным функциям органов управления ввода данными и манупулирования ими.

2. Использование

Сегодня Linux выполняется на вычислительных машинах, например на нетбуке/ноутбуке или нетпаде, двух категорий тех, что:

Поэтому, т.к. BIOS или UEFI ищет определенные идентификаторы выбранной производителем базовой ОСИ"-зла", например ноутбука, необходимо ПЕРЕДАТЬ в опциях ядру Linux так называемую строку OSI (англ. OSI string), которая идентифицирует какие вызовы ACPI, набор которых для каждой ОС определяется в отдельности, будут использоваться для обработки аппаратных средств. В таблице 2.1 приводятся значения OSI string для назначения базовой ОС.

Таблица 1.1
OSI String Базовая ОС
Windows 2009 Windows 7, Win Server 2008 R2
Windows 2012 Windows 8, Win Server 2012
Windows 2015 Windows 10
Windows 2016 Windows 10, version 1607
Windows 2017 Windows 10, version 1703
Windows 2017.2 Windows 10, version 1709
Windows 2018 Windows 10, version 1803
Windows 2018.2 Windows 10, version 1809
Windows 2019 Windows 10, version 1903

При этом нужно помнить, что информацию о базовой ОС производитель не всегда указывает в настройках BIOS, как показано на рисунке 2.1

Рисунок 2.1

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

Для подыграша ACPI в ядре Linux к базовой ОС, выбранной для работы с ACPI, необходимо в опциях ядра прописать опцию acpi_osi='OSI String', пример использование которой приводится в дампе 2.1 для базовой ОС – MS-Windows 10

Дамп 2.1


GRUB_CMDLINE_LINUX_DEFAULT="… acpi_osi='!Windows 2015' …" 

При этом, если в значении к acpi_osi перед 'OSI String' указать восклицательный знак (!), произойдет отмена всех известных строк OSI, а за тем будет осуществлен подыгрыш к базовой ОС MS-Windows 10

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

Которые могут быть подключаемыми или наоборот встроенными в ядро. Для посмотра какие модули доступны следует выполнить команду, результат которой показан в дампе 2.2

Дамп 2.2


ls -l /usr/lib/modules/$(uname -r)/kernel/drivers/acpi
итого 320
-rw-r--r-- 1 root root 16796 ноя 12 15:44 ac.ko
-rw-r--r-- 1 root root 22420 ноя 12 15:44 acpi_ipmi.ko
-rw-r--r-- 1 root root 27540 ноя 12 15:44 acpi_pad.ko
-rw-r--r-- 1 root root 25884 ноя 12 15:44 acpi_tad.ko
-rw-r--r-- 1 root root 40036 ноя 12 15:44 battery.ko
-rw-r--r-- 1 root root 29244 ноя 12 15:44 button.ko
drwxr-xr-x 2 root root  4096 ноя 16 11:12 dptf
-rw-r--r-- 1 root root 19196 ноя 12 15:44 fan.ko
drwxr-xr-x 2 root root  4096 ноя 16 11:12 nfit
-rw-r--r-- 1 root root 17492 ноя 12 15:44 sbshc.ko
-rw-r--r-- 1 root root 24004 ноя 12 15:44 sbs.ko
-rw-r--r-- 1 root root 76612 ноя 12 15:44 video.ko

На уровне пользователя, в Debian/linux существует пакеты, которые сообщают ту или иную информацию и реализуют доступ к функциям управления ACPI. Перечислим основные из них.

Пакет acpi – показывает информацию об устройствах ACPI,

Пакет acpi-call-dkms – модуль ядра, которые позволяют обращаться к методам ACPI

Пакет acpi-support – содержит скрипты, реагирующие на различные события ACPI

Пакет acpi-fakekey – утилита генерации ключевых псевдособытий ACPI.

Установка пакетов показана в дампе 2.3

Дамп 2.3


# apt install acpi acpi-call-dkms acpi-support acpi-fakekey

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

Дамп 2.4


$ acpi -V
Battery 0: Discharging, 0%,  remaining
Battery 0: design capacity 4050 mAh, last full capacity 3682 mAh = 90%
Adapter 0: off-line
Thermal 0: ok, 38.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 98.0 degrees C
Cooling 0: Processor 0 of 10
Cooling 1: Processor 0 of 10
Cooling 2: Processor 0 of 10
Cooling 3: Processor 0 of 10
Cooling 4: Processor 0 of 10
Cooling 5: Processor 0 of 10
Cooling 6: Processor 0 of 10
Cooling 7: Processor 0 of 10

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

3. Библиография

3.1 ArchWiki.ACPI modules

3.2 IXBT.Технологии ACPI и OnNow

3.3 Asus Laptop Extras on kernel.org

3.4 How to search the forum on forum.manjaro.org

3.5 How to Identify the Windows Version in ACPI by Using _OSI