Данная  статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с установленным оперативным обновлением БЮЛЛЕТЕНЬ № 20200327SE16 (оперативное обновление 5)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Данная статья представляет собой обзор различных методов энергосбережения, доступных при работе с Astra Linux. Статья написана на основе документации на инструменты командной строки для управления энергосбережением :

Инструменты tlp и laptop-mode  выполняют сходные функции и несовместимы между собой. Использовать следует только один из них.

Кроме того, инструмент laptop-mode частично дублирует некоторые функции (яркость подсветки, гашение монитора) штатных инструментов Astra Linux (fly-admin-power, powerdevil).  Следует применять настройки, не приводящие к конфликту используемых инструментов.



Общие сведения

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

TLP и laptop-mode-tools (далее - LMT) являются не интерактивными инструментами, и позволяют снижать энергопотребление без необходимости вникать во все технические детали. Эти инструменты устанавливаются в конфигурации, уже оптимизированной для обеспечения максимального времени работы батарей, и могут быть настроены для соответствия специфическим требованиям и/или программно-аппаратным платформам.

Замечания:

  • TLP работает на всех моделях ноутбуков, однако установка порогов зарядки батарей доступна только на IBM/Lenovo ThinkPad;
  • TLP не поддерживает управление яркостью подсветки дисплея и очисткой терминала, так как это дублирует возможности других пакетов, в частности, пакета powerdevil, штатно использующегося в Astra Linux для управления электропитанием;
  • LMT  поддерживает управление яркостью подсветки дисплея и очисткой терминала, что может конфликтовать со штатным для Astra Linux пакетом powerdevil;

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

Основные возможности (на примере TLP):

  • Laptop-режим ядра и таймауты "грязных" буферов;
  • Управление рабочей частотой процессоров включая режимы разгона ("turbo boost" / "turbo core") и пониженного напряжения ("undervoltage");
  • Ограничение минимальных/максимальных режимов энергопотребления для контроля нагрева процессоров (только intel_pstate);
  • Поддержка технологии управления энергопотреблением HWP (Технология HWP позволяет процессорам самостоятельно выбирать свою скорость работы без использования множителей частоты, обеспечивая более быстрое реагирование на изменения нагрузки);
  • Поддержка политик баланса производительности/энергосбережения (x86_energy_perf_policy);
  • Расширенное управление электропитанием НЖМД (Advanced Power Magement level, APM) и индивидуальное управление остановкой дисков;
  • Управление электропитанием периферийных устройств в соответствии со стандартом AHCI (Link Power Management, ALPM) с поддержкой списков устройств;
  • Управление в соответствии со стандартом AHCI рабочим питанием контроллеров и накопителей (экспериментальная возможность);
  • Управление активным состоянием шины PCIe (PCIe active state power management, ASPM);
  • Управление рабочим питанием устройств, подключенных к шине  PCIe;
  • Управление энергопотреблением графических карт Intel/AMD Radeon GPU (KMS and DPM);
  • Автоматическое подключение/отключение интегрированных беспроводных устройств;
  • Отключение оптических приводов;
  • Режим энергосбережения для аудио устройств.
  • Планировщик операций ввода/вывода с возможностью установки планировщика индивидуально для каждого носителя;
  • Автоматический перевод в режим ожидания устройств USB с черным/белым списками и автоматическим исключением устройств ввода;
  • Подключение/отключение интегрированных устройств wifi, bluetooth, wwan при старте/выключении системы;
  • Восстановление сохранённого при выключении системы состояния беспроводных устройств при старте системы;
  • Управление беспроводными устройствами: переключение по подключению/отключению  к сети или доку;
  • Запрет пробуждения по сети (Wake On LAN);
  • Восстановление состояния интегрированных устройств WWAN и bluetooth после режимов ожидания/гибернации;
  • Пороги зарядки батарей и перекалибровка батарей (только ThinkPad-ы);

PowerTOP

Установка

Пакет powetop входит в дистрибутивы:

  • Astra Linux Special Edition РУСБ.10015-16 исп. 2;
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1);
  • Astra Linux Common Edition 2.12.

и устанавливается автоматически при установке ОС.

Основные концепции управления электропитанием

Активная мощность - мощность, потребляемая системой при активной работе, например, мощность, потребляемая при просмотре WEB-страниц.

Мощность холостого хода - мощность, потребляемая в отстутствие использования, или мощность, потребляемая в режимах, когда задействованы не все компоненты системы. Например, при редактировании документов для увеличения времени работы от батарей могут быть отключены SSD-накопители или устройства Wi-Fi.

Расширенный интерфейс настройки и управления питанием (Asvanced Configuration and Power Interface, ACPI) - стандартный интерфейс, обеспечивающий операционным системам доступ к настройке управления питанием  и тепловыделением для мобильных устройств,  ноутбуков, настольных компьютеров.

Cи-состояния ACPI (ACPI C-states) - системы, работающие по стандарту ACPI, могут находиться в одном из 4-х состояний: C0, C1, C2 и C3. Обычно отображаются системным BIOS-ом на внутренние Cи-состояния компонентов аппаратной платформы. Могут быть получены операционной системой через драйверы acpi_idle или intel_idle. Определить используемый драйвер можно командой

