[HOWTO] Voorkom uitvallen Macbook met "Replace Soon" accu

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • SPT
  • Registratie: Januari 2007
  • Laatst online: 20-09 21:08
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.

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 ]


Acties:
  • 0 Henk 'm!

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
^ Like

Het verbaast me alleen dat dit niet standaard in OS X goed is geregeld.

🌞🍃


Acties:
  • 0 Henk 'm!

  • Whieee
  • Registratie: Augustus 2001
  • Laatst online: 30-09 19:25

Whieee

Moderator Apple Talk

⌘ + ⌥ + ⎋

Het nadeel met veel stervende accu's is dat ze -door een defecte cel- ook rustig volledig uitvallen met nog 30% charge. In dergelijke gevallen doet je script dus niet zoveel.

Launching containers into space


Acties:
  • 0 Henk 'm!

Verwijderd

Kudo's, alleen al om het feit dat je het hier gewoon neerzet. Top.

Ik zelf kan dit alleen niet gebruiken, heb een SSD en heb de hibernation mode uitgezet. Want dan schrijft die je current status uit naar je HDD om zo weer terug te gaan, wat door mijn beperkte schijfruimte niet handig is. Ik let dus altijd standaard op mijn (brakke) batterij. Maar desondanks, very nice work :)

Acties:
  • 0 Henk 'm!

  • SPT
  • Registratie: Januari 2007
  • Laatst online: 20-09 21:08
Whieee schreef op vrijdag 26 oktober 2012 @ 14:15:
Het nadeel met veel stervende accu's is dat ze -door een defecte cel- ook rustig volledig uitvallen met nog 30% charge. In dergelijke gevallen doet je script dus niet zoveel.
Dat is theoretisch wel waar, maar op dit moment valt vooral de stabiliteit op. Boven de 10% is hij nog nooit uitgevallen, ook niet bij heel intensief gebruik. Hij valt altijd uit bij ongeveer hetzelfde percentage, dat langzaam steeds hoger wordt. De 0% haalt hij dus nooit meer (het is al maanden niet meer voorgekomen dat hij normaal naar standby ging, als ik vergat tijdig de adapter aan te sluiten).

Wel ga ik er vanuit dat hij naar een staat toe convergeert waar hij uiteindelijk misschien al bij 95% lading uitvalt. De vraag is echter of hij een grens als 30% bij 1.250 cycly bereikt, bij 1.500, of bijvoorbeeld pas bij 2.000. Op dit moment vind ik het echter wat vreemd om een accu waar je bij een gemiddelde schermhelderheid nog 4 uur op kan internetten / pdf-jes lezen / tekstverwerken als 'stervend' te beschouwen...

[ Voor 4% gewijzigd door SPT op 26-10-2012 14:36 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Whieee schreef op vrijdag 26 oktober 2012 @ 14:15:
Het nadeel met veel stervende accu's is dat ze -door een defecte cel- ook rustig volledig uitvallen met nog 30% charge. In dergelijke gevallen doet je script dus niet zoveel.
Dit is toch aan degene die ervan op de hoogte is dat zijn accu "stervende" is en op verschillende charge levels uit kan vallen? Bij anderen waar dit steeds voorvalt rond hetzelfde charge level en waarbij de accu dus nog in redelijke staat is bied dit script wel uitkomst. Bij dergelijke gevallen doet het script dus aardig veel.
Pagina: 1