Donnerstag, 22. Dezember 2011

Automatischer Standby/Ruhezustand unter Mac OS X bei nieriger Akkuladung

Seit einiger Zeit wird mein Mac nicht mehr in den Ruhezustand versetzt, wenn der Akku leer ist. Dieses Problem scheinen einige User zu haben.

Bei genauerer Analyse, musste ich feststellen das Mac OS X den Ruhezustand bei leerem Akku z.T. erst zu spät startet (z.B. bei 1% Ladung). Dann reicht die Zeit nicht mehr aus, um den Standby/Ruhezustand auszuführen und der Mac geht einfach aus. Neben dem nervigen Reboot können dabei auch Daten verloren gehen.

Das gleiche Problem kann auch bei älteren Akkus auftreten die schon nicht mehr genug Saft liefern, bevor sie die 1% Ladung erreichen. Leider bietet Mac OS X keine Möglichkeit die Schwelle/Mindestladung für den automatischen Standby festzulegen. Abhilfe schafft da ein kleines Script, das regelmäßig per cron gestartet wird.

Dazu wie folgt vorgehen:

1) Das Script /bin/standby.sh mit folgendem Inhalt anlegen:

#!/bin/bash
pmset -g batt | grep -E "\W[2-4]%;" | grep discharging && pmset sleepnow


2) Die folgende crontab mit crontab -e erstellen, um das Script jede Minute auszuführen:

#min hour mday month wday command
* * * * * /bin/standby.sh

Nun wird einmal pro Minute gecheckt ob der Akku sich gerade entlädt (discharging) und nur noch zwischen 2-4% Ladung hat. Wird eines dieser Ladungslevel erreicht, wird der Mac in den Standby/Ruhezustand versetzt.

Das Level lässt sich hier von 0-9% festlegen, was in den meisten Fällen ausreichen sollte. Über eine Anpassung des regelären Ausdrucks des grep Befehls, können auch noch höhere Level eingestellt werden. Das ist u.U. für ältere Akkus interessant.

Keine Kommentare:

Kommentar veröffentlichen