Archive for August, 2016

Getting tired of permanent MacBook battery failure

Friday, August 26th, 2016

So this stupidly smart Apple MacBook batteries set a permanent failure bit once they are simply discharged by sitting on a shelf for a month or two. With this permanent failure bit the controller will not charge them again, even when the cells are brand new and otherwise perfectly fine. Another day I need to try sending a reset sequence or otherwise rewriting some flash cells, sigh:


Some notes for now:

Battery Firmware Hacking

MacBook battery (Rom) cycle reset

15″ Retina MacBook Pro Late 2013 vs. Dell XPS

Tuesday, August 2nd, 2016

People who know me certainly know by now how disappointed and frustrated I became over the last years with Apple’s MacBook lineup and their hardware refresh. Or better, the lack of it, …

The other month Dell was so kind to send a Dell XPS 15 to me to give it a try. While I’m still writing on a full review I wanted to share a first performance figure compiling the Linux 4.7 kernel from an external USB3 SSD, both with 16GB RAM.

rMacBookPro late-2013 w/ i7-4850HQ CPU @ 2.30GHz: 20m48s, 145m40s
Dell XPS 15 w/  i7-6700HQ CPU @ 2.60GHz: 13m32s, 92m14s

The first time is total wall clock time, the second is total CPU time due parallelism as shown by time(2).

Yep, that is some whooping 35% faster

And a contributing factor for Apple’s MacBook loosing so much is also the notoriously underdesigned thermal system, fans, and heatsink and such. As the Linux kernel points out quite some thermal throttling on the Apple machine, but not on the Dell:


CPU5: Core temperature above threshold, cpu clock throttled (total events = 1)
CPU1: Core temperature above threshold, cpu clock throttled (total events = 1)
CPU3: Package temperature above threshold, cpu clock throttled (total events = 1)
CPU2: Package temperature above threshold, cpu clock throttled (total events = 1)
CPU4: Package temperature above threshold, cpu clock throttled (total events = 1)
CPU6: Package temperature above threshold, cpu clock throttled (total events = 1)
CPU7: Package temperature above threshold, cpu clock throttled (total events = 1)
CPU0: Package temperature above threshold, cpu clock throttled (total events = 1)
CPU1: Package temperature above threshold, cpu clock throttled (total events = 1)
mce: [Hardware Error]: Machine check events logged
CPU5: Package temperature above threshold, cpu clock throttled (total events = 1)
mce: [Hardware Error]: Machine check events logged