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:
1 2 3 4 5 6 7 8 9 10 |
$ xset -q ... Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 0 ... DPMS (Energy Star): Standby: 300 Suspend: 0 Off: 600 DPMS is Enabled Monitor is On |
Wyłączymy wygaszacz ekranu (screen saver – s), oszczędzanie energii (DPMS) i wyłączanie wyświetlacza (noblanking):
1 2 3 |
$ xset -dpms $ xset s off $ xset s noblank |
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:
1 2 |
$ sudo apt-get install acpi $ sudo apt-get install caca-utils |
Pomiar czasu pracy na baterii
A teraz kilka linuxowych „sztuczek”:
- Pobiorę stan baterii:
1234567891011$ acpi -VBattery 0: Discharging, 40%, 01:30:09 remainingBattery 0: design capacity 4000 mAh, last full capacity 2900 mAh = 72%Adapter 0: off-lineThermal 0: ok, 64.0 degrees CThermal 0: trip point 0 switches to mode critical at temperature 98.0 degrees CThermal 0: trip point 1 switches to mode passive at temperature 90.0 degrees CCooling 0: Fan 1 of 1Cooling 1: Processor 0 of 10Cooling 2: Processor 0 of 10Cooling 3: LCD 0 of 7 - Interesuje mnie jedynie pierwszy wiersz wydruku z polecenia:
12$ acpi -V | head -n 1Battery 0: Discharging, 39%, 01:27:54 remaining - Zostawię sobie tylko kilka danych w każdym wierszu; upewnię się że są oddzielone przecinkami (format csf – comma separated):
12$ acpi -V | head -n 1 | awk '{print $3, $4 $5}'Discharging, 39%,01:27:54 - Ale właściwie to interesuje mnie liczba minut do rozładowania baterii (-F '[:, ]’)
123$ acpi -V | head -n 1 | awk -F '[:, ]' ' {mins=$8*60+$9;print $4 "," $6 "," mins ",[minutes left]"}'Discharging,38%,87,[minutes left] - Wyniki będę zapisywał do pliku battery_life.csv:
123$ acpi -V | head -n 1 | awk -F '[:, ]' ' {mins=$8*60+$9;print $4 "," $6 "," mins ",[minutes left]"}' >> battery_life.csv$ cat battery_life.csvDischarging,37%,83,[minutes left] - Wyniki będę zbierał co minutę (60 sekund):
1$ watch -n 60 "acpi -V | head -n 1 | awk -F '[:, ]' ' {mins=\$8*60+\$9;print \$4 \",\" \$6 \",\" mins \",[minutes left]\"}' >> battery_life.csv"
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