Добавить в корзинуПозвонить
Найти в Дзене
[LINKOD]

Как продлить жизнь аккумулятора в Linux, ограничив его заряд

Когда работает на ноутбуке, важно продлить срок жизни аккумулятора. Как известно, аккумулятор не должен быть постоянно заряжен на 100%, это влияет на его продолжительность жизни. Обычно рекомендуют держать заряд аккумулятора в районе 80%. Понятно что время от времени необходимо разряжать и заряжать его, так сказать не давать ему застояться. Разработчики ноутбуков обычно предоставляют специальные утилиты, что бы продлить срок жизни аккумулятора, но Linux они обходят стороной. Подобный функционал вроде был в утилите TLP. С помощью нее вроде как можно ограничить заряд аккумулятора до 80%. В этой же статье мы рассмотрим иной способ. А именно создадим Systemd Unit, который и будет сдерживать заряд аккумулятора. Важной особенностью является поддержка ноутбуком ограничения заряда, если он не поддерживает этот функционал, то данный метод не сработает. Хотя, никто не мешает поэкспериментировать, даже если ваш ноутбук не поддерживает данный функционал. Например, на ноутбуке ThinkPad X270 ограни
Оглавление

Когда работает на ноутбуке, важно продлить срок жизни аккумулятора. Как известно, аккумулятор не должен быть постоянно заряжен на 100%, это влияет на его продолжительность жизни. Обычно рекомендуют держать заряд аккумулятора в районе 80%. Понятно что время от времени необходимо разряжать и заряжать его, так сказать не давать ему застояться.

Разработчики ноутбуков обычно предоставляют специальные утилиты, что бы продлить срок жизни аккумулятора, но Linux они обходят стороной. Подобный функционал вроде был в утилите TLP. С помощью нее вроде как можно ограничить заряд аккумулятора до 80%. В этой же статье мы рассмотрим иной способ. А именно создадим Systemd Unit, который и будет сдерживать заряд аккумулятора.

Важной особенностью является поддержка ноутбуком ограничения заряда, если он не поддерживает этот функционал, то данный метод не сработает. Хотя, никто не мешает поэкспериментировать, даже если ваш ноутбук не поддерживает данный функционал.

Например, на ноутбуке ThinkPad X270 ограничение зарядки аккумулятора поддерживается, а вот на MSI Katana нет.

Проверяем поддержку ограничиваем заряд аккумулятора

Итак, первым делом необходимо выяснить тип вашего аккумулятора, для этого выполняем команду:

ls /sys/class/power_supply

-2

В ответ на эту команду, вам будет выведен тип вашего аккумулятора, он может быть примерно следующим: BATT, BAT0, BAT1. На скриншоте выше ,вы можете видеть тип аккумулятора BAT1. Запомните его, следующим шагом выясняем, имеется ли поддержка ограничения аккумулятора в вашем ноутбуке, для этого выполняем команду:

ls /sys/class/power_supply/BAT*/charge_control_end_threshold

Важно заменить в команде тип аккумулятора на ваш, он выделен жирным шрифтом. В ответ на эту команду должно прийти примерно следующее:

/sys/class/power_supply/BAT*/charge_control_end_threshold

Если команда сработала и вы увидели путь до файла «charge_control_end_threshold», значит ваш ноутбук поддерживает ограничение заряда. Если же команда выдаст что-то вроде «невозможно получить доступ к… Нет такого файла или каталога», то это будет означать что ограничение заряда не поддерживается. В любом случае, вы можете продолжить, может быть и сработает ограничение заряда в вашем случае:

-3

Включаем ограничение заряда аккумулятора

После того как мы выяснили, имеется такой функционал, можно переходить к настройке. Для этого создадим файл под названием «battery-charge.service». Название может быть любым, но остановимся на таком.

Что бы создать файл, воспользуемся текстовым редактором Nano. Вводим команду:

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

Далее создадим Systemd Unit задав следующие параметры:

[Unit] Description=Set the battery charge thresholdAfter=multi-user.target StartLimitBurst=0 [Service] Type=oneshotRestart=on-failure ExecStart=/bin/bash -c 'echo 80 > /sys/class/power_supply/BAT*/charge_control_end_threshold' [Install] WantedBy=multi-user.target

Тут важно заменить значения BAT* на тип вашего аккумулятора, а также при желании вы можете ограничить заряд батареи скажем до 60% вместо 80%, это уже на ваше усмотрение:

-4

Сохраняем созданный Unit сочетанием клавиш «ctrl + o» и закрываем Nano - «ctrl + x». Теперь осталось запустить наш Unit выполнив команды:

sudo systemctl enable battery-charge.service

sudo systemctl start battery-charge.service

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

cat /sys/class/power_supply/BAT*/status

В которой замените BAT* на тип вашего аккумулятора и если в ответ вы получите «Not charging», то это значит, что заряд остановился на заданных параметрах, которые мы указали в настройках Systemd Unit:

-5

Заключение

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

Если вдруг возникнет необходимость отключить созданный в рамках этой статьи Systemd Unit, то выполняем команды:

sudo systemctl stop battery-charge.service

sudo systemctl disable battery-charge.service

А затем можно удалить созданный файл:

sudo rm -r /etc/systemd/system/battery-charge.service

Хочется надеяться, что пропроизводители ноутбуков рано или поздно будут предоставлять свои утилиты для операционных систем Linux, которые будут ограничивать заряд аккумулятора.