Nowa bateria do laptopa – kilka linuksowych sztuczek (acpi, awk, watch)

Samsung n130 to takie 10 calowe maleństwo. Wprawdzie procesor Atom N270 nie grzeszy wydajnością, ale 2GB ramu z SSD 64GB pod kontrolą linuxa (lubuntu) w zupełności wystarcza jako maszyna do pisania – a i czasem na internet można spojrzeć (przeglądarka tekstowa – tutaj i tutaj).

Lekki, z matowym ekranem, genialną klawiaturą – idealny  do podróży. I ta bateria: po tylu latach nadal 70% sprawności i do 3 godzin działania. Niestety trochę mi to przestało wystarczać… Nadszedł  czas na jej wymianę.

Szybkie przeszukanie portalu aukcyjnego zaskoczyło mnie – i to bardzo pozytywnie. Mimo że produkcja n130 już dawno się zakończyła, do wyboru miałem kilku dostawców akumulatorów. Oczywiście wszystko zamienniki. W rezultacie postanowiłem „zaszaleć” i kupić produkt Green Cell o pojemności 6600maAh. W porównaniu do oryginalnych 4000mAh minus 30% utraty pojemności ze względu na wiek – różnica powinna być odczuwalna.

Porównywanie stanu różnych baterii nie jest prostym zadaniem. Działający system operacyjny składa się z wielu programów. Niektóre z nich wywoływane są bez powiadamiania użytkownika i zależnie od potrzeb. Obciążenie procesora i użycie dysków rośnie nagle – co niekoniecznie będzie powtarzalne.

Sama „pojemność” baterii jest również (w pewnych granicach) wartością zmienną. Może na nią wpłynąć bardzo wiele czynników. Inaczej będzie rozładowywała się bateria pod stałym dużym obciążeniem – inaczej pod niewielkim czy zmiennym. Również temperatura otoczenia może tu mieć pewien wpływ (lub bardzo duży w ekstremalnych warunkach).

W tym tekście pokażę Wam kilka linuxowych sztuczek związanych z mierzeniem parametrów baterii oraz przetwarzaniem danych z użyciem poleceń linuksowych.

Metoda

Najpierw przetestuję starą baterię. Naładuję ją do pełna, odłączę od zasilania, obciążę – i poczekam, aż laptop automatycznie się wyłączy. Uruchomię skrypt, który co minutę będzie zapisywał stan baterii do pliku. W ten sposób będę wiedział jak długo komputer działał i jak zmieniał się stan jego baterii

Potem wymienię baterię na nową – i zastosuję tą samą procedurę..

Przyda mi się kilka narzędzi:

  • do monitorowania stanu baterii,
  • do obciążenia komputera,
  • do interpretacji i wizualizacji wyników.

Odrobinę pogrzebię też w samym systemie, m.in. żeby wyłączyć wygaszacz ekranu i inne opcje, które ‚usypiają’ laptop w obliczu braku aktywności ze strony użytkownika.

Będę szukał odpowiedzi na pytanie, jaki zysk dało mi zainwestowanie tych kilku złotych:)

Parametr Stara bateria Nowa bateria
Producent Samsung Green Cell
Pojemność 4000mAh 6600 mAh
Waga 304g 449g
Ilość ogniw 6 9
Cena ??? 120 złotych
Stan 70% 100%

Wygaszacze i usypiacze

Laptopem zarządza lubuntu (18.04) z interfejsem lxde. Nieużywany laptop pracujący na baterii będzie przygaszał (czy wyłączał) ekran, blokował interfejs, przechodził w stan uśpienia – wszystko to na czas testu trzeba wyłączyć.

Zacznijmy od polecenia xset:

Wyłączymy wygaszacz ekranu (screen saver – s), oszczędzanie energii (DPMS) i wyłączanie  wyświetlacza (noblanking):