sudo cat /sys/devices/system/cpu/cpuidle/current_driver
При этом драйвер intel_idle может отображать внутренние Си-состояния процессоров Intel, а драйвер acpi_idle может отображать только Си-состояния ACPI.

Драйвер itel_idle - драйвер холостого режима процессоров, поддерживающий современные процессоры Intel. Этот драйвер представляет ядру данные для прогнозирования продолжительности простоя процессоров.

Си-состояния процессора (CPU C-state) - при переходе платформы в режим холостой работы операционная система может переводить процессоры в состояния пониженного энергопотребления. Эти состояния (Си-состояния процессора) применяются к отдельным ядрам. Обозначение C0 используется для полностью включенного работающего процессора. Переход к каждому следующему  состоянию (C1 - Cn) выполняется отключением всё большего набора частей процессора.

Пакетные Си-состояния (PC-state или PCx) - обозначают перевод всех ядер в некоторое состояние, и отражают состояние ядра с самым высоким энергопотреблением. Так, например, 4-х ядерная система, в которой одно ядро находится в состоянии C3, а остальные - в состоянии C6, будет находиться в пакетном состоянии PC3.

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

sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver.
Интерфейсы управления драйвера intel_pstate находится в каталоге /sys/devices/system/cpu/intel_pstate/:

ИнтерфейсДопустимые значенияОписание
no_turbo0 или 1Разрешение/запрещение режима CPU Turbo Boost. Значение 1 запрещает этот режим
max_perf_pct0% - 100%Максимально допустимая частота процессора. По умолчанию 100%. Значение 0% переводит систему в режим LFM (минимально возможной рабочей частоты).
min_perf_pct0% - 100%Минимально допустимая частота процессора. По умолчанию 20%. Значение 100% переводит систему в режим HFM (максимально возможной рабочей частоты).

Работа с PowerTOP

PowerTOP необходимо запускать с привилегиями суперпользователя.

Параметры запуска:

КомандаОписание
sudo powertopИнтерактивный режим работы. См. ниже.
sudo powertop --html[=ИМЯ_ФАЙЛА]Генерация отчёта в формате HTML. Если ИМЯ_ФАЙЛА не задано - отчёт сохраняется в файле powertop.html.
sudo powertop --csv[=ИМЯ_ФАЙЛА]Генерация отчёта в формате CSV. Если ИМЯ_ФАЙЛА не задано - отчёт сохраняется в файле powertop.csv.
sudo powertop --debugЗапуск режима отладки. Измерения для каждого устройства выполняются 750 раз, по  методу наименьших квадратов определяется пригодность измерений, выводится список устройств с их относительными рейтингами. Рейтинги применяются для оценки энергопотребления каждым устройством.
sudo powertop --calibrateВыполняется серия измерений с применением различных настроек режимов ожидания для различных устройств. Режим полезен при оценке настроек яркости экрана.
sudo powertop --auto_tuneВключает все опции энергосбережения (изменения действуют до перезагрузки системы).
sudo powertop --workload=ИМЯ_ФАЙЛАОценка энергопотребления под нагрузкой. ИМЯ_ФАЙЛА задаёт двоичный исполнимый файл, использующийся в качестве нагрузки.
sudo powertop --extech=УСТРОЙСТВОРежим работы с подключенным анализатором мощности.

Дополнительные опции:

ОпцияОписание
--versionВывести версию программы
--time[=x]Создать отчет за х секунд
--iteration[=x]Выполнить х итераций
--quietЗапретить вывод ошибок
--helpСправка по программе

Работа в интерактивном режиме

Закладка Overview

Закладка "Overview" представляет список наиболее энергопотребляющих объектов, заставляющих процессоры находиться в активном состоянии. Эта закладка показывает время использования, количество событий, тип и описание объекта, а способ понижения энергопотребления состоит в сокращении количества событий. Для корректной работы этой закладки должны быть выполнены следующие требования:

  1. Очищен каталог /var/cache/posertop/;
  2. Система должна работать только на батарейном питании, без подключения к постоянному источнику питания;
  3. Убедитесь, что в системе присутствует /sys/class/powecap/intel_rapl (в Astra Linux присутствует);
  4. Для составления правильной модели энергопотребления PowerTOP дожен быть запущен несколько раз (необходимое количество запусков отображается при завершении работы программы).
    После достаточного количества запусков результат сохраняется в файле /var/cache/powertop/saved_results.powertop.
    Для запуска PowerTOP необходимое количество раз можно использовать, например, команду:

    for (( i=0 ;  i<1000;  i++ )) ; do sudo powertop –time=10 --html ; done

Закладка Idle Stats

Закладка "Idle Stats" отображает статистику Си-состояний представленных в системе центральных и графических процессоров. На платформах Intel отображается список Си-состояний соответствующих процессорам, ядрам и пакетам.

Закладка Frequency Stats

Закладка "Frequency Stats" отображает статистику состояний системы относительно состояния ожидания. Для полного отображения состояний, поддерживаемых процессорами Intel, рекомендуется использовать драйвер intel_idle. Кроме того, в настройках управления энергосбереженим должен быть указан режим, отличный от "performance", иначе будет отображаться только максимальная производительность процессоров.

