Дата и время публикации :
Назначение и использование
1. Назначение
Интерфейс расширенной настройкой и управлением питанием (англ. Advanced Configuration and Power Interface) относится к открытой индустриальной спецификации, разработанной Hewlett-Packard, Intel, Microsoft, Phoenix, и Toshiba. В настоящее время широко используется производителями не только для автоматизированного и визуального контроля за работоспособностью аппаратуры, но и в целях обеспечения доступа к расширенным функциям органов управления ввода данными и манупулирования ими.
2. Использование
Сегодня Linux выполняется на вычислительных машинах, например на нетбуке/ноутбуке или нетпаде, двух категорий тех, что:
- протестированы производителем на совместимость с Linux;
- никогда не тестировались с ним, но где предполагается его устанавливать взамен оригинальной ОС; например MS-Windows, который составляет львиную часть.
Поэтому, т.к. BIOS или UEFI ищет определенные идентификаторы выбранной производителем базовой ОСИ"-зла", например ноутбука, необходимо ПЕРЕДАТЬ в опциях ядру Linux так называемую строку OSI (англ. OSI string), которая идентифицирует какие вызовы ACPI, набор которых для каждой ОС определяется в отдельности, будут использоваться для обработки аппаратных средств. В таблице 2.1 приводятся значения OSI string для назначения базовой ОС.
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 производят модули ядра. Ниже перечисляются самые распространные, такие как
- ac (состояние разъема питания — подключен (turn in) / не подключен [turn in] )
- battery (статус батареи)
- button (захват событий кнопок подобных LID или POWER BUTTON)
- dock (состояние докстанции)
- fan (состояние вентиляторов)
- sbs (смарт-статус батареи)
- thermal (статус (измерения)температурных датчиков)
- video (статус видеоустройств)
Которые могут быть подключаемыми или наоборот встроенными в ядро. Для посмотра какие модули доступны следует выполнить команду, результат которой показан в дампе 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.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