Wykonywałem ostatnio skomplikowane akrobacje z bashem, plikiem /etc/rc.local, modułami kernela i innymi linuksowymi wynalazkami, aby uruchomić system spod znaku pingwina na swoim laptopie. Problem leżał w posiadaniu przezeń dwóch kart graficznych, działających w trybie hybrydowym, z których jedna (zintegrowana) działa zawsze, natomiast druga (zewnętrzna) budzi się na żądanie w celu obsłużenia bardziej skomplikowanych aplikacji graficznych i gier. Naturalnie Linux nie jest przygotowany do współpracy z tą technologią. więc o bezproblemowym działaniu X-owych okienek (poza trybem recovery) nie mogło być mowy.
Rozwiązaniem było całkowite wyłączenie zewnętrznej karty i to w niezbyt delikatny sposób, bo poprzez… pozbawienie jej zasilania za pomocą odpowiedniego polecenia modułu
acpi
. O tym, czy polecenie to faktycznie coś dało, mogłem się natomiast przekonać przy pomocy obserwacji szybkości rozładowywania się baterii, dostępnej w pliku /proc/acpi/battery/BAT1/state i wyglądającej mniej więcej tak:
Tak to właśnie wygląda na systemie, który podobno “po prostu działa” ;-) Żarty żartami, ale powyższy raport nt. stanu zasilania jest zbiorem całkiem interesujących informacji, które byłyby pożyteczne także i w systemie Windows. Pomyślałem więc, czy i tam nie udało by się pozyskać podobnych danych. Odpowiedź – jak można się domyślić – jest oczywiście pozytywna.
Nietrudno też odgadnąć, jakiego narzędzia można w tym celu użyć. Tak jest, chodzi oczywiście o naszą ulubioną windowsową konsolę, czyli PowerShell :) Jak to już nie tak dawno temu pokazywałem, daje ona dostęp do WMI, czyli narzędzi służących między innymi do interakcji ze sterownikami sprzętowymi systemu Windows. Wśród API, jakie dzięki temu dostajemy do ręki, znajduje się między innymi także i to, które pozwala na dostęp do informacji o aktualnym stanie baterii komputera: stopniu naładowania, przewidywanego czasu pracy, i tak dalej.
Skrypt, który potrafi te dane pobrać, może wyglądać na przykład tak:
Posługuje się on klasą Win32_Battery
z WMI, a także batterystatus
. Druga z tych klas jest nieudokumentowana i nie zawsze musi być dostępna. Jeśli jednak jest, daje ona zwykle szczegółowe informacje na temat zużycia energii przez nas sprzęt i możliwość bardziej wiarygodnego wyliczenia przybliżonego czasu dalszej pracy.
Po uruchomieniu skrypt może wyprodukować wyjście podobne do poniższego:
Przy jego pomocy możemy więc badać np. jak różne ustawienia jasności ekranu wpływają na pobór mocy przez nasz sprzęt.
Adding comments is disabled.
Comments are disabled.