Закладка Device Stats

Закладка "Device Stats" отображает список устройств, расходующих наибольшее количество энергии.

Закладка Tunables

Закладка "Tunables" отображает список устройств, представленных в системе. Устройства, не настроенные на режим энергосбережения, помечаются меткой "Bad", настроенные - меткой "Good". Настройки устройств можно переключать,  при этом отображаются выполняющиеся при переключении команды. Сделанные изменения не становятся постоянными, и могут быть отменены перезагрузкой системы. Убедившись, что изменения настройки не делают систему нестабильной, нужно вручную сделать их постоянными.
Все доступные настройки могут быть переведены в состояние "Good" командой

sudo powertop --auto_tune
Подробная информация о возможных настройках доступна по ссылке.

TLP

Установка

Пакет tlp доступен в репозиториях Astra Linux:

  • Astra Linux Special Edition x.7;
  • Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 - начиная с оперативного обновления БЮЛЛЕТЕНЬ № 20200327SE16 (оперативное обновление 5);
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2

  • Astra Linux Common Edition начиная с обновления 2.12.19;
  • Для более ранних обновлений: для установки пакета подключить репозиторий Debian stretch-backport, а в Astra Linux Special Edition дополнительно подключить ещё репозиторий Astra Linux Common Edition:

При подключенных репозиториях установка пакета может быть выполнена командами:

sudo apt update && sudo apt install tlp tlp-rdw
Дополнительно для использования всех возможностей можно установить еще пакет

  • linux-tools - для управления напряжением электропитания процессора;

Если на компьютере предполагается использовать Удаленное включение компьютеров по сети, то следует запретить службе tlp отключение этой  возможности. Для этого в конфигурационном файле /etc/default/tlp параметр конфигурации WOL_DISABLE привести к виду:

WOL_DISABLE=N

После установки сервис следует запустить командой:

sudo systemctl start tlp
После перезагрузки системы сервис запускается автоматически.

Настройка

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

sudo tlp start
Параметры конфигурации TLP находятся  в файле /etc/default/tlp. В этом же файле находится ссылка на полную документацию.
Пример файла с комментариями см. в раскрывающейся вкладке:

# ------------------------------------------------------------------------------
# tlp - Параметры энергосбережения
# См. полной описание: https://linrunner.de/en/tlp/docs/tlp-configuration.html

# Замечание: некоторые возможности отключены по умолчанию, удалите лидирующий символ # чтобы включить их.

# 0 - запретить, 1 - разрешить TLP.
TLP_ENABLE=1

# Режим работы когда источник питания (AC, BAT) не может быть определён.
# Используется для настольных компьютеров и встроенного оборудования.
TLP_DEFAULT_MODE=AC

# Выбор режима работы: 0=в зависимости от источника питания, 1=всегда режим TLP_DEFAULT_MODE
# Замечание: используйте TLP_DEFAULT_MODE=BAT для переключения в режим работы от батарей (BAT) при работе от сети (AC).
TLP_PERSISTENT_DEFAULT=0

# Для laptop-режима ядра время ожидания (секунды) после простоя диска до повторной синхронизации "грязных" страниц.
# Ненулевое значение включает laptop-режим ядра, нулевое отключает laptop-режим ядра.
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2

# Время ожидания (секунды) до записи файловых данных на диск.
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60

# Замечание: нижеуказанные параметры процессора CPU по умолчанию отключены, удалите # для их применения, иначе будут использованы значения ядра.

# Выбор способа управления частотой процессора.
# Процессор Intel Core i с драйвером intel_pstate:
# powersave(*), performance.
# Более старое оборудование с драйвером  acpi-cpufreq:
# ondemand(*), powersave, performance, conservative, schedutil.
# Рекомендованный вариант отмечен как (*).
# Замечание: используйте команду tlp-stat -p для просмотра активного драйвера и доступных способов управления.
# Важно:
# режимы powersave для intel_pstate и ondemand для acpi-cpufreq эффективны
# практически для всех видов нагрузки и поэтому ядро в большинстве случаев
# выбирает их "по умолчанию". Если вы хотите изменить режимы,
# вы должны понимать, что делаете! Вы *обязаны* отключить режимы из
# вашего дистрибутива, иначе произойдёт конфликт настроек.
#CPU_SCALING_GOVERNOR_ON_AC=powersave
#CPU_SCALING_GOVERNOR_ON_BAT=powersave

# Устанавливает минимальное/максимальное значения частоты, доступные для установки.
# Возможные значения сильно зависят от используемого процессора. Доступные частоты можно
# проверить командой tlp-stat -p.
#CPU_SCALING_MIN_FREQ_ON_AC=0
#CPU_SCALING_MAX_FREQ_ON_AC=0
#CPU_SCALING_MIN_FREQ_ON_BAT=0
#CPU_SCALING_MAX_FREQ_ON_BAT=0

# Установка баланса (HWP) для режима Intel P-state:
# performance, balance_performance, default, balance_power, power
# Значения даны в порядке роста энергосбережения.
# Замечание: Необходим процессор Intel Skylake или более новый и ядро версии >= 4.10.
CPU_HWP_ON_AC=balance_performance
CPU_HWP_ON_BAT=balance_power

