Laptopy z bezsennością: gdy złożoność szkodzi [OPINIA]
Podejrzanie dużo laptopów klasy premium ma problem ze skutecznym przejściem w stan uśpienia. Problem ten, niemający uniwersalnego wytłumaczenia, staje się powszechny. Fora głównych producentów sprzętu są zalane wątkami na ten temat. Dlaczego?
22.08.2022 12:18
Usypianie (ACPI S3), podobnie jak hibernacja, przez wiele lat uchodziło za niezwykle problematyczną funkcję. W antycznych czasach Windows 98 odradzano jej stosowanie nawet na porządnych laptopach. Windows XP z kolei miewał tendencje do budzenia się "w amoku": niektóre urządzenia nie wstawały, wydajność systemu była inna niż przed uśpieniem, a cały proces trwał bardzo długo.
Problemy te zniknęły, gdy Microsoft zaczął bardziej pilnować sterowników. Windows Vista i 7 działały bezproblemowo z uśpieniem i opór przez stosowaniem tej funkcji zdążył całkowicie zniknąć. Wraz z Windows 8, Microsoft (korzystając z intelowskich inwestycji w mobilność) zaczął próbować upodobnić komputery do telefonów: usypianie i łączność miały wtedy stać się całkowicie naturalne, przezroczyste i szybkie.
W efekcie z laptopów miały "wylecieć" wszystkie bezsensowne aplikacje do zarządzania energią i łącznością, a idealne urządzenie z Windows 8 miało zachowywać się następująco:
- Budzić się i zasypiać natychmiast, od naciśnięcia przycisku zasilania, jak w telefonach
- Oszczędzać energię, ale nie rozłączać się całkowicie z sieciami
- Budzić się na żądanie aplikacji Metro (czyli z przestrzeni użytkownika, administrator już wcześniej mógł definiować zdarzenia budzące korzystając z timerów)
- Reagować żyroskopowo na zmianę orientacji przestrzennej urządzenia, wzbudzać ekran wraz ze zmianą oświetlenia (np. wskutek otwarcia klapy lub etui z klawiaturą)
Aby było to możliwe, konieczne było zdefiniowanie nowego stanu zasilania ACPI, stosowanie wyłącznie zgodnych sterowników, a także wykorzystanie UEFI, Secure Boot, przylutowanych pamięci RAM (!) i TPM 2.0. Zgodne urządzenia muszą posiadać obowiązkowy zbiór przycisków fizycznych oraz reagować na zdarzenia związane z orientacją urządzenia.
Po nowemu
Nowy tryb zasilania nazwano Connected Standby, dziś standard ten nazywa się InstantGo, a w odświeżonej implementacji Microsoftu - Modern Standby. Windows 10 idzie jeszcze dalej w "unowocześnianiu" uśpienia i likwiduje możliwość wyłączenia Connected Standby. Porzuca także plany zasilania. Dostępny jest tylko jeden plan: Zrównoważony, zamiast trzech (poprzednio istniały także Wysoka Wydajność i Oszczędzanie Energii).
Plany zasilania, poza wyprowadzaniem dla użytkownika zbioru ustawień, zawierały także cechy wbudowane. Dlatego plan Wysokiej Wydajności zawsze był mocniejszy od Zrównoważonego, nawet gdy w tym drugim "wymaksowano" wszystkie ustawienia. Trzy podstawowe plany zmieniały bowiem niewidzialne ustawienia wydajności, a nie tylko te widoczne w Panelu Sterowania.
Zamiast planów zasilania, Windows oferuje obecnie Suwak Wydajności, pozwalający wpłynąć w ograniczonym stopniu na zarządzanie mocą sprzętu. Nowe stany energetyczne, choć zdefiniowane programistycznie, nie są klasycznymi planami zasilania, a jedynie sposobem, na jaki plan Zrównoważony rozmawia z platformą przez UEFI. Włączenie planu Wysoka Wydajność jest nieobsługiwane, a wymuszenie go poprzez interakcję z systemowym obiektem o urokliwym identyfikatorze 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c może popsuć usypianie i wywołać problemy ze sterownikami.
Złożoność
Co to wszystko oznacza? Nowe systemy wymagają UEFI, zaawansowanych sterowników i oprogramowania układowego, zarządzają wydajnością całkowicie automatycznie i bez naszej kontroli, a dotychczasowe metody debugowania stały się nieaktualne. O detalach wie Microsoft, Intel i może kilku fanatycznych pasjonatów, z którymi trudno się dogadać.
Innymi słowy, jesteśmy całkowicie zdani na firmware, a ten stał się o rzędy wielkości bardziej złożony. Kilkunastomegabajtowe UEFI oraz niewiele mniejsze bloby binarne dla układów Intel AMT, Thunderbolt, TPM i innych mniejszych to idealny przepis na problemy. Wydanie zestawu oprogramowania sprzętowego bez błędów nie jest dziś możliwe. Nigdy zresztą nie było, ale dziś konsekwencje tego stanu rzeczy są poważniejsze.
A jak się objawiają? Cóż, chociażby:
- Spontanicznymi wybudzeniami urządzeń 2-w-1, które w plecaku stwierdzają, że właśnie je otwarto (ale jakoś nie chcą potem zasnąć z powrotem po 5 minutach).
- Budzącymi się w plecaku laptopami, które twierdzą, że rozłączenie z Wi-Fi to doskonała okazja by się włączyć i zacząć bezowocnie szukać nowych (zagotowując plecy użytkownika).
- Niemożliwymi do uśpienia laptopami wpiętymi w stacje dokujące na Thunderbolt, bo złożoność protokołu oraz potencjalna niezgodność peryferiów sprawiają, że laptop uznaje że właśnie podpięto nową klawiaturę albo mysz, co jest zdarzeniem wybudzającym.
- Sterownikami tak złożonymi, że laptop budzi się "po prostu" i żaden PowerCfg ani Power-Troubleshooter nie wiedzą co było powodem (brak eventu w dzienniku).
I tak dalej.
Zachowują się tak urządzenia kosztujące po kilkanaście tysięcy złotych. Przez pewien czas rozwiązaniem było całkowite wyłączenie Connected Standby, ale wraz z usunięciem planów zasilania i nadejściem nowych platform Intela, jest to dziś niemożliwe. Pozostaje w kółko aktualizować BIOS i liczyć na to, że w końcu problem zniknie (co często jednak ma miejsce i wersja 45 aktualizowanego co 3 dni UEFI w końcu rozwiązuje kłopot). Ale poza tym bardzo często użytkownicy zaczynają po prostu wyłączać urządzenia, zamiast je usypiać, aby z tym nie walczyć.
Przegramy?
Jeżeli poddawanie walki stanie się powszechną praktyką, sytuacja będzie się tylko pogarszać. Producenci muszą mieć motywację do tego, by przyłożyć się do jakości sterowników i firmware'u. A nie jest tak, że nie wiedzą o problemie. Niemal każdy główny producent ma na swojej stronie poradnik rozwiązywania problemów z uśpieniem (zupełnie jak w czasach Windows 98).
Jeżeli sprawa stanie się zbyt poważna/uniwersalna (a nie jest przecież tak, że usypianie nie działa zupełnie nigdzie, to problem punktowy), ratunkiem może być… Apple. Firma ta parokrotnie wyznaczała trendy sprawiające, że porównywanie się z pecetami wypadało żałośnie.
Rozwiązano w ten sposób problem żenująco małych i niefunkcjonalnych gładzików, nadwagi oraz aktualizacji. Być może MacBooki, które po prostu umieją zasnąć, zestawione z bezsennymi pecetami kosztującymi pięciocyfrowe kwoty, doprowadzą do powstania sprzętu, który w końcu działa.
Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl