Laptop Mode Tools (Русский)

Состояние перевода: На этой странице представлен перевод статьи Laptop Mode Tools. Дата последней синхронизации: 7 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Laptop Mode Tools — набор инструментов управления энергосбережением на Linux-системах. Это основной способ включить функцию Laptop Mode ядра Linux, которая позволяет жёсткому диску останавливать своё вращение. Кроме того, он позволяет настроить ряд других параметров энергопотребления с помощью простого конфигурационного файла.

В сочетании с acpid и изменением частоты процессора LMT предоставляет большинству пользователей полный набор средств управления питанием ноутбука.

Установка

Установите пакет laptop-mode-toolsAUR или laptop-mode-tools-gitAUR.

Настройка

Настройка выполняется через:

  • /etc/laptop-mode/laptop-mode.conf — основной файл конфигурации.
  • /etc/laptop-mode/conf.d/* — десятки специфических «модулей».

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

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

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

После настройки включите службу laptop-mode.service.

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

  • CONTROL_чтонибудь=0/1/auto — определяет, должен ли соответствующий модуль быть включен.
  • LM_чтонибудь=значение — значение опции, когда LMT активен.
  • NOLM_чтонибудь=значение — значение опции, когда LMT неактивен.
  • AC_чтонибудь=значение — значение опции при работе от сети.
  • BATT_чтонибудь=значение — значение опции при работе от батареи.

laptop-mode.conf

Здесь приведён адаптированный перевод комментариев к некоторым настройкам, на которые стоит обратить внимание. Список всех настроек и более подробные комментарии на английском языке вы можете прочитать непосредственно в файле /etc/laptop-mode/laptop-mode.conf.

# Включение/выключение LMT
# Выберите 0, чтобы полностью отключить LMT.
ENABLE_LAPTOP_MODE_TOOLS=1

# Выберите 1, если хотите получить дополнительную отладочную информацию, когда
# запускается/останавливается laptop_mode.
VERBOSE_OUTPUT=0

# Выберите 1 если хотите, чтобы лог писался в syslog
LOG_TO_SYSLOG=0

# Запуск в оболочке (shell) в режиме отладки.
# Отладку отдельных модулей можно включить в соответствующих файлах в conf.d
DEBUG=0

# Включать ли LMT при работе от батареи
ENABLE_LAPTOP_MODE_ON_BATTERY=1

# Включать ли LMT при работе от сети
ENABLE_LAPTOP_MODE_ON_AC=0

# Включать ли LMT, пока крышка ноутбука закрыта (даже если он подключён к сети)
ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=0

# Автоматическое включение некоторых модулей
ENABLE_AUTO_MODULES=1

# Отключить функции, которые могут привести к потере данных, когда уровень
# заряда батареи (в процентах) опустится до этого значения:
MINIMUM_BATTERY_CHARGE_PERCENT=3

Жёсткие диски

Вам нужно установить hdparm и/или sdparm. Смотрите статью hdparm.

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

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

С помощью переменной CONTROL_MOUNT_OPTIONS (по умолчанию включена) laptop-mode-tools автоматически перемонтирует ваши разделы, добавляя commit=600,noatime к параметрам монтирования. Это не позволяет журналированию jbd2 обращаться к диску каждые несколько секунд, вместо этого журнал диска обновляется каждые 10 минут.

Важно При такой настройке вы можете потерять до 10 минут работы. Также не используйте опцию монтирования atime. Вместо этого используйте noatime или relatime.
Примечание Не следует включать CONTROL_MOUNT_OPTIONS на разделах nilfs2. Подробнее в теме на форуме: https://bbs.archlinux.org/viewtopic.php?id=134656

Твердотельные накопители

Из официального FAQ:

Вопрос: В моей машине установлен твердотельный диск (SSD). Должен ли я включить какие-либо связанные с дисками части laptop-mode-tools, или они не имеют значения?

Ответ: Они могут иметь значение, поскольку (а) laptop mode уменьшает количество записей, что увеличивает срок службы SSD, и (б) laptop mode делает записи прерывистыми, что позволяет задействовать механизмы энергосбережения, такие как ALPM. Тем не менее, выигрыш может варьироваться в зависимости от конкретного оборудования. На некоторых устройствах вы вообще не получите никакого выигрыша, а на некоторых выигрыш может быть значительным.

Частота процессора

Необходим драйвер управления частотой процессора. Смотрите Управление частотой процессора.

# cpufreq.conf
# Пример для ThinkPad T40/T42/T60
#
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_AC_CPU_IGNORE_NICE_LOAD=0
CONTROL_CPU_THROTTLING=0

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

Intel SATA

Включите функцию Aggressive Link Power Management контроллера Intel SATA AHCI, чтобы перевести дисковый канал в режим очень низкого энергопотребления при отсутствии дисковых операций ввода-вывода.

# intel-sata-powermgmt.conf
# Пример для ThinkPad T40/T42/T60
#
DEBUG=0
CONTROL_INTEL_SATA_POWER=1
BATT_ACTIVATE_SATA_POWER=1
LM_AC_ACTIVATE_SATA_POWER=1
NOLM_AC_ACTIVATE_SATA_POWER=0
Примечание Подробности о настройке можно почитать в неплохо задокументированном файле /etc/laptop-mode/conf.d/intel-sata-powermgmt.conf.

Автоматическое отключение USB

Совет Эта функциональность перемещена из модуля usb-autosuspend в модуль runtime-pm. Не забудьте заменить usb-autosuspend на runtime-pm в /lib/udev/rules.d/99-laptop-mode.rules.
# runtime-pm.conf
# Пример для ThinkPad T40/T42/T60
#
DEBUG=0
CONTROL_RUNTIME_AUTOSUSPEND=1
BATT_SUSPEND_RUNTIME=1
LM_AC_SUSPEND_RUNTIME=1
NOLM_AC_SUSPEND_RUNTIME=1
AUTOSUSPEND_TIMEOUT=2
Примечание Подробности о настройке можно почитать в /etc/laptop-mode/conf.d/runtime-pm.conf. Если у вас есть USB-устройства, которые вы постоянно используете (например, USB-мышь), внесите их в чёрный список для предотвращения их приостановки.

Экран и графика

Яркость LCD

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

$ 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
# lcd-brightness.conf
# Пример для ThinkPad T40/T42
#
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
# lcd-brightness.conf
# Пример для ThinkPad T60
#
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/lcd-brightness.conf.

Затемнение терминала

# terminal-blanking.conf
# Пример для ThinkPad T40/T42/T60
#
DEBUG=0
CONTROL_TERMINAL=1
# Файлы терминалов, на которые распространяются настройки. (Достаточно указать
# один терминал — настройки сработают для всех консолей.)
TERMINALS="/dev/tty1"
# BLANK — таймаут затемнения в минутах; POWERDOWN — таймаут отключения питания в минутах.
# Отсчёт таймаута POWERDOWN начинается после BLANK, то есть BLANK_MINUTES=1 и POWERDOWN_MINUTES=2
# означают, что экран отключится через 3 минуты неактивности.
# Значение 0 отключает таймаут.
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
Примечание Подробности о настройке можно почитать в неплохо задокументированном файле /etc/laptop-mode/conf.d/terminal-blanking.conf.

Сеть

Ethernet

# ethernet.conf
# Пример для ThinkPad T40/T42/T60
#
DEBUG=0
CONTROL_ETHERNET=1
LM_AC_THROTTLE_ETHERNET=0
NOLM_AC_THROTTLE_ETHERNET=0
# Полное отключение Wake-on-LAN, даже при работе от сети
DISABLE_WAKEUP_ON_LAN=1
# Полное отключение Ethernet при работе от батареи. Полезно, если
# при работе от батареи используется только беспроводная сеть
DISABLE_ETHERNET_ON_BATTERY=1
ETHERNET_DEVICES="eth0"

Wireless LAN

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

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

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

Указанные выше поддерживаемые модули для каждого файла взяты непосредственно из LMT. Однако, похоже, это немного устарело, поскольку текущее ядро 2.6.34 больше не предоставляет модули ipw3945 и iwl4965 (чипсет 3945 использует iwl3945, а 4965 — общий модуль iwlagn). Это приведено здесь только для информации, так как это не влияет (или не должно влиять) на работу LMT.

Есть известная проблема с некоторыми чипсетами, работающими с модулем iwlagn (а именно, чипсет 5300 и, возможно, другие). На этих чипсетах следующие настройки /etc/laptop-mode/conf.d/wireless-iwl-power.conf:

IWL_AC_POWER
IWL_BATT_POWER

игнорируются, потому что файл /sys/class/net/wlan*/device/power_level не существует. Вместо этого будет использован стандартный метод (через iwconfig wlan0 power on/off).

Аудио

AC97

# ac97-powersave.conf
# Пример для ThinkPad T40/T42/T60
#
DEBUG=0
CONTROL_AC97_POWER=1

Intel HDA

# intel-hda-powersave.conf
# Пример для ThinkPad T40/T42/T60
#
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
# Значение 1 приведёт к полному отключению контроллера по таймауту,
# но это может привести к щелчкам в динамиках
INTEL_HDA_DEVICE_CONTROLLER=0

Решение проблем

Laptop-mode-tools не обрабатывает события

Установите пакет acpid и включите службу acpid.service.

Если это не помогло, просмотрите файлы конфигурации laptop-mode и убедитесь, что для службы, которую вы хотите включить, установлено значение 1. Многие службы (включая cpufreq control) по умолчанию установлены на "auto", что может не включить их.

Проблемы с неработающим bluetooth при запуске ноутбука от батареи решаются отключением runtime-pm.

USB-мышь засывает спустя 5 секунд при работе от батареи

Сперва найдите ID нужного устройства (выглядит примерно так: 046d:c534):

$ lsusb

Добавьте его в переменную AUTOSUSPEND_DEVID_BLACKLIST в файле /etc/laptop-mode/conf.d/runtime-pm.conf, например:

/etc/laptop-mode/conf.d/runtime-pm.conf
...
AUTOSUSPEND_DEVID_BLACKLIST="046d:c534"
...

Можно указать несколько ID через пробел.

Примечание Не забудьте перезапустить службу laptop-mode.service после изменения настроек. Может также понадобиться переподключить USB-устройство.

Проблемы с драйвером NVIDIA

Чёрный экран в KDE

Когда включен режим ноутбука, KDE не запускается. Причина в том, что стандартный менеджер отображения KDE (SDDM) запускается раньше драйвера NVIDIA. Чтобы этого не произошло, удалите параметр ядра nomodeset.

Замедлилась загрузка после включения laptop-mode.service

Как упоминалось ранее, laptop-mode-tools влияет на драйвер NVIDIA. Добавление параметра ядра nvidia-drm.modeset=1 значительно сокращает время загрузки.

Смотрите также