Niestety to nie wystarczy – kilka rzeczy trzeba jeszcze wyłączyć w warstwie graficznej. Przejdźcie do Start->Preferences->Power Management. Zakładka „System” powinna wyglądać tak (ustawcie ‚Never’ w ‚Sytem sleep mode’:

Na zakładce ‚Display’ przestawcie ‚Display Power Management’ na ‚off’ a brightness reduction na ‚Never’:

Wyświetlacz ustawiłem na maksymalną jasność.

Przygotowanie do pomiarów… (trochę linuksowej magii)

Wasz system może nie mieć jeszcze kilku przydatnych aplikacji:

Pomiar czasu pracy na baterii

A teraz kilka linuxowych „sztuczek”:

  • Pobiorę stan baterii:
  • Interesuje mnie jedynie pierwszy wiersz wydruku  z polecenia:
  • Zostawię sobie tylko kilka danych w każdym wierszu; upewnię się że są oddzielone przecinkami (format csf – comma separated):
  • Ale właściwie to interesuje mnie liczba minut do rozładowania baterii (-F ‚[:, ]’)
  • Wyniki będę zapisywał do pliku battery_life.csv:
  • Wyniki będę zbierał co minutę (60 sekund):
Męczymy procesor

Do powodzenia doświadczenia konieczne jest uzyskanie „kontrolowanego” środowiska. Postanowiłem ograniczyć „męczenie” procesora do jednej aplikacji: cacademo z pakietu caca-utils.

Aplikacja wyświetla na ekranie zmieniające animacje w trybie tekstowym. Zauważyłem, że obciąża procesor w zmienny sposób od 20 – do 100%, trochę symulując nieregularne działania użytkownika.

UWAGA: producenci baterii nie zalecają ich całkowitego rozładowywania. Operacja ta może doprowadzić do uszkodzenia baterii. Ja ograniczyłem rozładowanie do 10% (Start->Preferences->PowerManagement->System->Critical power).

Wyniki

Wyniki przeprowadzałem rozładowując baterię do 10%.

Dla starej baterii, plik z wynikami obejmował 162 wpisy. Stąd laptop pracował przez 162 minuty. W tym czasie bateria rozładowała się od 100% do 10%.  Jeżeli spojrzę na pierwsze 10% utraty energii, linux był na początku pracy bardziej optymistyczny i przewidywał średni maksymalny czas pracy na poziomie 220 minut działania (niestety nie wiem, czy system uwzględnił 10% próg wyłączenia).

Na nowej baterii laptop pracował przez 337 minut Przewidywany średni czas pracy przy 90% naładowania był jeszcze dłuższy – prawie 7.5 godziny!

Samsung Green Cell
Pojemność (uwzględniając zużycie) [mAh] 3000 6600
Przewidywany czas pracy (po 10% rozładowania) [minuty] 220 456
Ostateczny czas pracy [minuty] – do 10% 162 337

Podsumowanie

Wyniki uzyskane w czasie mojego testu nie były jakimś zaskoczeniem. To, że laptop będzie znacznie dłużej pracował na nowej, większej baterii, nie stanowiło niespodzianki. Zamiast „starych” 3000mAh – laptop ma teraz do dyspozycji świeżutkie 6600mAh. 340 minut to prawie 6 godzin, ale z przygaszonym ekranem ‚wyciągnę’ pewnie jeszcze więcej. Oczywiście za cenę zwiększonej wagi, trochę zakłóconej „geometrii” obudowy i dłuższego czasu ładowania.

Przy okazji tej analizy odświeżyłem sobie nieco kilka narzędzi i  poleceń linuxa – jak acpi, watch, awk, gnuplot Zwłaszcza do tego ostatniego – służącego do tworzenia wykresów gnuplot – powrócę w kolejnym tekście.

Co jednak ważniejsze – mam całkiem sporo danych, które pozwolą mi na sprawdzenie jak moja nowa bateria będzie sprawować się za rok, dwa czy trzy lata.

Zapraszam do komentowania na facebook.

Źródła

  • https://www.ostechnix.com/how-to-check-laptop-battery-status-in-terminal-in-linux/
  • https://stackoverflow.com/questions/14871272/plotting-using-a-csv-file
  • https://www.fuw.edu.pl/~pablo/pracownia/gnuplot.pdf