1

I've seen some answers for this but it references older systems and older OSes.

Can anyone update this for relevance in the Catalina era. I have a Macbook10,1 with a shot battery. The screen is broken so I am using it strictly as a media/airplay server to my TV and have no plans to fix the battery whatsoever. I would really like to recover the performance on this.

I have tried the remedies in other posts and the problem is there is no plist file with my Macbook model. One user mentioned letting the computer go into "default power saving mode naturally". But what does this mean? Can it be made into a script?

Finally -- i heard that w/o the battery GPU is also curtailed. Is that true and can there be a wholistic fix for all of this? Thanks in advance!

  • Have you used Intel Power Gadget to confirm it's throttling? – JMY1000 Jan 24 at 5:22
  • If you unplug the battery and run the computer only from PSU, the system (not only GPU, CPU as well) will experience heavy throttling. Might be the issue here. The holistic fix for this is probably to replace the battery. – X_841 Jan 24 at 7:05
2

The CPU throttling due to battery is triggered by the firmware and it doesn't make any difference what version of macOS (or other OS) you are running.

However it is easy to override the throttling on a MacBook if you use Windows as a OS but not if you run macOS. If you don't want to replace the battery and the programs you want to run are available on Windows that would be the easiest/cheapest option.


I have a late 2012 MacBook Pro with a i5-3210 CPU which has a base clock of 2.5 GHz and max Turbo of 3.2 GHz. It has no battery as it swelled too much to fit in the case so I removed it. Like you I've no intention of getting a replacement and so in macOS the CPU is now throttled to 1.2 GHz.

With Intel Power Gadget you can easily see it.

Intel Power Gadget

The reason for this is that the EFI firmware sets on BD PROCHOT which is a CPU register (msr 0x1FC) usually used to tell the CPU that some other component (GPU or whatever) is overheating. This will cause the CPU to throttle even though it is not itself overheating. This is described in IntelĀ® 64 and IA-32 Architectures Software Developer's Manual Volume 4: Model-Specific Registers

Although there are various macOS utilities to change other MSR (such as Turbo Boost Switcher) I can find no way to turn this one off in macOS. This is quite surprising as people facing throttling due to removed batteries is a fairly common issue. I tried to write an EFI program to do this myself but could not get it to work - see Stack Overflow question How to make changes to msr 0x199 from EFI stick?.


On Windows however there is a program called ThrottleStop which easily lets you turn off BD PROCHOT. As you can see with it set on (as it is by the MacBook firmware) the clock is limited to 1.2 GHz.

BD PROCHOT on

If you turn off BD PROCHOT and set the multiplier to 25 you can get the 2.5 GHz.

BD PROCHOT off

In theory it is possible that at peak load you could take more power than the power adapter alone can supply resulting in a shutdown. This is perhaps the reason Apple set this register on. However this has never happened to me and I've been running it like this almost 24*7 for the last couple of years.

If you did find it was shutting down you can set the multiplier to a lower number to reduce peak power draw. You can even set a higher multiplier for increased performance if you wish but I never felt the need.

| improve this answer | |
  • 1
    Thanks for this detailed overview. This is the best info I've seen on the subject that answers the 'why' factor. It is enlightening but also disheartening. Like you, and suggested by @JMY1000, I did DL the Intel tool and I DO see that it is stuck at 1.2 GHZ. It is usable --- I've seen some people stuck at 800mhz, but its quite unfortunate that I am only able to use a fraction of my hardware. I quite like MacOS, so we'll see what to do... If you ever find a way to fix that register plz let me know! – terahertz7 Jan 26 at 2:08
0

This solved it for me on a MacBook Pro mid-2014, macOS Catalina 10.15.3:

Before using it, I removed IOPlatformPluginFamily.kext from /System/Library/Extensions (moved it to my user folder). So I don't know if only the NoBatteryNoProblem should solve it. Also, I don't know if it needs to be run at every boot (haven't rebooted yet).

https://github.com/bernardowilson/NoBatteryNoProblem.kext

I did a fork in case the repo is removed: https://github.com/luismramirezr/NoBatteryNoProblem.kext

It appears that this also disables TurboBoost, so your CPU will consume more power (doesn't matter as there is no battery) and produce more heat (watch out for actual ThermalThrottling from inside CPU to be activated).

| improve this answer | |
0

I have done a blogpot here on how to solve this https://portugnole.blogspot.com/2020/05/running-macbook-without-battery-lets-go.html

I added the code to remove the PROCHOT signal into CPUTune. You can find the project on github here: https://github.com/syscl/CPUTune

All this works on Catalina.

| improve this answer | |
  • Thanks. The precompiled kext does not seem to work on Mojave though. ( I dont have xCode to re-compile. ) However ThrottleStop somehow works under parallels ... – zantafio Jul 6 at 19:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .