Я только что узнал, что некоторые ноутбуки Lenovo включают в себя утилиту, которая предлагает ограничить емкость аккумулятора в пределах 0-80%, чтобы замедлить затухание срока службы батареи:
Как я могу это сделать в Ubuntu?
Я только что узнал, что некоторые ноутбуки Lenovo включают в себя утилиту, которая предлагает ограничить емкость аккумулятора в пределах 0-80%, чтобы замедлить затухание срока службы батареи:
Как я могу это сделать в Ubuntu?
Пороговые значения зарядки, к сожалению, зависят от прошивки и конкретного поставщика.
Lenovo ThinkPad пользователю, к счастью, предоставляется решение, изложенное на ThinkWiki.
В основном это говорит о том, что вам придется установить и загрузить tp_smapi
модуль ядра:
sudo apt-get install tp-smapi-dkmssudo modprobe tp_smapi
и запишите желаемые пороговые значения зарядки в виртуальные файлы в /sys/devices/platform/smapi
:
echo 40 | sudo tee /sys/devices/platform/smapi/BAT0/start_charge_threshecho 80 | sudo tee /sys/devices/platform/smapi/BAT0/stop_charge_thresh
Затем он прекратит зарядку, как только достигнет 80%, и начнет заряжаться только тогда, когда она упадет ниже 40%.
Toshiba и другие компании могут иметь аналогичный модуль ядра, который предоставляет функциональность встроенного ПО для /sys
или /proc
пространство, но это очень маловероятно для патентных проблем. По тем же причинам приложение, которое могло бы справиться с этим, было бы либо специфичным для Thinkpad, либо адресовано только нескольким избранным поставщикам.
Теперь для Ubuntu (и других дистрибутивов) доступно несколько более приятное приложение:
TLP – Расширенное управление питанием Linux
TLP предоставляет вам преимущества расширенного управления питанием для Linux Без необходимости разбираться во всех технических деталях. TLP поставляется с конфигурацией по умолчанию, уже оптимизированной для времени автономной работы, так что вы можете просто установить и забыть об этом. Тем не менее, TLP легко настраивается в соответствии с вашими конкретными требованиями.
Одним из параметров, которые он контролирует, является поддержание пределов зарядки аккумулятора. Как указал @ tanius в комментариях (пожалуйста, поддержите их!), В то время как TLP раньше работал только на Thinkpads, новейшая версия поддерживает устройства от нескольких поставщиков, и, учитывая характер проекта, если станут доступны соответствующие драйверы для других устройств, вполне вероятно, что они получат интегрирован и в этот проект. Так что, если вы читаете этот комментарий через несколько лет, ознакомьтесь с документацией, возможно, ваше устройство теперь поддерживается.
Доступны пакеты Ubuntu в официальном репозитории.
Принятый ответ не работает на моем новом Lenovo T440s. Очевидно, прошивка изменилась. Следующий http://www.thinkwiki.org/wiki/Tpacpi-bat, я сделал
git clone https://github.com/teleshoes/tpacpi-bat.gitcd tpacpi-bat/./install.plsudo ./tpacpi-bat -s ST 1 15 # load internal battery when below 15%sudo ./tpacpi-bat -s SP 1 95 # stop charging at 95%sudo ./tpacpi-bat -g ST 2 # when is external battery loaded?
Для справки, я сделал это при тестировании debian, но я уверен, что это работает и в ubuntu так же хорошо.
На моем Toshiba R830 под управлением Windows 8.1 я установил приложение Toshiba Power Saver, чтобы ограничить заряд батареи до 80%
Когда я загружаюсь на Linux (Ubuntu, Mint и т.д.), максимальная зарядка по-прежнему ограничена 80%.
Таким образом, Toshiba Power Saver, по-видимому, сохраняет свою конфигурацию в bios.
Единственным недостатком является то, что если я хочу путешествовать с полностью заряженной батареей, мне придется перезагрузить Windows и изменить конфигурацию энергосбережения.
sudo add-apt-repository ppa:linrunner/tlpsudo apt updatesudo apt install tlp# Check what package needed for battery:sudo tlp-stat -b# If acpi_call is recommendedsudo apt install acpi-call-dkms# If smapi is recommendedsudo apt install tp-smapi-dkms
sudo gedit /etc/tlp.conf
START_CHARGE_THRESH_BAT0=75STOP_CHARGE_THRESH_BAT0=80
sudo tlp start
sudo tlp-stat -b
Вы проверяли, есть ли на вашем ноутбуке настройка BIOS для этого? На моем ноутбуке было приложение Windows, а также настройка "Продление срока службы батареи" в BIOS для этой точной функции.
Я написал письмо приложение командной строки это делает вот что.
Самый простой способ начать работу - это загрузить приложение с страница релизов и бежать
$ ./bat --help
из терминала в каталоге, где он находится, который должен показывать справочную документацию.
Если есть ошибка, это может быть связано с разрешениями. Следующая команда может решить проблему.
chmod +x ./bat
По сути, бегущий
$ ./bat --threshold
выведет текущее пороговое значение.
Чтобы установить новый порог, скажем, 60%, запустите
./bat --threshold 60
Чтобы сохранить текущее пороговое значение между перезапусками, запустите
sudo ./bat --persist
Примечание: Сохраняющиеся виды использования systemd под капотом, но это входит в комплект с большинством дистрибутивов Linux, включая Ubuntu.
Совет: Поместите приложение в каталог, подобный /usr/local/bin/
то есть в $PATH
это позволит вам запускать его из любого места, а не только из каталога, в котором находится приложение. Затем приведенные выше команды становятся,
bat --help
bat --threshold 60
bat --persist
соответственно.
Есть аппаратный взлом, который я только что обнаружил для ноутбуков Dell:
В зарядных устройствах Dell используются 3 контакта: один для (+), один для (-) и один для идентификации зарядного устройства Dell (1-проводной протокол). Эта линия связи обычно находится в центре разъема, игольчатый штифт.
Если вы перережете эту линию связи, ноутбук продолжит работать от сети переменного тока, но аккумулятор больше не будет заряжаться.
Найдите линию связи, перережьте ее, установите переключатель между ними. Заряжайте аккумулятор вашего ноутбука столько, сколько хотите, а затем выключите этот переключатель. Ваш ноутбук будет использовать переменный ток, но ваша батарея останется заряженной на том уровне, на котором вы ее оставили.
Смотрите Этот ответ для получения рекомендуемых уровней заряда для различных сценариев: https://superuser.com/a/664583/187576
Очевидно, недостатком такого подхода является то, что ноутбук ухудшает свою производительность, если не найдено идентифицированное зарядное устройство.
Это может не быть проблемой при обычном использовании, однако, если вам нужна мощность процессора, например, для 3D-дизайна, производительность заметно снижается.
У меня есть ноутбук Asus, и подход, который я нашел в Интернете, заключается в следующем. Этот подход, возможно, уже является частью некоторых приложений, упомянутых выше, но размещаю его здесь для информации.
battery_charge_threshold.service
подобный этому.[Unit]Description=Set the battery charge thresholdAfter=multi-user.target[Service]Type=oneshotExecStart=/bin/bash -c 'echo 80 > /sys/class/power_supply/BAT0/charge_control_end_threshold'[Install]WantedBy=multi-user.target
/etc/systemd/system
sudo chmod 644 /etc/systemd/system/battery-charge-threshold.servicesudo systemctl daemon-reloadsudo systemctl enable battery-charge-threshold.service
После этого порог заряда в размере 80% (согласно файлу службы) будет сохраняться между перезагрузками. Он также прекратит зарядку аккумулятора, если уровень тока превысит 80%.Надеюсь, это поможет. Я использую его уже почти 1,5 года без каких-либо проблем.
На моем Dell XPS я установил smbios-utils
пакет, использующий sudo apt install smbios-utils
. Этот пакет предоставляет команду, вызываемую smbios-battery-ctl
. Похоже, что управление зарядом на основе уровня заряда батареи доступно с Ubuntu 20.04. Полная информация приведена в страница руководства, но для базовой настройки 80%, я думаю, это сработает:
sudo smbios-battery-ctl --set-custom-charge-interval 75 80sudo smbios-battery-ctl --set-charging-mode=custom
Это приведет к началу зарядки, когда уровень заряда батареи упадет ниже 75%, и остановит зарядку, когда он достигнет 80%.
Чтобы изменить настройку обратно:
sudo smbios-battery-ctl --set-charging-mode=adaptive
Можете ли вы подтвердить, что ответ aquaherd работает для вас?