# Установка производительности Intel P-state: 0..100 (%).
# Ограничивает минимальное/максимальное состояние  P-state для управление тепловыделением процессора.
# Значения представляются как проценты доступной производительности.
# Необходим процессор Intel Core i с драйвером intel_pstate.
#CPU_MIN_PERF_ON_AC=0
#CPU_MAX_PERF_ON_AC=100
#CPU_MIN_PERF_ON_BAT=0
#CPU_MAX_PERF_ON_BAT=30

# Установка режима процессора "turbo boost": 0=запрещён, 1=разрешён
# Необходим процессор Intel Core i.
# Важно:
# - Эта установка может конфликтовать с настройками дистрибутива.
# -Значение 1 не включает разгон, а только разрешает его.
#CPU_BOOST_ON_AC=1
#CPU_BOOST_ON_BAT=0

# Минимизация количества используемых ядер/потоков процессоров при низких нагрузках
# 0=запрещена, 1=разрешена.
SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=1

# Контроль зависаний системы (Kernel NMI Watchdog):
# 0=отключен (по умолчанию, энергосберегающий режим), 1=включен (только для отладки ядра).
NMI_WATCHDOG=0

# Снижение напряжения питания процессора ("undervolting") - требуется ядро с патчем PHC.
# Пары частота/напряжение записываются в:
# /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
# Предупреждение: используйте это только если понимаете, что делаете!
#PHC_CONTROLS="F:V F:V F:V F:V"

# Выбор политики баланса энергопотребления/производительности процессора:
# performance, balance-performance, default, balance-power, power.
# Значения даны в порядке роста энергосбережения.
# Требуется модуль ядра msr и инструмент x86_energy_perf_policy из пакета linux-tools версии, соответствующей используемой версии ядра.
ENERGY_PERF_POLICY_ON_AC=performance
ENERGY_PERF_POLICY_ON_BAT=power

# Список контролируемых дисковых устройств; разделяются пробелами (по умолчанию: sda).
# Устройства также могут быть заданы идентификатором (команда: tlp diskid).
DISK_DEVICES="sda sdb"

# Уровень расширенного управления питанием дисков : 1..254, 255 (1 - максимальное энергосбережение, 254 - минимальное, 255 - отключено).
# Уровни 1..127 могут замедлить работу диска; 255 применимо к большинству устройств.
# Значения для разных дисков разделяются пробелами. Используйте специальное значение 'keep'
# для сохранения аппаратных умолчаний.
DISK_APM_LEVEL_ON_AC="254 254"
DISK_APM_LEVEL_ON_BAT="128 128"

# Таймаут остановки вращения дисков:
# 0: spin down disabled
# 1..240: timeouts from 5s to 20min (in units of 5s)
# 241..251: timeouts from 30min to 5.5 hours (in units of 30min)
# См. 'man hdparm' для подробностей.
# Значения для разных дисков разделяются пробелами. Используйте специальное значение 'keep'
# для сохранения аппаратных умолчаний.
#DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
#DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"

# Выбор планировщика для дисков: cfq, deadline, noop (По умолчанию: cfq).
# Значения для разных дисков разделяются пробелами. Используйте специальное значение 'keep'
# для сохранения планировщика, выбранного ядром по умолчанию.
#DISK_IOSCHED="cfq cfq"

# Управление питанием AHCI link power management (ALPM) для дисковых устройств:
# min_power, med_power_with_dipm(*), medium_power, max_performance.
# (*) Требуется версия ядра >= 4.15, рекомендуется более поздняя.
# Значения разделяются пробелами, и применяются последовательно до успеха.
SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"

# Исключение host-устройств из AHCI link power management.
# Имена разделяются пробелами.
#SATA_LINKPWR_BLACKLIST="host1"

# Управление рабочим питанием для AHCI host- и  дисковых устойств:
# on=отключить, auto=включить.
# ТЕСТИРУЕТСЯ **Предупреждение: auto вероятно приведёт к зависанию системы.
#AHCI_RUNTIME_PM_ON_AC=on
#AHCI_RUNTIME_PM_ON_BAT=on

# Время неактивности (секунды) до перевода диска в режим ожидания.
AHCI_RUNTIME_PM_TIMEOUT=15

# Управление питанием шины PCI (PCIe ASPM):
# default, performance, powersave.
PCIE_ASPM_ON_AC=performance
PCIE_ASPM_ON_BAT=powersave

# Частота видеокарт Radeon (profile method): low, mid, high, auto, default;
# auto = mid on BAT, high on AC; default = use hardware defaults.
RADEON_POWER_PROFILE_ON_AC=high
RADEON_POWER_PROFILE_ON_BAT=low

# Динамическое управления питанием видеокарт Radeon (DPM): battery, performance.
RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=battery

# Уровень производительности Radeon DPM: auto, low, high; рекомендуется auto.
RADEON_DPM_PERF_LEVEL_ON_AC=auto
RADEON_DPM_PERF_LEVEL_ON_BAT=auto

# Режим энергосбережения WiFi: on=включен, off=выключен; поддерживается не всеми адаптерами.
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=on

