Jakoś tak zeszło ze znajomymi na rozmowę o komputerach. Dokładniej o laptopach wykupionych z pracy. No i mówię, że wszystko fajnie, ale bateria chyba będzie wymagała wymiany u mnie, bo nie trzyma jak dawniej. Oczywiście gdyby laptop był zbudowany jak kiedyś, zwyczajnie wymieniłbym ją i zapomniał o temacie. Jednak teraz zamiast osobnej baterii, którą można wpiąć z zewnątrz, są zabudowane, w środku laptopa. Czyli z prostego wypięcia starej i wpięcia nowej zrobiła się trochę bardziej skomplikowana operacja, co trochę zniechęca.
Tym bardziej, że bateria nadal trzyma tylko… krócej. W zasadzie określenie „trzyma krócej” to nadużycie, bo nie wiedziałem, ile naprawdę trzyma. Zauważyłem, że komunikat o niskim stanie naładowania pojawia się wcześniej. I miałem wrażenie, że nagle. Trochę sfera domysłów, ale po pierwsze raczej rzadko korzystam z tego sprzętu na baterii, a po drugie raczej nie śledzę wtedy stanu naładowania, bo robię coś innego.
Pomiar
W każdym razie rozmowa skłoniła mnie, żeby sprawę zbadać dokładniej. Żeby zobaczyć, ile trzyma bateria, popełniłem szybki skrypt:
#!/bin/bash
OUT='/home/rozie/battery.log'
while :
do
date >> $OUT
acpi >> $OUT
sleep 60
done
Po uruchomienu, co minutę w pliku dodawane są dwie linie. Data i stan baterii. Na przykład:
nie, 30 maj 2021, 19:49:52 CEST
Battery 0: Discharging, 95%, 09:06:51 remaining
Nie jest to idealna wersja do parsowania, ale widać co się działo i kiedy.
Odłączyłem laptopa od zasilania i czekałem. W sumie nie doczekałem się wyłączenia, bo usnąłem. No ale po to właśnie był log.
Okazało się, że laptop działał długo. Stwierdziłem, że do określenia wszystkie wystarczy tak naprawdę sam stan naładowania baterii. W końcu próbki są robione dokładnie co minutę, więc czas będzie znany.
Wynik
Przerzuciłem do CSV i zrobiłem wykres:
Jak widać potwierdziło się wszystko, co mi się wydawało. Bateria trzyma długo, bo prawie 6h. Co prawda to raczej okolice idle, ale nadal sporo, zwłaszcza jak na kilkuletni sprzęt. Widać też, że zgłaszana pojemność gwałtownie spada po ok. 3,5 h.
Czyli jest problem. Szukałem jak go rozwiązać i póki co wyczytałem tylko tyle, że system ma tu niewiele do powiedzenia. Na razie znalazłem taką radę. Rozładowałem do zera, choć miałem opory, bo coś mi się kojarzy, że to niezbyt zdrowe dla baterii. Chyba nie pomogło. Ewentualnie hibernacja coś tu ma do rzeczy.
Za to znalazłem lepsze narzędzie do pomiaru stanu baterii laptopa w czasie. Battery-stats, bo o nim mowa, jest ładnym rozwinięciem prostej idei z powyższego skryptu dostępnym w repozytoriach Debiana. Jest i porządny plik, czytelny dla człowieka, i skrypt w bashu, który z pomocą gnuplot generuje wykres.
Gdyby ktoś miał pomysł, jak sprawić, aby cały czas pokazywana była rzeczywista pojemność i pozostały czas pracy, chętnie przyjmę rady. Wymieniać nie będę. Nawet gdybym miał wyłączać laptopa po tych 3,5 h, to w zupełności mi to wystarcza.