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

Ссылки по теме

- acpid (Русский)
- systemd (Русский)
- cpufrequtils (Русский)
- Ноутбук
- Powertop
- TLP

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` значительно сокращает время загрузки.

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

- Laptop Mode Tools wiki
- FAQ
- Mailing List

Categories:

- Laptops (Русский)
- Power management (Русский)