Producent / sprzedawca (obecnie) mówią o 20h na baterii, ja mam nawet prawie 36h (2021)
Submitted by marcin on Sat 25-Sep-2021

polski
polski blog
salon24.pl
Hyperbook
x86


Artykuł został opublikowany w serwisie salon24.pl

Co łączy drukarkę Mera D-100M z lat 80-tych XX-wieku i nowoczesnego laptopa z 2020 roku?

O tym też dzisiaj będzie, wpis jednak chciałbym rozpocząć od tego obrazka:

image

Można? Można.

Teoretycznie notebookcheck.net testował kiedyś urządzenie, które w ich teście osiągnęło ok. 59h. Piszę teoretycznie, gdyż w praktyce (biorąc pod uwagę możliwości energetyczne obecnych systemów) takie wyniki w praktyce można chyba uzyskać tylko:

  • podczas pracy z zewnętrznym monitorem (ekran komputera jest cały czas wyłączony)
  • przez chwilę po odłączeniu ładowarki (stąd pochodzi mój zrzut ekranu)

Czy tak czy inaczej, cały czas próbuję wycisnąć co nieco z Hyperbooka L14 pod Ubuntu 21.04. System obecnie wskazuje mi na to, że bateria trochę się „rozruszała” i zamiast deklarowanych 73.9 Wh ma 74.6 Wh. Zrobiłem kilka ustawień:

Zmniejszenie ilości zapisów na dysku

System był instalowany z szyfrowaniem (patrz artykuł) i po instalacji miał plik wymiany, który wyłączyłem:

sudo swapoff -a
sudo rm /swapfile

i usunąłem wpis z pliku /etc/fstab

Następnie wyłączyłem modyfikację czasów dostępu do plików i katalogów, i włączyłem TRIM - w pliku /etc/fstab dodałem opcje

noatime,nodiratime,discard

do głównego systemu plików.

Katalogi /tmp i /var/tmp też przeniosłem do RAM - patrz artykuł (na każdy wystarcza spokojnie 512 MB)

Kolejną opcją była deaktywacja serwera drukowania i dziennika systemowego:

sudo systemctl disable rsyslog
sudo systemctl disable cups

i dodanie

Storage=none

do pliku /etc/systemd/journald.conf

Możnaby pójść dalej, ale mi się nie chciało (nawiasem mówiąc, popularne dystrybucje Linuxa z logami i monitorowaniem niebezpiecznie idą w stronę Windows)

Wykorzystanie opcji modułów jądra

We wpisie "Sprzęt i soft, który żyją własnym życiem" opisywałem włączanie trybu D3 dla poszczególnych urządzeń PCI urządzenia. Zaczynałem tam od wydania komendy, która wypisała mi ich listę:

sudo lspci -vvv

Można tam zobaczyć nazwy modułów jądra, które zostały załadowane. Dla każdego z nich można sprawdzić listę opcji, np.

modinfo -p i915

Na tej podstawie stworzyłem listę, którą dodałem w pliku /etc/default/grub do opcji GRUB_CMDLINE_LINUX. Potem jeszcze tylko

sudo update-grub

restart i mogłem już przystąpić do testów.

Początkowo moja lista wyglądała następująco:

GRUB_CMDLINE_LINUX="i915.enable_fbc=1 i915.enable_dc=4 i915.enable_psr=1 i915.enable_dpcd_backlight=1 snd_hda_intel.power_save=1 snd_hda_intel.power_save_controller=true iwlwifi.power_save=true iwlwifi.led_mode=3"

Uzyskałem wtedy niewidoczność karty Wifi i dźwiękowej, i brak jakichś specjalnych różnic (może nawet pogorszenie). Metodą prób i błędów uzyskałem wersję ostateczną:

GRUB_CMDLINE_LINUX="i915.enable_fbc=1 i915.enable_dc=4 i915.enable_psr=1"

Mikrokod do procesora

Zauważyłem, że nie jest najwyraźniej ładowany, a że lubię życie na krawędzi (just joking)... w pliku /etc/modprobe.d/intel-microcode-blacklist.conf wystarczyło odkomentować linijkę

