Sinds enige tijd valt mijn Macbook Pro spontaan uit als er nog 8-10% geschatte resterende accuduur over is. De oorzaak hiervan is het feit dat nu ik er al meer dan 1200 cycly op heb te zitten, de accu terwijl hij nog niet geheel leeg is niet meer het benodigde vermogen kan leveren. Op dat moment valt hij compleet uit, en is zelfs zijn klok etc. gereset (hij denkt dat het weer 01-01-2000 is).
Mijn maximale accucapaciteit is echter nog zo'n 70% van de oorspronkelijke waarde, zodat hij nog een ruime 3 uur op de accu kan bij normaal gebruik. Eigenlijk is vervangen (wat het probleem voor 129 euro zou oplossen) dus vanuit dat oogpunt nog niet nodig. Omdat ik echter een enkele keer vergeet op tijd de stekker in het stopcontact te steken, resulteerd dat in een crash waarbij niet opgeslagen werk etc. verloren gaat.
Om dit op te lossen heb ik een eenvoudig scriptje gemaakt, dat de resterende accuduur in de gaten houdt en dan tijdig overschakeld naar de hibernation mode waarbij het systeem compleet uit gaat, en daarna direct naar de ingestelde standby mode gaat. Als hij echter ziet dat er nog voldoende batterijtijd over is, schakeld hij juist de normale hibernation mode weer in (de normale standby mode die wordt ingeschakeld wanneer je het scherm dichtklapt).
Aangezien dit script voor andere mensen misschien ook nuttig is (ik kwam na wat Googlen geen vergelijkbare oplossingen tegen), leek het me goed om het hier te posten.
Overigens ben ik bang dat het met de MINLEVEL parameter (het aantal minuten resterende tijd waarbij hij uit moet schakelen) een beetje experimenteren is, waarbij een hogere waarde moet worden gekozen naarmate de accu ouder wordt.
Dit script draai ik elke minuut. Dit stel je in door het onderstaande toe te voegen aan /etc/crontab:
/Users/stefan/sleep.sh is uiteraard de locatie waar het script bij mij is opgeslagen...
Mijn maximale accucapaciteit is echter nog zo'n 70% van de oorspronkelijke waarde, zodat hij nog een ruime 3 uur op de accu kan bij normaal gebruik. Eigenlijk is vervangen (wat het probleem voor 129 euro zou oplossen) dus vanuit dat oogpunt nog niet nodig. Omdat ik echter een enkele keer vergeet op tijd de stekker in het stopcontact te steken, resulteerd dat in een crash waarbij niet opgeslagen werk etc. verloren gaat.
Om dit op te lossen heb ik een eenvoudig scriptje gemaakt, dat de resterende accuduur in de gaten houdt en dan tijdig overschakeld naar de hibernation mode waarbij het systeem compleet uit gaat, en daarna direct naar de ingestelde standby mode gaat. Als hij echter ziet dat er nog voldoende batterijtijd over is, schakeld hij juist de normale hibernation mode weer in (de normale standby mode die wordt ingeschakeld wanneer je het scherm dichtklapt).
Aangezien dit script voor andere mensen misschien ook nuttig is (ik kwam na wat Googlen geen vergelijkbare oplossingen tegen), leek het me goed om het hier te posten.
Overigens ben ik bang dat het met de MINLEVEL parameter (het aantal minuten resterende tijd waarbij hij uit moet schakelen) een beetje experimenteren is, waarbij een hogere waarde moet worden gekozen naarmate de accu ouder wordt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| #!/bin/sh MINLEVEL=20 current_mode=`pmset -g live | grep hibernatemode | cut -s -f2` discharging=`pmset -g ps | grep discharging | cut -s -f1` power=`pmset -g ps | grep InternalBattery | cut -d' ' -f4` if [ -z $discharging ]; then if [ $current_mode -eq 1 ]; then pmset hibernatemode 3 fi exit fi hr=`echo $power | cut -d':' -f1` min=`echo $power | cut -d':' -f2` if [ $hr -eq 0 -a $min -le $MINLEVEL ]; then pmset hibernatemode 1 pmset sleepnow exit fi if [ $current_mode -eq 1 ]; then pmset hibernatemode 3 exit fi |
Dit script draai ik elke minuut. Dit stel je in door het onderstaande toe te voegen aan /etc/crontab:
code:
1
2
| # m h dom mon dow user command * * * * * root sh /Users/stefan/sleep.sh |
/Users/stefan/sleep.sh is uiteraard de locatie waar het script bij mij is opgeslagen...
[ Voor 9% gewijzigd door SPT op 26-10-2012 13:38 ]