Usypianie MacBooka w dwie sekundy

2010-03-16

Dziś szybka rada dla użytkowników komputerów Apple MacBook. Jeśli chcecie przewidywalnego usypiania komputera (po zamknięciu klapki) w czasie dwóch sekund, wystarczy:

sudo pmset -a hibernatemode 0

Powoduje to, że zamiast zgrywać obraz całej pamięci RAM na dysk, komputer usypia natychmiast. Oczywiście ma to swoje konsekwencje — jeśli odłączymy zasilanie gdy komputer jest uśpiony, będzie to tak jakbyśmy go nagle wyłączyli. Stracimy nie zachowane dane.

Oczywiście jeśli już rozważamy ryzyko utraty danych, to warto wspomnieć, że nagłe podniesienie komputera z pracującym (zapisującym właśnie RAM) dyskiem może mieć znacznie gorsze konsekwencje, z fizycznym uszkodzeniem dysku włącznie.

Kiedyś, gdy miałem jeszcze MacBooka Pro z wyjmowalną baterią, bałem się wyłączać hibernacji, bo zdarzało mi się zapomnieć i wyjąć baterię z uśpionego komputera. Teraz jednak nie mam już możliwości wyjęcia baterii, a do jej całkowitego rozładowania nie doprowadzam nigdy — po co mi więc hibernacja na dysk?


Komentarze

Dla tych, co nie lubią terminala: SmartSleep

Tomek Błaszczyk2010-03-16

+1 dla SmartSleep - oprócz wyjęcia baterii jest jeszcze ryzyko wyładowania się jej (podczas uśpienia komputer coś tam jednak zużywa). SmartSleep pozwala ustalić, poniżej jakiego poziomu baterii komputer zacznie hibernować się na dysk.

Maciek Pasternacki2010-03-16

Maciek: hmm… zastanawiam się, co spowoduje więcej zniszczeń: wyłączenie się komputera z powodu wyczerpania baterii, czy próba hibernacji gdy akurat biegnę z plecakiem, w którym jest laptop.

Jan Rychter2010-03-16

Proste: zanim zacznę rzucać laptopem czekam, aż lampka zacznie mrugać. W normalnych warunkach jest tak od razu - jeśli zamykam komputer np. w pociągu, bo kończy się bateria, to mogę poczekać ten moment. Sytuacja, w której zamykam komputer i spieszy mi się aż tak, że nie mogę poczekać nie więcej jak dwóch minut, a pracuję na baterii i akurat się kończy (poniżej 10% baterii - poniżej 20 minut przewidywanego czasu pracy), wydaje mi się pomijalnie mało prawdopodobna i nie zdarzyła mi się nigdy. Za to zamknięcie komputera, ponieważ gaśnie mi bateria (np. we wspomnianym pociągu - poniżej 5 minut przewidywanego czasu pracy) i otwarcie go następnego dnia rano - zdarzyła mi się już kilkukrotnie.

Maciek Pasternacki2010-03-16

Maciek: no dobrze, ale miałem na myśli sytuację, gdy komputer postanawia wykonać hibernację gdy akurat z nim gdzieś pędzisz, bo zauważył, że mu się kończy bateria.

Takie coś daje SmartSleep (albo "pmset -a hibernatemode 2") i zastanawiam się, czy nie jest to ryzykowne.

Jan Rychter2010-03-16

A ja sobie ustawiłem tak:

-- zamknę komputerek -- śpij w pamięci

-- wcisnę guziczek i zamknę -- shibernuj oraz śpij w pamięci (obraz na dysku to backup)

w tej drugiej sytuacji muszę czekać 1-2 minuty na hibernacje (mam szyfrowany dysk), ale za to nie boję się wyczerpania baterii. W praktyce zawsze korzystam z pierwszej możliwości. Z drugiej tylko jeśli nie będę tego samego dnia używał, a nie mam zasilania.

Krzysztof Leszczynski2010-03-17

Na ile rozumiem działanie SmartSleep, polega ono na wybraniu trybu 0 albo 1, zależnie od stanu baterii w momencie zamykania klapki, czego nie daje sam pmset (hibernatemode 2 działa tak, jak opisałeś). Właśnie sprawdziłem, w tej chwili (naładowana bateria, podłączony zasilacz) mam hibernatemode 0. Jeśli mam wystarczająco baterii, żeby komputer dożył na zwykłym sleep do rana, to usypia "do ramu", jeśli jest ryzyko wyczerpania baterii - hibernuje. Jeszcze sprawdzę, czy hibernatemode faktycznie zmienia się jak bateria spadnie, ale to zajmie parę godzin ;)

Maciek Pasternacki2010-03-17

Dobry post. Akurat szukałem czegoś, co umożliwiłoby mi hibernate bez sleep (bo nie mam baterii w laptopie w ogóle) :)

Merlin2010-03-17

@JWR: a czy Maki nie mają wbudowanego akcelerometru właśnie po to, aby dysk się nie popsuł kiedy nagle podniesiesz komputer (albo pociąg zahamuje)?

Ryszard Szopa2010-03-17

@Merlin, to jest tryb "1" właśnie, szczegóły w man pmset tudzież (w skrócie) http://www.kernel-panic.org/pipermail/kplug-list/2009-August/109290.html

Maciek Pasternacki2010-03-17

Ryszard: mhm, podobno mają, ale nie mam do niego wielkiego zaufania. Za to kiedyś podniosłem nagle hibernującego się laptopa z Linuxem i zgrzyt jaki usłyszałem pamiętam do dziś. Potem miałem na dysku plik (dawny swapfile), którego nie wolno było ruszyć, bo w środku była dziura.

Jan Rychter2010-03-17

Właśnie wyładowałem baterię do 9% i hibernatemode zmienił mi się z 0 (podtrzymanie ramu, brak hibernacji na dysk) na 3 (więc nie na pełną hibernację + całkowite wyłączenie komputera, a na hibernację na dysk *od razu* + podtrzymanie ramu dla szybszego włączenia). Nie zbliża się to do hibernatemode 2 (podtrzymanie ramu + zapis na dysk w razie potrzeby).

Maciek Pasternacki2010-03-17