Для начала я написал простенький скрипт, позволяющий записывать в файл текущий заряд аккумулятора:
#!/bin/sh
# this script has been written by Eddy
#
# bat_graph
#
# Создан 07-го Ноябрь 2012 года в 13:23
#
[ "$1" == "" ] && F="/home/eddy/bat_graph" || F="$1"
while true; do
CN=$(cat /sys/class/power_supply/BAT0/charge_now)
STR=$(date +%s\\t$CN)
echo -e "$STR" >> $F
sleep 30
done
Если передать скрипту параметр — имя файла — он будет сохранять данные в этот файл, иначе — в файл ~/bat_graph.Величина текущего "заряда" берется из файла /sys/class/power_supply/BAT0/charge_now, а в файле /sys/class/power_supply/BAT0/charge_full можно посмотреть предельный "заряд" аккумулятора. Разделив первое на второе, получим величину заряда в процентах.
Для того, чтобы писать время в элементарно обрабатываемой форме, я использовал date +%s, выдающую UNIX-время.
Лирическое отступление
Только я начал чертить, как заметил, что каждые секунд 30 мышка "отваливается". Сначала я грешил на управлялку тачпадом, отключающую его на время активности клавиатуры, но потом до меня дошло, что это laptop-mode-tools отключают питание USB. Полез в настройки — и действительно, отключают. Отменил управление питанием USB и спокойно продолжил черчение.
Когда мне чертить надоело, я начал ковыряться в /sys. Обнаружил, что акселерометр у меня в буке очень даже работает, и показывает условное положение ноутбука в пространстве. Узелок на память: надо будет настроить "засыпание" в случае "роняния" бука, а также изменение ориентации картинки (например, при помощи xrandr) при его повороте. А еще надо бы выяснить, как отключить светодиодную подсветку логотипа на крышке ноутбука — не нужна она.
А еще я обнаружил, что у меня в ноутбуке не 4 ядра, а 2 ядра с "гипертридингом".
Только я начал чертить, как заметил, что каждые секунд 30 мышка "отваливается". Сначала я грешил на управлялку тачпадом, отключающую его на время активности клавиатуры, но потом до меня дошло, что это laptop-mode-tools отключают питание USB. Полез в настройки — и действительно, отключают. Отменил управление питанием USB и спокойно продолжил черчение.
Когда мне чертить надоело, я начал ковыряться в /sys. Обнаружил, что акселерометр у меня в буке очень даже работает, и показывает условное положение ноутбука в пространстве. Узелок на память: надо будет настроить "засыпание" в случае "роняния" бука, а также изменение ориентации картинки (например, при помощи xrandr) при его повороте. А еще надо бы выяснить, как отключить светодиодную подсветку логотипа на крышке ноутбука — не нужна она.
А еще я обнаружил, что у меня в ноутбуке не 4 ядра, а 2 ядра с "гипертридингом".
В конце-концов неожиданно появился свет, я запустил этот же скрипт, но с сохранением в другой файл (для получения графиков заряда АКБ), и побежал на работу.
Итак, вот что у меня получилось.
Как обычно, запускаю Octave и выполняю анализ графика разряда:
[T C] = textread ('bat_graph');
T -= T(1); T /= 3600;
C /= 56050;
dC = diff(C); dT = diff(T);
plot(T,C)
print -dpng discharge.png
plot(T(2:end),dC./dT)
print -dpng dischargediff.png
median(dC)/30*3600
ans = -19.269
Считываем в переменную T столбец с UNIX-временем, а в переменную C — столбец с "зарядом". Преобразуем время в часы, а "заряд" — в проценты (5605000 — стопроцентный уровень заряда). Находим дифференциалы и строим графики.
Так как в ЖЖшке до сих пор не работает загрузка изображений, даю ссылки на гуглоплюс!


Аналогичным образом я получил графики для заряда:


Итак, что получается: средняя скорость разряда составляет чуть больше 19% в час. Индикатор (batti) показывал в самом начале, что батареи хватит на четыре с лишним часа. Судя по графикам, это действительно так. Надо будет через годик посмотреть, насколько сильно деградирует аккумулятор.
С зарядом вообще получается красота: прямо таки то, что и должно быть. Изначальная скорость — около 60% в час. Все эти выбросы — обычный цифровой шум, а выброс на графике скорости заряда при достижении 100% обусловлен, по-видимому, тем, что "железо" считает полностью заряженной батарею при достижении некоего уровня, немного не доходящего до теоретического "полного заряда".
Journal information