Про батареи для Lenovo ThinkPad X270
Опубликовано 08.12.2024 в OpenBSD
Одна из причин, почему я приобрел именно ThinkPad X270 - насколько я слышал, эта модель стала последней из компактной Х-серии, которая оснащена ДВУМЯ аккумуляторами, работающими по специальной хитрой технологии Power Bridge. Все последующие уже в лучшем случае одной съемной или даже и несъемной батареей.
В чём прелесть решения с двумя аккумуляторами? Можно носить с собой рюкзак с запасными внешними аккумуляторами и менять их по мере необходимости. Шучу, шучу. Ну почти (а чего бы и не носить пару-тройку? штатный съемный аккумулятор весьма компактен, весит всего 150 граммов и комфортно помещается, например, во внутреннем кармане пиджака). На самом деле возможность замены внешнего аккумулятора на свежий прямо "на горячую", вовсе не выключая ноутбук - это весьма приятно, всяко удобнее, чем подключать шнуром пауэрбанк, например (хоть он и есть у меня). Тем более, что в продаже несложно найти и подходящие аккумуляторы увеличенной емкости.
Но главная изюминка такого решения, на мой взгляд, в самой технологии Power Bridge, которая представляет собой специальную микросхему с прошитой в ней хитрой программой управления зарядом и разрядом двух батарей параллельно. Говорят, в самых первых образцах ноутбуков с этой технологией (а началось оно с X230s) программа эта была проста, как гвоздь: "разряжаем в первую очередь внешний, съемный аккумулятор - и лишь во вторую очередь внутренний". Но ко времени X270 программа эта несколько эволюционировала и теперь учитывает еще и степень износа каждой конкретно батареи (но не тупо "раз встроенная живее, сажаем в ноль ее", а с умом, чтоб оставался запас заряда сменить внешнюю без выключения ноута). В общем, этот Power Bridge натурально жонглирует аккумуляторами при зарядке-разрядке, я, помнится, специально мониторил, как это происходит - занятно, знаете ли. В результате внешние, подключаемые аккумуляторы можно заменять, по мере износа, на новые, внутренний же проживет при этом существенно дольше (хоть он тоже заменяемый).
Для наглядности, на момент написания данного поста ситуация с батареями у моего ThinkPad X270 следующая:
-
встроенный аккумулятор изначальной емкостью 23.48 Wh (так пишет
$ doas sysctl | grep acpibat
) на момент написания этого поста имеет 174 цикла разряда на счетчике и последнюю полную зарядку на 18.79 Wh (то есть, осталось 80% от первоначальной емкости); -
внешний аккумулятор абсолютно той же с завода емкости 23,48 Wh имеет сейчас 537 циклов разряда и 17.70 Wh последней благополучной зарядки, то есть, от изначальной емкости осталось 75%.
Да, разумеется, OpenBSD корректно определяет оба аккумулятора со всяческими их параметрами, в том числе благополучно переживает удаление/добавление внешнего аккумулятора, что называется, "на горячую". Штатный инструмент apm (опрашивающий демона apmd на предмет процентов заряда, статуса подключения к сети и оставшегося времени работы), правда, рапортует об обоих аккумуляторах как об одном, суммируя их состояние - и я даже собирался повесить себе в панельку отдельные скрипты-виджеты, чтобы видеть батареи отдельно (sysctl это позволяет) - но см. выше про хитрую технологию Power Bridge, благодаря интеллектуальности которой связка "внешняя-внутренняя батареи" действительно ведут себя как одна батарея и мониторить их по отдельности смысла как-то немного.
Однако, захотелось мне тут прикупить себе второй съемный аккумулятор, причем повышенной емкости. Ностальгирую по временам владения ASUS EeePC 901, для коего я как раз купил сменную батарею повышенной емкости в дополнение ко штатной и жил вообще не думая о розетке, имея суммарно часов более 10 автономной жизни на батареях (понятно, что сейчас этим никого не удивить, современные ультрабуки и не такое умеют, но тогда-то, в 2008-м, это был прямо уникальный опыт!).
А с заказом аккумуляторов на Lenovo ThinkPad есть одна тонкость. Корпорация Lenovo, как и все хапуги-капиталюги, предпринимают всяческие попытки не только ободрать потребителей своей продукции до нитки, но и заковать в кандалы и заточить в рабство. И в свои прошивки BIOS они пихают вайтлисты допустимого для установки оборудования, в том числе определяющие производителя вставленной в ноутбук батареи - и ваш ThinkPad натурально может на свежекупленную батарейку ругнуться в духе "это сделано китайцем, который, в отличие от других китайцев, не отстегнул нам мзду, поэтому выкинь свою батарею в помойку - заряжать ее я не буду".
Честное слово, когда-то нашумела история (сейчас что-то сходу не нагуглилось) про некоего разработчика, который, отправляясь на конференцию, купил в дорожку новую батарейку для своего ThinkPad, ожидая, что по прилету у него проблем с автономностью не будет - и получил это самое сообщение про "не буду заряжать твою левую бяку". Ну он обиделся и ценой умопомрачительных усилий, дезассемблируя, декодируя и реверс-инжинируя ленововский биос - нашел, где прошита эта подлая программа и истребил ее перепрошивкой, после чего аккумулятор стал работать совершенно беспроблемно... Да-да, а вы думали, это только картриджей для принтеров касается? Скоро ваши автомобили будут говорить вам "ты поменял колесо в неавторизованном сервисе, заплатив за кручение гаек меньше тысячи баксов, так что мы никуда не едем, пиратская твоя морда".
Так вот. Покупка нового аккумулятора для ThinkPad это своего рода лотерея: во-первых, есть риск купить подделку от совсем убогих китайцев, на которую BIOS синкпада ругнется тем самым "не буду заряжать" - и крутись потом как хочешь, например, перепрошивай BIOS на васянский без вайтлистов (а там тоже все не так просто). Но это скорее редкость - все более-менее приличные китайцы уже научились, подделывая батареи, подделывать и id производителя.
Есть, однако, и другой риск. Даже корректно опознанная и принятая "за свою" батарея может в процессе использования преподнести сюрприз: при каких-то там не озвученных Lenovo нюансах коммуникации с контроллером батареи, процессор твоего ноутбука может врубить жесткий троттлинг - c ThinkPad X270 на Core i7 врубается обоим ядрам ограничение в 400 МГц, после чего ваш ноутбук работает медленнее, чем старики танцуют. На такой сюприз можно напороться с даже с заслуженно дорогими и качественными аналогами (которые и "подделкой"-то назвать совестно), вроде KingSener. Предположу, что связано это с плавающими показателями качества отдельных ячеек - встречал когда-то историю про товарища, который по рабочей необходимости приобрел большую партию этих самых банок и 70% из них оказались не то чтобы не рабочими, но таки не отвечали заявленным характеристикам...
Бороться с этим можно по-всякому: под Windows существует утилита, принудительно отрубающая тот самый режим троттлинга "по запросу к процессору от периферийного оборудования", под Linux существует модуль ядра, после подгрузки которого можно записать нужный бит в модельно-специфичный регистр процессора и сделать то же самое (отрубить троттлинг по сигналу извне, рискуя получить взрыв батареи, если сигнал был таки не случайным - впрочем, о подобных случаях мне слышать пока не доводилось), а под OpenBSD... тут инструментов чтения\записи в MSR процессора из юзерспейса не существует (не секьюрно же!), и можно, разве что, написать патч к ядру, реализовав необходимый ioctl...
В общем, по собственному опыту могу порекомендовать одно: покупайте аккумуляторы пусть дороже, подчас даже существенно дороже, но зато оригинальные. Благо в России и такая возможность не исключена. Я купил оригинальный аккумулятор повышенной емкости вот тут: https://extraparts.ru/ и могу порекомендовать этих товарищей. То, что у них продается с пометкой "оригинал", по крайней мере, проблем с вайтлистами BIOS и троттлингом мне не принесло.
Вот вам для сравнения: мой новый аккумулятор сразу при получении (полная заводская емкость 47,52 Wh, 0 циклов разряда). По габаритам он, понятное дело, несколько больше штатного, в связи с чем ноутбук на столе теперь стоит слегка под наклоном (на корпусе аккумулятора имеются резиновые ножки, чтоб не скользил). Как по мне, так даже удобнее печатать.
А вот внутренний аккумулятор:
Ну и напоследок: в OpenBSD есть еще занятные настройки, призванные служить делу продления жизни аккумулятора, вот они:
# charging mode(-1 - force discharging, 0 - inhibit charge, 1 - auto (default))
#hw.battery.chargemode=1
# start charging only when <= start (default = 0) and stop when = stop (default = 100)
#hw.battery.chargestart=50
#hw.battery.chargestop=80
Я себе их покуда в /etc/sysctl.conf записал на память, но не раскомментировал - не уверен, что стану этим пользоваться.
P.S. Замеры времени автономной работы и наблюдения по скорости деградации батареи опубликую позднее, по мере накопления.