# Запрет пробуждения по сети (wake on LAN): Y/N.
WOL_DISABLE=Y

# Включение энергосбережения для аудио устройств Intel HDA, AC97 (таймаут в секундах).
# Значение 0 выключает, >=1 включает энергосбережение (рекомендуется 1).
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1

# Отключение и контроллера тоже (толко HDA): Y/N.
SOUND_POWER_SAVE_CONTROLLER=Y

# Управление питанием привода оптических дисков UltraBay/MediaBay: 0=отключено, 1=включено.
# Привод может быть запитан повторно извлечением и повторной загрузкой лотка
# или нажатием кнопки выброса диска на новых моделях.
# Замечание: жесткие диски UltraBay/MediaBay не отключаются никогда.
BAY_POWEROFF_ON_AC=0
BAY_POWEROFF_ON_BAT=0
# Оптические приводы для отключения (по умолчанию sr0).
BAY_DEVICE="sr0"

# Управление рабочим питанием устройств PCI(e) : on=разрешено, auto=не разрешено.
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto

# Адреса устройств PCI(e), исключаемых из управления.
# (разделяются пробелами). Для получения адресов используйте команду  lspci (1-й столбец).
#RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6"

# Драйверы устройств PCI(e), исключаемых из управления.
# По умолчанию "amdgpu nouveau nvidia radeon" что предотвращает
# случайное включение дисеретных видеокарт в гибридных конфигурациях.
# Используйте "" для полного отключения. Команда tlp-stat -e для получения списка.
# Имена разделяются пробелами.
#RUNTIME_PM_DRIVER_BLACKLIST="amdgpu nouveau nvidia radeon"

# 0 для отключение, 1 для включения автоматического перевода устройств USB в режим ожидания.
USB_AUTOSUSPEND=1

# Исключение перечисленных устройств (разделяются пробелами).
# Команда lsusb для получения идентификаторов.
# Замечание: устройства ввода (usbhid) исключаются автоматически.
#USB_BLACKLIST="1111:2222 3333:4444"

# Исключение устройств Bluetooth из автоматического перевода в режим ожидания:
# 0=не исключать, 1=исключить.
USB_BLACKLIST_BTUSB=0

# Исключение телефонов Phone из автоматического перевода в режим ожидания:
# 0=не исключать, 1=исключить (позволяет заряжать устройства).
USB_BLACKLIST_PHONE=0

# Исключение принтеров:
# 0=не исключать, 1=исключить.
USB_BLACKLIST_PRINTER=1

# Исключение устройств WWAN:
# 0=не исключать, 1=исключить.
USB_BLACKLIST_WWAN=1

# Включение перечисленных устройств в список управляемых даже если они уже исключены
# в списках выше.
# Команда lsusb для получения идентификаторов.
#USB_WHITELIST="1111:2222 3333:4444"

# 1 для отключения перевода в режим ожидания перед выключением системы, 0 ничего не менять
# (для устройств, создающих проблемы при отключении системы).
#USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1

# Восстановление сохранённого при предыдущем выключении системы состояния устройств (Bluetooth, WiFi, WWAN)
# при запуске системы: 0=отключено, 1=включено.
# Замечание: параметры DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN ниже
# игнорируются, когда восстановление включено этим параметром!
RESTORE_DEVICE_STATE_ON_STARTUP=0

# Беспроводные устройства для отключения при старте системы: bluetooth, wifi, wwan.
#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"

# Беспроводные устройства для включения при старте системы: bluetooth, wifi, wwan.
#DEVICES_TO_ENABLE_ON_STARTUP="wifi"

# Беспроводные устройства для отключения при выключении системы: bluetooth, wifi, wwan.
# (для устройств, блокирующих отключение системы).
#DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan"

# Беспроводные устройства для включения при выключении системы: bluetooth, wifi, wwan.
# (чтобы другие ОС не теряли устройства).
#DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan"

# Беспроводные устройства для включения при питании от сети: bluetooth, wifi, wwan.
#DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan"

# Беспроводные устройства для выключения при питании от батареи: bluetooth, wifi, wwan.
#DEVICES_TO_DISABLE_ON_BAT="bluetooth wifi wwan"

# Беспроводные устройства для выключения при питании от батареи и неиспользовании (не находящимся на связи): bluetooth, wifi, wwan.
#DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan"

# Пороги зарядки батарей (только ThinkPad, требуется модуль ядра tp-smapi или acpi-call.
# Зарядка начинается когда остаточная ёмкость батареи падает ниже
# START_CHARGE_THRESH и прекращается при превышении STOP_CHARGE_THRESH
# Главная / Внутренняя батарея (значения в %)
#START_CHARGE_THRESH_BAT0=75
#STOP_CHARGE_THRESH_BAT0=80
# Батареи Ultrabay / Slice / Replaceable battery (значения в %)
#START_CHARGE_THRESH_BAT1=75
#STOP_CHARGE_THRESH_BAT1=80

# Восстановление порогов зарадки при отключении сети: 0=отключено, 1=включено.
#RESTORE_THRESHOLDS_ON_BAT=1

