Getting An Old Macbook To Run At Full Speed Without A Battery (on Linux)
I have a mid-2012 Macbook Air (MacBookAir5,2) that I’m still using as my everyday computer. It works great, but the battery hardly holds any charge anymore and I thought I’d remove it to prevent any possible issues of battery swelling.
Once I had the proper tools to open it up (which took 2 rounds of tool orders on eBay) I went ahead and removed the battery. The laptop was now much lighter!
I turned it on and… hmm. It was slow as molasses.
It turns out that when you remove the battery from a MacBook Air it stays at the processor’s slowest setting as not to draw too much power. This isn’t a software setting: it’s done in the machine’s firmware.
“BD PROCHOT” stands for bi-directional prochot. PROCHOT stands for processor hot. This signal is what initiates thermal throttling so the CPU can slow down and keep from over heating.
But fear not! There’s a way to override this.
⚠ CAUTION: These instructions could cause your computer to malfunction, break, or melt into a puddle of molten metal. I haven’t run into any issues, but I cannot take responsibility for your computer if you choose to follow these instructions.
msr-tools. On Ubuntu you can
sudo apt install msr-tools. This is software that allows you to manipulate machine-specific registers in the CPU.
Next, create a file in your home folder (or wherever is a convenient location for you) that we’ll call
turnoff-BD-PROCHOT.sh, with the following contents:
#!/bin/bash # 4005d --> 4005e /sbin/modprobe msr r=`/usr/sbin/rdmsr 0x1FC` s='0x'$r'' f=$(($s&0xFFFFE)) sudo /usr/sbin/wrmsr 0x1FC "obase=16;$f"|/usr/bin/bc echo "$r"" write to ""reg 0x1FC" echo "BD PROCHOT off."
chmod +x ./turnoff-BD-PROCHOT.sh to make it executable, and then you can
sudo ./turnoff-BD-PROCHOT.sh to run it. Now your computer should be fast again!
This will need to be run at each boot or after waking the computer from suspend.
Setting up a system service to run it automatically is left as an exercise for the reader.
No comments yet.