It’s FOSS: Спасаем батарейку в ноутбуке с Linux

Говорят, если не заряжать аккумулятор больше, чем на 80% от максимального значения, это существенно замедлит его истощение. Вместе с командой сайта It’s FOSS разбираемся, как это сделать в самых популярных рабочих окружениях Linux (KDE и GNOME).

Важно: мой аккумулятор давно сдох, так что ничего из этого на практике я пока не проверял. Но кому-то это наверняка пригодится.

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

Постоянная зарядка убивает аккумулятор: он заряжается до 100%, разряжается до 99% и снова заряжается до 100%. И так по кругу, снова и снова. И, кстати, полная разрядка ему тоже вредит.

Ну или это просто легенда…

Однако, если у вас есть шанс хотя бы немного продлить срок службы аккумулятора вашего ноутбка, почему бы им не воспользоваться?

Чуваки из Lenovo вот тоже уверены в том, что непрерывная зарядка ноутбука на 100% непременно убьёт его аккумулятор: по их мнению оптимальный уровень заряда батарейки должен держаться в диапазоне от 20 до 80%.

-2

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

Теоретически у вас есть два способа ограничить уровень заряда: либо вручную отключать блок питания, либо ограничить уровень заряда программно. Например, в KDE это можно сделать стандартными способами, а в GNOME можно установить ещё одно расширение.

Важно: не все ноутбуки поддерживают способы, о которых мы будем говорить ниже, и иногда вам придётся по-старинке лезть в BIOS. Это слегка сложнее и зависит от конкретной модели.


Ограничение уровня заряда в KDE

В KDE вам вообще не придётся ничего устанавливать. Достаточно зайти в Настройки и перейти в раздел Управление питанием.

-3

Обычно рекомендуют ограничить заряд 20-80%, но я предпочитаю не опускать уровень заряда ниже 40%.

-4

Всё.

Серьёзно. Это всё. И именно поэтому все так любят KDE!

Важно: перед тем, как лезть в настойки ОС, проверьте сперва настройки BIOS.


Ограничение уровня заряда в GNOME

Если же вы используете GNOME, вам придётся установить ещё одно расширение. Но фанатам GNOME не привыкать!

Самое популярное расширение называется Battery Health Charging. Оно совместимо с большинством популярных моделей ноутбуков: от Asus и LG до Dell и Lenovo. С большинством, но далеко не со всеми. Поэтому лучше сперва прочтите описание расширения и найдите там свой ноутбук.

Подробное руководство по использованию расширений GNOME у нас уже было, так что повторяться не будем. В двух словах: найти и установить нужное расширение можно через Менеджер расширений.

После установки расширение попросит у вас дополнительные привилегии.

-5

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

-6

Ограничение уровня заряда с помощью командной строки

Тут штука вот в чём: большинство ноутбуков хранит информацию об уровне заряда батарейки в директории /sys/class/power_supply/BAT0/, но имена файлов могут отличаться в зависимости от модели. Скорее всего, файл будет называться charge_control_end_threshold или charge_stop_threshold.

Кстати, у вас может быть не одна батарейка, а сразу несколько. И чтобы узнать это, придётся сперва установить утилиту upower, а затем воспользоваться следующей командой:

upower --enumerate

Результат должен быть примерно таким:

/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/line_power_AC0
/org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001
/org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o002
/org/freedesktop/UPower/devices/headphones_dev_BC_87_FA_23_77_B2
/org/freedesktop/UPower/devices/DisplayDevice

Следующим шагом будет поиск аккумулятора в директории /sys/class/power_supply/BAT0/: найдите файл, название которого начинается с charge и отредактируйте его, добавив к нему нужные пороговые значения. В моём случае это был файл /sys/class/power_supply/BAT0/charge_control_end_threshold:

echo 80 | sudo tee /sys/class/power_supply/BAT0/charge_control_end_threshold

Отредактировать файл можно в любом текстовом редакторе (например в Nano), но быстрее и надёжнее использовать именно команду.

Проблема в том, что после перезагрузки системы все изменения сотрутся, а вам нужно что-то, что будет работать без вашего участия. И тут важна система инициализации. Скорее всего, в вашем дистрибутиве используется SystemD. Если так, вам нужно добавить ещё один сервис, а для этого вам понадобится файл /etc/systemd/system/battery-threshold.service:

sudo nano /etc/systemd/system/battery-threshold.service

В него нужно добавить следующие строчки:

[Unit]
Description=Set battery charging threshold
After=multi-user.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo 80 > /sys/class/power_supply/BAT0/charge_control_end_threshold'
[Install]
WantedBy=multi-user.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

Теперь сохраните изменения и активируйте новый сервис:

sudo systemctl enable battery-threshold.service

Готово. Теперь всё должно работать, но если возникнут какие-то проблемы, ответы стоит искать на GitHub.


Вместо выводов

Батарейки – это не магия, и со временем ваш аккумулятор будет работать всё хуже и хуже. И никакие пляски с бубном этого не исправят. Если новый ноут на полном заряде умудрялся протянуть условные 10 часов, то уже через пару лет этот показатель снизится часов до 6-7. Но если вы ограничите уровень максимального заряда, у вас есть шанс слегка замедлить его истощение.

Большинство экспертов рекомендуют держать уровень заряда в диапазоне от 20 до 80% от максимального заряда. Да, это всё ещё звучит как городская легенда, но почему тогда даже крупные производители добавляют такие настройки в свои ноутбуки?

Надеюсь, было полезно.

Ну а если знаете, как ограничить уровень заряда в других рабочих окружениях, не стесняйтесь рассказать об этом в комментариях. Кому-то это наверняка будет полезно.

Абхишек Пракаш,
It’s FOSS
12 марта 2025

Comment