# ------------------------------------------------------------------------------
# tlp-rdw - параметры управления беспроводными устройствами
# Возможные устройства: bluetooth, wifi, wwan.

# Замечание:
# - Параметры по умолчанию закомментированы, удалите # для использования
# - Разделитель - пробел

# Устройства для отключени при подключении
#DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
#DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan"
#DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi"

# Устройства для включени при отключении
#DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan"
#DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT=""
#DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT=""

# Устройства для включения/отключения при установке в док:
#DEVICES_TO_ENABLE_ON_DOCK=""
#DEVICES_TO_DISABLE_ON_DOCK=""

# Устройства для включения/отключения при извлечении из дока:
#DEVICES_TO_ENABLE_ON_UNDOCK="wifi"
#DEVICES_TO_DISABLE_ON_UNDOCK=""

LMT

Установка

На момент написания статьи пакет laptop-mode-tools не входит в дистрибутивы и репозитории Astra Linux. Для его установки на следует подключить репозиторий Debian stretch:

deb http://archive.debian.org/debian stretch main contrib non-free

После подключения репозиториев установка может быть выполнена командами:

sudo apt update && sudo apt install laptop-mode-tools
После установки сервис laptop-mode запускается автоматически. После перезагрузки системы сервис запускается автоматически.

Настройка

Основные параметры настройки LMT находятся в файле /etc/laptop-mode/laptop-mode.conf.
Кроме того, в каталоге /etc/laptop-mode/conf.d/ размещаются конфигурационные файлы ("модули") содержащие подробные комментарии по применению для различных платформ.

Каждый модуль содержит параметр CONTROL_*, и если в основном файле конфигурации /etc/laptop-mode/laptop-mode.conf указан параметр ENABLE_AUTO_MODULES=1, LMT пытается включить все свои модули, в которых параметру CONTROL_* присвоено значение "auto". Есть два исключения: модули auto-hibernate.conf и battery-level-polling.conf используют ENABLE_* вместо CONTROL_*.

Быстро проверить статус всех модулей можно командой

grep -r '^\(CONTROL\|ENABLE\)_' /etc/laptop-mode/conf.d

Работа с жесткими дисками

Для работы с жесткими дисками должны быть установлены пакеты hdparm и sdparm.

LMT может управлять остановкой жестких дисков (hdparm -S), что снижает энергопотребление и делает работу оборудования существенно тише. Поддерживается настройка упреждающего (read-ahead, hdparm -a) чтения, что позволяет останавливать диски чаще не прекращая работу компьютера. LMT может также  управлять параметрами энергопотребления дисков (значения устанавливаются командой hdparm -B). Минимальное потребление соответствует значению 1 и максимальное значению 254. Например, можно использовать значения 254 для сетевого и 20 для батарейного питания. Если нормальная работа при этом замедляется в ожидании готовности дисков, можно для батарейного питания установить большее значение (например, 128) . Значения для hdparm -S и hdparm -B настраиваются в файле /etc/laptop-mode/laptop-mode.conf.

Слишком частые остановки дисков могут уменьшить их время жизни. Выбирайте значения осторожно.

Опция CONTROL_MOUNT_OPTIONS  (значение по умолчанию on), LMT автоматически перемонтирует дисковые разделы, применяя параметры монтирования commit=600,noatime. Параметр commit указывает программе записи журналов (jbd2) интервал записи журналов на диск (commit=600 указывает обращаться к диску раз в 10 минут вместо обращения каждые 5 секунд по умолчанию).

С такими настройками (commit=600) могут быть потеряны до 10 минут работы или разрушена файловая система.
Использование параметра монтирования noatime  (запрет записи времени последнего доступа к файловому объекту) может нарушить работу некоторых программ. Рекомендуется использовать параметр realtime.


Опция CONTROL_MOUNT_OPTIONS неприменима к дисковым разделам с файловой системой nilfs2 (не путать с NTFS).

Работа с SSD-накопителями

Laptop-режим ядра сокращает количество записей, что повышает время жизни SSD, и укрупняет операции записи, что, позволяет использовать такие механизмы энергосбережения, как ALPM. Однако выигрыш сильно зависит от используемого оборудования.

Управление частотой процессора

Для управления частотой процессора нужны драйверы, поддерживающие эту возможность.
Параметры управления частотой процессора находятся в файле /etc/laptop-mode/conf.d/:

# cpufreq.conf
# ThinkPad T40/T42/T60 Example
#
CONTROL_CPU_FREQUENCY=1
BATT_CPU_MAXFREQ=fastest
BATT_CPU_MINFREQ=slowest
BATT_CPU_GOVERNOR=ondemand
BATT_CPU_IGNORE_NICE_LOAD=1
LM_AC_CPU_MAXFREQ=fastest
LM_AC_CPU_MINFREQ=slowest
LM_AC_CPU_GOVERNOR=ondemand
LM_AC_CPU_IGNORE_NICE_LOAD=1
NOLM_AC_CPU_MAXFREQ=fastest
NOLM_AC_CPU_MINFREQ=slowest
NOLM_AC_CPU_GOVERNOR=ondemand
NOLM_Acsudo ap_CPU_IGNORE_NICE_LOAD=0
CONTROL_CPU_THROTTLING=0