blacklist microcode

Tuxedo

W notce "W poszukiwaniu urządzenia doskonałego…" pisałem o instalacji aplikacji od firmy Tuxedo, która m.in. pozwala na kontrolę prędkości wentylatorów (do tego włącza kombinację Fn+F1 do wyłączania touchpada, wyłącza kamerę i robi kilka innych rzeczy). Zarzucono mi, że wspominam o instalowaniu aplikacji podejrzanych (patrz moja polemika)... w międzyczasie zauważyłem m.in. to, że chociażby włączenie odpowiedniej usługi wydaje się bardzo szkodliwe dla czasu pracy na baterii (usługa jest dosyć energożerna, a zgłaszanie usterek jest średnio skuteczne na GitHub).

Na chwilę obecną wspomnianą aplikację mam wyłączoną, ale zainstalowaną:

wystarczyło wydać komendy

sudo systemctl stop tccd
sudo systemctl mask tccd

i w pliku /etc/systemd/system/tccd-sleep.service mieć linijki

ExecStart=/bin/bash -c "systemctl stop tccd"
ExecStop=/bin/bash -c "(systemctl start tccd; systemctl stop tccd)"

(chciałem mieć pewność, że kamera się nie włączy; pewnie można to zrobić lepiej)

Limity procesora

Można tu wyróżnić zarówno limity energetyczne (ilość W, która może być zużywana), jak i prędkościowe. O ustawianiu tych pierwszych wspominałem w notce "W poszukiwaniu urządzenia doskonałego…", w drugim przypadku nie chciałem limitować maksymalnej prędkości, i wystarczało mi ustawienie trybu oszczędzania zamiast pełnej prędkości, więc użyłem

sudo cpupower frequency-set --governor powersave

(uwaga: aplikacja od Tuxedo nie obsługuje jeszcze powersave, i warto wyłączyć opcję dotyczącą procesora w opcjach głównych)

Wersja ostateczna

Pomyślałem, że zbiorę te wszystkie swoje ustawienia w jeden skrypt, i będę go uruchamiał po starcie systemu i wybudzeniu z trybu standby. Treść skryptu:

# przy XWindows można zmieniać gammę
xgamma -rgamma 0.7 -ggamma 0.7 -bgamma 0.7
# włączam usługę (ona mi ustawia kamerę), wyłączam # i na wszelki wypadek jeszcze upewniam, że jest nieaktywna sudo systemctl start tccd sudo systemctl stop tccd sudo systemctl mask tccd
# tryb oszczędzania energii procesora; # nie limituję maksymalnej prędkości, mógłbym to zrobić z użyciem Tuxedo # albo właśnie cpupower frequency-set sudo cpupower frequency-set --governor powersave
# odpowiednio 10 i 20W, co jest co sprawdzimy przez powercap-info -p intel-rapl sudo rapl-set -p 0 -c 0 -l 10000000 -e 1 sudo rapl-set -p 0 -c 1 -l 20000000 -e 1 sudo rapl-set -p 0 -c 2 -l 20000000 -e 1 sudo rapl-set -p 1 -c 0 -l 20000000 -e 1 sudo rapl-set -p 1 -c 1 -l 20000000 -e 1

Skrypt zapisałem w pliku, następnie po wybudzeniu z trybu standby jest odpalany przez plik od Tuxedo (wiem, wiem, powinien być oddzielny):

ExecStop=/bin/bash -c "sciezka_do_pliku"

w pliku /etc/systemd/system/tccd-sleep.service

a po starcie systemu uruchamia mi się usługa foo, tzn. stworzyłem plik /etc/systemd/system/foo.service:

[Unit]
Description=Foo Service

[Service]
Type=oneshot
ExecStart=/bin/bash -c "sciezka_do_pliku"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

i zrobiłem

sudo systemctl daemon-reload
sudo systemctl enable foo.service

(pomysł z askubuntu.com)

Czy osiągnięto ideał?

