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

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи 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 значительно сокращает время загрузки.

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