Устройства и шины

Intel SATA

Включение Intel SATA AHCI controller Aggressive Link Power Management: переключение диска в режим минимального энергопотребления в отсутствие операций ввода/вывода.
Режим подробно описан в комментариях к файлу /etc/laptop-mode/conf.d/intel-sata-powermgmt.conf

#
# Configuration file for Laptop Mode Tools module intel-sata-powermgmt.
#
# For more information, consult the laptop-mode.conf(8) manual page.
#


###############################################################################
# Intel SATA power management settings
# ------------------------------------
#
#__COMMENT If you enable this setting, laptop mode tools will automatically enable the
#__COMMENT link power management mode of Intel AHCI compliant SATA chipsets.
#__COMMENT On newner kernels (4.6+), it can also help enabled AHCI Runtime PM savings
#
###############################################################################

# Enable debug mode for this module
# Set to 1 if you want to debug this module
DEBUG=0

# Control Intel SATA chipset power management?
# Set to 0 to disable
CONTROL_INTEL_SATA_POWER="auto"


# Enable AHCI Runtime PM
# This feature was added with Linux kernels 4.6+
CONTROL_AHCI_RUNTIME_PM=1

# Handle power management of the Intel SATA host controller under specific
# circumstances. Legal values are "min_power" (maximum power saving at the
# expense of higher latencies), "medium_power" (reduce latencies to a minimum
# while still trying to enable power-saving features), "max_performance" (power
# management is disabled). Note that setting any level besides
# "max_performance" also disables device hotplug.
BATT_SATA_POLICY=min_power
LM_AC_SATA_POLICY=max_performance
NOLM_AC_SATA_POLICY=max_performance

Автоматический режим ожидания USB

Режим описан в файле /etc/laptop-mode/conf.d/runtime-pm.conf. Устройства, которые используются всегда (например, мышь, подключенная к USB), должны быть внесены в список исключений.

#
# Configuration file for Laptop Mode Tools module runtime-pm
#
# For more information, consult the laptop-mode.conf(8) manual page.
#


###############################################################################
# Runtime Power Management Settings
# ---------------------------------
#
#__COMMENT If you enable this setting, laptop mode tools will automatically enable
#__COMMENT the Runtime Power Management feature for all devices.
#__COMMENT
#__COMMENT NOTE: Some devices claim they support autosuspend, but implement it in a
#__COMMENT broken way. This can mean keyboards losing keypresses, or optical mice
#__COMMENT turning their LED completely off. If you have a device that misbehaves,
#__COMMENT add its DEVICE ID to the blacklist section below and complain to your
#__COMMENT hardware / device driver contact
#
################################################################################

# Enable debug mode for this module
# Set to 1 if you want to debug this module
DEBUG=0

# Enable Runtime autosuspend feature?
# Set to 0 to disable
CONTROL_RUNTIME_AUTOSUSPEND=1

# Set this to use opt-in/whitelist instead of opt-out/blacklist for deciding
# which devices should be autosuspended.
# AUTOSUSPEND_USE_WHITELIST=0 means AUTOSUSPEND_*_BLACKLIST will be used.
# AUTOSUSPEND_USE_WHITELIST=1 means AUTOSUSPEND_*_WHITELIST will be used.
AUTOSUSPEND_USE_WHITELIST=0

# The list of Device IDs that should not use autosuspend. Use system commands or
# look into sysfs to find out the IDs of your devices.
# Example: AUTOSUSPEND_DEVID_BLACKLIST="046d:c025 0123:abcd"
AUTOSUSPEND_RUNTIME_DEVID_BLACKLIST=""

# The list of device driver types that should not use autosuspend. The driver
# type is given by "DRIVER=..." in a device's uevent file.
# Example: AUTOSUSPEND_DEVID_BLACKLIST="usbhid usb-storage"
AUTOSUSPEND_RUNTIME_DEVTYPE_BLACKLIST="hub usbhid usb-storage"

# The list of Device IDs that should use autosuspend. Use system commands or
# look into sysfs to find out the IDs of your devices.
# Example: AUTOSUSPEND_DEVID_WHITELIST="046d:c025 0123:abcd"
AUTOSUSPEND_RUNTIME_DEVID_WHITELIST=""

# The list of device driver types that should use autosuspend. The driver
# type is given by "DRIVER=..." in a device's uevent file.
# Example: AUTOSUSPEND_DEVTYPE_WHITELIST="usbhid usb-storage"
AUTOSUSPEND_RUNTIME_DEVTYPE_WHITELIST=""

# Trigger auto-suspension of the deivce under conditional circumstances
# Warning: DO NOT CHANGE THESE DEFAUTLS UNLESS YOU KNOW
BATT_SUSPEND_RUNTIME=1
LM_AC_SUSPEND_RUNTIME=1
NOLM_AC_SUSPEND_RUNTIME=0

# Auto-Suspend timeout in seconds
# Number of seconds after which the USB devices should suspend
AUTOSUSPEND_TIMEOUT=2

Мониторы и графика

Яркость подсветки

Настраивается в файле /etc/laptop-mode/conf.d.
Доступные значения яркости для большинства ноутбуков могут быть получены командой

