Поиск по сайту:

Как установить лимит заряда батареи в Ubuntu 22.04 и 24.04

В этом пошаговом руководстве для начинающих показано, как настроить ноутбук с Ubuntu для ограничения максимального уровня заряда батареи.

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

Ядро Linux поддерживает порог заряда батареи, и существует запрос на слияние для предоставления параметров графического пользовательского интерфейса в Центре управления Gnome. Пока GNOME официально не поддержит эту функцию, вы можете следовать этому руководству, чтобы выполнить работу шаг за шагом.

Шаг 1. Проверьте, поддерживает ли ваш ноутбук порог заряда

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

Сначала нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть окно терминала. Затем выполните команду:

ls /sys/class/power_supply/

В нем будут перечислены имена устройств, включая вашу батарею, обычно BAT0, BAT1, BATC, BATT и т. д.

В моем случае это BAT0. Чтобы узнать, поддерживает ли он ограничение заряда батареи, запустите:

ls /sys/class/power_supply/BAT0

Замените BAT0 в последней команде соответственно. И он выведет следующие два файла, сообщающие, что он поддерживает эту функцию!

    charge_control_start_threshold
    charge_control_end_threshold

Хотя charge_start_threshold и charge_stop_threshold являются устаревшими API (обычно для ThinkPad), которые автоматически синхронизируются с двумя предыдущими

Шаг 2. Установите начало зарядки аккумулятора и максимальный уровень ограничения.

Чтобы установить лимит оплаты, просто установите число значений (от 0 до 100) двух ключевых файлов, перечисленных выше.

Например, установите уровень начальной зарядки аккумулятора равным 80. Таким образом, когда блок питания подключен, зарядка начнется только тогда, когда уровень заряда аккумулятора опустится ниже 80 %.

sudo sh -c "echo 80 > /sys/class/power_supply/BAT0/charge_control_start_threshold"

Здесь вам нужно заменить BAT0 в соответствии с последним шагом и изменить значение 80 по своему усмотрению.

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

sudo sh -c "echo 88 > /sys/class/power_supply/BAT0/charge_control_end_threshold"

Здесь я установил прекращение зарядки аккумулятора при достижении уровня 88%. Также измените номер и BAT0 соответственно.

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

cat /sys/class/power_supply/BAT0/status

Шаг 3. Создайте службу порогового значения заряда аккумулятора (необязательно)

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

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

1. Сначала нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду:

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

Эта команда создает служебный файл и редактирует его с помощью текстового редактора командной строки nano. Вы можете заменить nano на gedit для Ubuntu 22.04 или gnome-text-editor для Ubuntu 24.04. Однако nano работает в большинстве сред рабочего стола.

Когда файл откроется, вставьте следующие строки:

[Unit]
Description=Set Battery Charge Maximum Limit
After=multi-user.target
StartLimitBurst=0

[Service]
Type=oneshot
Restart=on-failure
ExecStart=/bin/bash -c 'echo 90 > /sys/class/power_supply/BAT0/charge_control_end_threshold'

[Install]
WantedBy=multi-user.target

Здесь замените BAT0 в соответствии с шагом 1 и измените номер 90 по своему усмотрению. Наконец, нажмите ctrs+s, чтобы сохранить файл, и ctrl+x, чтобы выйти.

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

systemctl enable battery-charge-end-threshold.service
systemctl daemon-reload
systemctl start battery-charge-end-threshold.service

Если вы также хотите создать службу для установки уровня начальной зарядки аккумулятора, повторите последние шаги, но замените имя службы, а также номер уровня и charge_control_end_threshold на charge_control_start_threshold в содержимом файла.

Установите лимит заряда аккумулятора через TLP (другой способ)

Популярный инструмент энергосбережения TLP также имеет функцию установки порога заряда для пользователей ноутбуков. Тем не менее, вам все еще нужна поддержка батареи. Это означает, что файлы charge_control_start_threshold и charge_control_end_threshold должны существовать в каталоге /sys/class/power_supply/BAT*.

1. Сначала нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Затем запустите команду для установки TLP:

sudo apt install tlp

Последнюю версию см. в официальной документации.

2. Затем отредактируйте файл конфигурации, выполнив команду:

sudo nano /etc/tlp.conf

Кроме того, вы можете заменить текстовый редактор nano в соответствии со средой вашего рабочего стола. Когда файл откроется, найдите следующие две строки (используйте Ctrl+W в nano), раскомментируйте (удалите # в начале) и измените число по своему усмотрению.

START_CHARGE_THRESH_BAT0=80
STOP_CHARGE_THRESH_BAT0=90

Наконец, нажмите Ctrl+S, чтобы сохранить файл, и Ctrl+X, чтобы выйти из редактирования.

3. Чтобы проверить, применен ли параметр, запустите sudo tlp-stat -b, чтобы проверить

systemctl enable tlp.service
systemctl start tlp.service

И используйте systemctl status tlp.service, чтобы проверить статус службы. Дополнительную информацию об инструменте энергосбережения TLP см. на его веб-сайте.

Отменить

Чтобы удалить TLP, откройте терминал (Ctrl+Alt+T) и выполните команду:

sudo apt remove tlp tlp-*

Чтобы удалить созданную вручную службу запуска, выполните одну за другой приведенные ниже команды, чтобы остановить, отключить и удалить служебный файл.

systemctl stop battery-charge-end-threshold.service
systemctl disable battery-charge-end-threshold.service
sudo rm /etc/systemd/system/battery-charge-end-threshold.service

Наконец, вы можете сбросить порог начала и окончания зарядки с помощью команд (также замените BAT0 соответственно):

sudo sh -c "echo 0 > /sys/class/power_supply/BAT0/charge_control_start_threshold"
sudo sh -c "echo 100 > /sys/class/power_supply/BAT0/charge_control_end_threshold"

Статьи по данной тематике