Как настроить пороги зарядки аккумулятора ноутбука?

13

Мой ноутбук - Lenovo T400, а ОС - Ubuntu 12.04.

Мне не удалось отрегулировать пороговые значения для начала зарядки аккумулятора и прекращения зарядки. Я заметил, что его текущий начальный порог зарядки составляет около 40%, а порог остановки зарядки составляет около 60%. Я забыл, был ли это я, и какую программу я использовал, чтобы управлять батареей, чтобы остановить зарядку на 60% и начать зарядку на 40%.

Я следовал за своим предыдущим постом /ubuntu/58789/how-to-check-charged-percentage-of-battery-and-to-adjust-its-thresholds , но я не нахожу /sys/devices/platform/smapi. Также у меня есть /proc/acpi/battery/BAT0/, но у меня есть только три файла alarm, infoи state.

Я хочу настроить пороги. Вот интересно, как это сделать?

Тим
источник
Попробуйте modprobe tp_smapiс правами суперпользователя, а затем посмотрите, есть ли там файлы /sys/devices/platform/smapi.
Ренан
@Renan: модуль не найден FATAL: Module tp_smapi not found..
Тим
1
Установите tp_smapi в соответствии с инструкциями: thinkwiki.org/wiki/… затем попробуйте снова.
Ренан
@Renan: tp_smapi только для ноутбуков Lenovo? Отличаются ли модули управления зарядкой аккумулятора для ноутбуков разных марок?
Тим
Некоторые ноутбуки Lenovo имеют особые функции, к которым tp_smapi дает вам доступ. Я не знаю о других брендов, но они , вероятно , имеют схожие инструменты ( у меня есть ноутбук Dell и я вижу , что у меня есть dell_laptop и dell_wmiмодуль, к примеру, я никогда не исследовал его , чтобы увидеть , что он делает)
Ренан

Ответы:

4

Вам нужно установить tp_smapi-dkms, просто сделайте

apt-get install tp_smapi-dkms

Когда закончите, используйте, lsmod | grep tp_smapiчтобы проверить, загружен ли модуль, отрегулировать пороги заряда, сделать что-то вроде этого

echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 60 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

Добавьте эти строки, чтобы /etc/rc.localзапустить их при загрузке.

Этот модуль работает как минимум на X220.

маргаритка
источник
Попробуйте получить отказ в разрешении даже для пользователей с правами sudo echo 60 | sudo tee /sys/devices/platform/smapi/BAT0/stop_charge_thresh.
Андрей Каипов
8

Более новые Lenovo ThinkPad (такие как мой E540) не совместимы с tp_smapi-dkms. К счастью, я обнаружил, что утилита TLP может использовать любой из двух разных модулей - модули tp_smapi ИЛИ DKMS thinkpad_acpi - для передачи пороговых значений батарее.

В настоящее время TLP доступен через стандартные репозитории Ubuntu или Debian. (Хотя вы можете воспользоваться последней версией, доступной на веб-сайте TLP для установки пакетов.)

После установки TLP установите пороги заряда батареи, используя две строки в файле конфигурации / etc / default / tlp

START_CHARGE_THRESH_BAT0=65
STOP_CHARGE_THRESH_BAT0=80

В этом примере TLP указывает пороговым значениям заряда батареи начинать зарядку на 65% и прекращать зарядку на 80%. Я считаю, что пороговые значения сохраняются правильно даже при загрузке в другую ОС, на которой не установлен TLP. (Хотя я предполагаю, что если вы загрузились в Windows или другую ОС, на которой установлены инструменты управления питанием, эта ОС может перезаписать ранее установленные пороги заряда.)

Чтобы ВРЕМЕННО полностью зарядить аккумулятор, введите следующую команду терминала:

 $ sudo tlp fullcharge

После этого аккумулятор зарядится до максимальной емкости и впоследствии вернется к предыдущим пороговым значениям.

Примечание. Если ваш ноутбук не является «ThinkPad», TLP, вероятно, не сможет установить уровень заряда аккумулятора . Если ваш поставщик предоставляет утилиту управления питанием для Windows, вы, вероятно, можете загрузиться с использованием какой-либо формы Windows, чтобы установить уровни заряда батареи, а затем перезагрузиться в Linux. По моему опыту, настройки порога заряда батареи сохраняются после перезагрузки системы.

Томми Труссель
источник
Это работает только для ThinkPad, а как насчет других моделей?
Акроникс
@Akronix Я полагаю, что TLP может быть установлен на несколько разных типов ноутбуков, и в зависимости от аппаратного обеспечения, прошивки и архитектуры, зависит от разных библиотек. Я только недавно стал лучше понимать различные библиотеки, потому что мой относительно современный Lenovo использует TLP немного по-другому, чем старые ThinkPad.
Томми Трасселл
Тем не менее, он не работает в моем Lenovo серии G
Akronix
@ Akronix Я должен был посмотреть ... мой ThinkPad - это E540. Следуя меню на support.lenovo.com, я определил, что мое имя называется Thinkpad Edge Series. Мне пришлось исследовать многие сайты, прежде чем я получил почти все оборудование, работающее так, как я хотел (например, я отказался от датчика отпечатков пальцев).
Томми
1
@Akronix да, я никогда не загружал Windows на своей. У меня, вероятно, еще есть диски, но я старался оставаться «чистым». К сожалению, Lenovo, по-видимому, тихо прекратила поддерживать linux даже на моей модели, хотя я ее и купил, ПОТОМУ ЧТО она «сертифицирована» для Ubuntu и Red Hat.
Томми Трасселл
1

На моем ноутбуке (Yoga 260) мне нужно было получить acpi-call-dkms, который предоставляет модуль ядра acpi_call:

sudo apt install tlp acpi-call-dkms
sudo tlp setcharge 40 60 #set the start and stop thresholds to 40% and 60%

Выход sudo tlp stat -b:

--- TLP 1.1 --------------------------------------------

+++ ThinkPad Battery Features
tp-smapi   = inactive (unsupported hardware)
tpacpi-bat = active

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 00HW027
/sys/class/power_supply/BAT0/cycle_count                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  44000 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  37970 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  18910 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Unknown (threshold effective)

tpacpi-bat.BAT0.startThreshold                              =     40 [%]
tpacpi-bat.BAT0.stopThreshold                               =     60 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0

Charge                                                      =   49.8 [%]
Capacity                                                    =   86.3 [%]
Такхизис
источник
Почему 40 60? Действительно ли зарядка останавливается на 60%? Почему там BAT0/status = Unknown- кажется странным.
hrvoj3e
@ hrvoj3e Я просто выбрал 40 60 в качестве примера для соответствия с ответом Дейзи, но причина, по которой вы можете прекратить зарядку на 60%, заключается в том, что это может продлить срок службы батареи: superuser.com/questions/502328/… «Неизвестно» статус это то, что он говорит, когда он не заряжается и не разряжается. Я разрядил его до 49,8%, а затем снова подключил зарядное устройство, и, так как он все еще выше startThreshold, он не начал заряжаться.
Тахисис
Спасибо за информацию. Мой Yoga S740 не будет работать с элементами управления батареи acpi, но я настроил уведомитель в командной строке, так как я провожу много времени в терминале. Затем, когда я вижу, что это выше / ниже порога, я вручную подключаю / отключаю зарядное устройство.
hrvoj3e