Zabawy z energią uskuteczniałem np. w 2013 (300h czasu standby w Samsung Galaxy S4 mini). Gdybym teraz walczył o każdy mW, to wtedy pewnie powinienem ze środka wyjąć kartę Wifi, jak również w ogóle wyłączyć podświetlenie ekranu, nie włączać podświetlenia klawiatury, itd. Sprzęt tymczasem jest po to, żeby go używać. Producent gwarantuje 20h, niektóre teksty mówiły nawet o 32h, mnie zaś przy pewnych scenariuszach udało się uzyskać realne wyniki rzędu 36h (oczywiście bez wifi, dźwięku, i głównie podczas pisania tekstów), i śmiać mi się w tym momencie, gdy czytam sponsorowane teksty laptopów z „technologią” Intel Evo i gwarantowanym czasem pracy 9h.

Nie ma jednak róży bez kolców. Zdecydowałem się wyłączyć Secure Boot (szerzej o tym wynalazku), gdyż wydaje się blokować pewne funkcje jądra. Irytujące jest to, że w trybie standby zużycie jest dosyć wysokie (jest to prawdopodobnie typową cechą wszystkich "dorosłych" systemów z Intelem). Irytujące jest też aktywne chłodzenie (tzn. sama obecność wentylatora, ale i to, że pod Linuxem do kontroli dostępna jest wyłącznie aplikacja od Tuxedo, która sama wydaje się obciążać akumulator). Nie ma żadnych deklaracji dotyczących baterii, nie wiadomo jak będą wyglądały uaktualnienia (jak dotąd zaliczyłem jedno, i właściwa procedura jest taka, że plik EFI należy uruchomić pod shellem dostępnym np. ze strony Schenkera), a sam BIOS jest mocno okrojony.

Z drugiej strony jednak strony SF114-32 przy baterii ok. 49Wh miał deklarowane 17h pracy. Gdyby to przeskalować do wielkości baterii Hyperbooka (np. tak, że 49Wh * 1,5 = 73.5h), to mały komputerek Acera powinien działać ok. 25,5h. Nie wiem, co najbardziej dało zysk konstrukcji Clevo, ale możliwości jest kilka:

  1. dysk (Samsung 980 vs WD SN520)
  2. system operacyjny (Ubuntu 21.04 vs Windows 10)
  3. ekran (1.65W max. vs 2.9W max.)

A właśnie, ekran. Miałem o nim napisać, więc kilka słów: najbardziej poprawny i mało męczący obraz uzyskałem z następującymi ustawieniami:

(aplikacja gnome-tweaks)

image

(dconf-editor)

image

(Settings)

image

image

Do tego dodałem sobie gammę na poziomie 0.7. Wydaje się, że mój wzrok bardziej lubi ekrany innego typu, ale… nie jest źle i ogólnie matryca sprawia dobre wrażenie (dobre pokrycie kolorów, 8-bit, etc.)