cat /proc/acpi/video/VID/LCD/brightness

ThinkPad T40/T42

Для ноутбуков ThinkPad T40/T42 минимальное и максимальное значения яркости могут быть получены командами:

cat /sys/class/backlight/acpi_video0/brightness
cat /sys/class/backlight/acpi_video0/max_brightness
Пример файла /etc/laptop-mode/conf.d:

# lcd-brightness.conf
# ThinkPad T40/T42 Example
#
DEBUG=0
CONTROL_BRIGHTNESS=1
BATT_BRIGHTNESS_COMMAND="echo 0"
LM_AC_BRIGHTNESS_COMMAND="echo 7"
NOLM_AC_BRIGHTNESS_COMMAND="echo 7"
BRIGHTNESS_OUTPUT="/sys/class/backlight/thinkpad_screen/brightness"

ThinkPad T60

Для ноутбуков ThinkPad T60 минимальное и максимальное значения яркости могут быть получены командами:

cat /sys/class/backlight/thinkpad_screen/max_brightness
cat /sys/class/backlight/thinkpad_screen/brightness
Пример файла /etc/laptop-mode/conf.d:

# lcd-brightness.conf
# ThinkPad T60 Example
#
DEBUG=0
CONTROL_BRIGHTNESS=1
BATT_BRIGHTNESS_COMMAND="echo 0"
LM_AC_BRIGHTNESS_COMMAND="echo 7"
NOLM_AC_BRIGHTNESS_COMMAND="echo 7"
BRIGHTNESS_OUTPUT="/sys/class/backlight/acpi_video0/brightness"

Очистка терминала

Файл /etc/laptop-mode/conf.d/terminal-blanking.conf:

# terminal-blanking.conf
# ThinkPad T40/T42/T60 Example
#
DEBUG=0
CONTROL_TERMINAL=1
TERMINALS="/dev/tty1"
BATT_TERMINAL_BLANK_MINUTES=1
BATT_TERMINAL_POWERDOWN_MINUTES=2
LM_AC_TERMINAL_BLANK_MINUTES=10
LM_AC_TERMINAL_POWERDOWN_MINUTES=10
NOLM_AC_TERMINAL_BLANK_MINUTES=10
NOLM_AC_TERMINAL_POWERDOWN_MINUTES=10

Сети

Ethernet

Файл /etc/laptop-mode/conf.d/ethernet.conf:

# ethernet.conf
# ThinkPad T40/T42/T60 Example
#
DEBUG=0
CONTROL_ETHERNET=1
LM_AC_THROTTLE_ETHERNET=0
NOLM_AC_THROTTLE_ETHERNET=0
DISABLE_WAKEUP_ON_LAN=1
DISABLE_ETHERNET_ON_BATTERY=1
ETHERNET_DEVICES="eth0"

Беспроводная сеть

Управление питанием беспроводных устройств сильно зависит от оборудования и потому сложнее в настройке. В зависимости от используемого чипсета настройки содержатся в одном из следующих файлов:

  • /etc/laptop-mode/conf.d/wireless-power.conf для общих методов энергосбережения (используя "iwconfig wlan0 power on/off"), применимых для большинства чипсетов (кроме чипсетов Intel , см. ниже);
  • /etc/laptop-mode/conf.d/wireless-ipw-power.conf для чипсетов Intel под управлением старого драйвера ipw. Это чипсеты IPW3945, IPW2200 и IPW2100. Используется iwpriv для IPW3945, и комбинация из iwconfig и iwpriv для IPW2100 и IPW220.См. подробнее в файле /usr/share/laptop-mode-tools/modules/wireless-ipw-power for details.
  • /etc/laptop-mode/conf.d/wireless-iwl-power.conf для чипсетов Intel под управлением модулей iwl4965, iwl3945 и iwlagn (последний поддерживает чипсеты 4965, 5100, 5300, 5350, 5150, 1000, и 6000)

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

Имеются проблемы в работе с некоторыми чипсетами при использовании модуля iwlagn (чипсет 5300 и, возможно, другие). На таких чипсетах настройки IWL_AC_POWER и IWL_BATT_POWER из файла /etc/laptop-mode/conf.d/wireless-iwl-power.conf игнорируются, так как устройство /sys/class/net/wlan*/device/power_level не существует. Вместо этого автоматически используется стандартный метод  ("iwconfig wlan0 power on/off") .

Audio

AC97

Файл /etc/laptop-mode/conf.d/ac97-powersave.conf:

# ac97-powersave.conf
# ThinkPad T40/T42/T60 Example
#
DEBUG=0
CONTROL_AC97_POWER=1

Intel HDA

Файл /etc/laptop-mode/conf.d/intel-hda-powersave.conf:

# intel-hda-powersave.conf
# ThinkPad T40/T42/T60 Example
#
DEBUG=0
CONTROL_INTEL_HDA_POWER=1
BATT_INTEL_HDA_POWERSAVE=1
LM_AC_INTEL_HDA_POWERSAVE=1
NOLM_AC_INTEL_HDA_POWERSAVE=0
INTEL_HDA_DEVICE_TIMEOUT=10
INTEL_HDA_DEVICE_CONTROLLER=0