Czego mi się nie udało?

  1. Ustalić, jaką kość pamięci włożono, i czy rzeczywiście jest energooszczędna (ogólnie nie lubię lutowanego RAM, ale... jeśli miałby wydłużać czas, to dlaczego nie?
  2. Wyłączyć z sensem urządzenia np. na PCI (ustawianie trybu D3 wydaje się skracać czas pracy na baterii)
  3. Znaleźć jeszcze bardziej energooszczędnego dysku (nawiasem mówiąc, po prawie miesiącu mam 100GB odczytów i ledwo 53.7GB zapisów, i moim ostatnich zmiana liczba zapisów drastycznie spadła) - teoretycznie dyski WD mają mniejsze zużycie w trybie PS4, ale... w innych wypadają gorzej niż Samsungi (do tego do końca nie wiem, jak poprawnie stwierdzić, ile czasu dysk spędza w którym trybie)

Czy w ogóle jeszcze warto kupować dzisiaj konstrukcję z procesorem Intela?

Tutaj dochodzi do drukarki z czasów PRL. Produkowano ją w czasie, gdy system dogorywał. W tamtym czasie i miejscu była właściwie cudem techniki, dziś jednak możemy spokojnie powiedzieć, że nie umywa się do różnych nowszych konstrukcji (a może nawet jej współczesnych, ale produkowanych w innych krajach).

Przerywnik: proszę mnie w tym momencie nie zrozumieć źle - gospodarka PRL potrafiła produkować bardzo dobre produkty, ale... często i gęsto poprzestawano na jakimś projekcie i klepano go latami (Nysa miała drewnianą podłogę nawet pod koniec w latach 90-tych), albo wprowadzano "optymalizacje" (stąd Fiat odciął się od FSO 1500, którego jakość spadła tam mocno, że wszyscy rwali włosy z głowy).

Obecny czas jest czasem dziwnym i strasznym, a na rynku elektroniki panuje i drożyzna i zastój (tak, wiem o M1 i różnych innych rzeczach, ale jedna jaskółka wiosny nie czyni). Nie warto obecnie kupować niektórych rzeczy, i najlepiej po prostu się wstrzymywać (AMD może wtedy dojdzie do poziomu Intela w pewnych sprawach, Apple dopracuje ekrany miniLED i Emki, itd.). Z drugiej strony, choć oczywiście wszyscy marzą o powrocie do normalności za 2 tygodnie, to nie nastąpi. Świat za bardzo poszedł do przodu, sojusze się zmieniły, i... w całym tym prześciganiu we wprowadzaniu kolejnych organiczeń brakuje chyba tylko sytuacji, żeby ktoś zaproponował karę śmierci za rozpowszechnianie ulubionego mikroba.

Niebiescy też doszli do granic swoich możliwości, i sugerowałbym bardzo dużą ostrożność z ich 12-generacją (warto zaczekać na wyniki niezależnych testów i rozpracowanie całości, które pewnie potrwa miesiące, jak nie lata). Obawiać się można o pozew ze strony Chin (przy dużej utracie zysków jakość Intela może pójść w dół) i o to, że obecna architektura x86 doszła do ściany:

  1. po co w sprzęcie obsługa trybu 16-bitowego czy wielu innych starych rozwiązań?
  2. tryb standby to porażka
  3. wyłączanie niepotrzebnych elementów leży i kwiczy (Intel ME jest smutnym przykładem)
  4. układy są z Ameryki, i biorąc pod uwagę sytuację polityczną, nie wszędzie prawdopodobnie można ich używać

Czy tak czy inaczej, Hyperbook / Clevo zrobiły dużo, żeby różne niedoskonałości Intela zniwelować, i ich obecna konstrukcja jest warta rozważenia. Orientacyjne 4000 PLN za laptopa, który w terenie potrafi zadziałać > 30h, to cena naprawdę fair. Można się zżymać na wentylator, jasność na poziomie 300 cd, i inne rzeczy...ale i tak powiem, że w obecnym systemie światowym taka konstrukcja to cud podobnie jak kiedyś drukarka Mery w PRL.

Nie zapominajmy bowiem o jednej rzeczy: użytkownik ma brać co jest, a zdarza się, że tak naprawdę nie ma z czego wybrać. Zdarzają się wciąż "laptopy", gdzie jest zaledwie 4 GB RAM, albo dysk 64 GB, albo mrugające ekrany, albo... ktoś może powiedzieć, że można oczywiście wybrać coś innego od innego producenta, ale... no właśnie, wystarczy jeden statek w Kanale Sueskim (i wtedy półki są równo wymiecione), do tego takie "normalne" laptopy potrafią kosztować nawet 8000 czy 12000 PLN... a tu proszę - płacę 4000 PLN, i cały ten balans funkcjonalności jest bardziej niż adekwatny do ceny.

Za kilka lat może być tak, że będziemy własne europejskie procesory, albo że ARM-y tak zdeklasują x86, że o nim zapomnijmy. Na pewno świat się mocno zmieni - mamy pierwsze bardziej prywatne loty w kosmos, mamy projekty samolotów o prędkości 7 Mach, mamy zakusy na eliminację własności prywatnej i na masowe wprowadzenie elektryków (co akurat nie wyjdzie na dobre). W takim to świecie:

Tylko tyle, i aż tyle.