Kernel Panic on older Macbooks – A permanent cure

It took some time I know, since I last managed to resurrect the old Macbook 2013 from a completely unusable state 3 years ago. It was an antedote to speeding fan, to a completely paniced kernel service (that goes up to more than 200% usage for the minimal amount of applications).

The kernel panic happened essentially due to the system detecting a sensor signal that suggests there is overheating in the CPU. In order to prevent this, and protect the machine from overheating, it tries to throttle the CPU power for as much as possible till the sensor returns to normal. It does this, apparently via two ways, first of which is an IOcontrol module, which the last fix takes care of. Upon the fix, my CPU usage for light uses (e.g. browsing news website on chrome) consumed only 50-70% of CPU power, and the Mac was useable as a note-taking device. But that was not quite enough. The Macbook, despite being old, was a lot more power than that (It has three cores each in theory capable of being clocked to 2.9GHz). As it turns out, the core CPU was still being throttled physically via hardware limitation – the voltage supply to the CPU is capped at around 0.7241 volts, and as a result, CPU clock-speed capped at 0.8GHz (less than a third of the maximum capacity – and that explains almost 50% CPU usage for merely opening a page in chrome!)

I came upon this tool that could detect the core frequency, and upon some searches (and browsing through the Q&A sections), another tool being used by people with powerful Macs to clock-down their fast CPUs in order to gain better battery performance has surfaced as the ideal tool to get the CPU back to its normal working speed. Here is a quick walk through of how:

We need a tool called Voltageshift. You might be tempted to build the tool from source just to err on the safe side. Been there, did not succeed. It seems that the support for older versions of XCode was no longer good enough for that build. I chose to download the built version supplied by the author instead.

in order to use the tool, it needs to be uplifted in list of kext files, using the command similar to below. Replacing the directory to VoltageShift to wherever the downloaded/build kext file is saved

sudo chown -R root:wheel ./VoltageShift.kext

It is easy to run the following code to verify the installation:


This should provide a summary of the CPU core, which could look something like this:

   VoltageShift Info Tool
CPU voltage offset: 0mv
GPU voltage offset: 0mv
CPU Cache voltage offset: 0mv
System Agency offset: 0mv
Analogy I/O: 0mv
Digital I/O: 0mv
CPU BaseFreq: 2400, CPU MaxFreq(1/2/4): 2900/2900/2900 (mhz)OC_Locked  PL1: 100W PL2: 125W 
CPU Freq: 0.8ghz, Voltage: 0.7241v, Power:pkg 9.40w /core 2.06w,Temp: 43 c

Use the following piece of code to force CPU voltage back to normal (disclaimer: use this at own risk, it will definitely void warranty; you shouldn’t do it if you are not sure)

./voltageshift write 0x1FC 0x04005e

In my case, this usually forces the CPU to go back to CPU Freq of 2.4 GHz if something demanding is already running. Notice the immediate speeding up of CPU back to how it used to be (which seemed likea long distant memory).

One thing to note, from my own experience, and from feedback in the forum, the override seems to be discarded each time Macbook wakes up from a sleep cycle. So it needs to be applied again. It is minimal hassle considering the speed boost that I get back. I also made a shell script to quickly run it each time the Macbook sleeps. Although not fully automated, it is definitely is an acceptable solution for the end-result.




And so we beat on, boats against the current, borne back ceaselessly into the past.



Yes, the newspapers were right: snow was general all over Ireland. It was falling softly upon the Bog of Allen and, further westwards, softly falling into the dark mutinous Shannon waves. It was falling too upon every part of the lonely churchyard where Michael Furey lay buried. It lay thickly drifted on the crooked crosses and headstones, on the spears of the little gate, on the barren thorns. His soul swooned slowly as he heard the snow falling faintly through the universe and faintly falling, like the descent of their last end, upon all the living and the dead.


Mac OS Big Sur Kernel Panic solution

Users updating to Big Sur against their better judgement will find themselves unable to modify system configurations after the update. Post read-only protection in Catalina, Apple has added additional write-protection to system files, that they cannot be modified.

Some additional steps now need to be followed to disable a particular system extension:

  1. Disable FileVault – this can take a long time particularly if the MacOS system is undergoing Kernel panic. My experience also shows that if your old Mac is being slower than usual, turning off FileVault helps tremendously with speed.
  2. Boot into Recovery mode (cmd + R), and run
    csrutil authenticated-root disable
  3. A restart is required for the change to take effect. Next step is to mount a local drive and make a snapshot of system settings (to be modified and used for system); if doing this in Recovery mode, then no need for sudo
  4. Run
    mount -uw /Volumes/Macintosh\ HD
  5. navigate to directory under /Volumnes/Macintosh \HD/Systems/Library/Extensions/ (note in my case, direct cd to /Systems/Library/Extensions/ shows that the directory remains read-only, so full directory is needed)
  6. Modify the Extension as usually do (see my previous article)
  7. Bless the settings by taking a snapshot (MacOS will use the snapshot as boot settings), by running:
    bless –folder /Volumes/Macintosh\ HD/System/Library/CoreServices –bootefi –create-snapshot
  8. Reboot the system

MacBook Pro 高Kernel CPU占用解决办法 (含iOS Catalina)

MacBook Pro when suffering from water damage (spilled coffee, for example), usually displays two symptoms:

  1. High CPU consumption by system process “Kernel” – usually in the ball park of 200-300%
  2. Consistent top fan speed

The first, in particular, renders a MacBook unusable, as almost all computational power is consumed by the Kernel. The Kernel process was designed to prevent high resource consumption by individual applications – but the gut feeling shows that this is yet another built-in feature to force users to bring a nevertheless perfectly usable back to the so-called genius bar to be fixed for a price, or better yet, replaced with a new unit altogether.

While the conscientiousness of corporate Apple is open for discussion, there are in fact ways to informally prevent such behaviour and restore the machine to a use-able state. Many blog posts (e.g. the most concise one I’ve read can be found here) Here is how:

First, the machine needs to be rebooted into Recovery Mode, by restarting while holding down cmd + R before the loading screen (white apple) shows. In this view, launch the Terminal and run the following command to disable System Integrity Protection (SIP), which is a built in feature of the iOS to prevent undesirable modification of system files:

csrutil disable

Then the machine can be rebooted, either into full operating system or into the Single User mode (which is faster, and quieter) by holding down cmd + S.

Here is where the trick needs to be adapted to Catalina: in this latest version of the iOS, Apple has introduced yet another layer of protection for the system files – they are stored in a read-only section of the drive, which prevents the removal of the undesirable system file that causes the blown-out Kernel issue.

In the Single-User view (effectively terminal only view), or in the full OS view with a terminal launched, run the following command to enable read/write mode for system files:

 sudo mount -uw /

Followed by the following command which removes the package extension file IOPlatformFamilyPlugin.kext that causes high Kernel CPU usage

rm -rf /System/Library/Extension/IOPlatformFamilyPlugin.kext

This in turn followed by a restart, or if in Single User mode then

 shutdown -r now 

Do remember to boot into Recovery Mode using method mentioned above, and rearm the SIP protection by running the following in Terminal

csrutil disable

In the case of some users, the fan would go back to normal – but if not, as in my case, an app Macs Fan Control can be used to slow the fan down according to the actual machine. There are many websites that lists regular temperature of a working MacBook Pro for various models. These can be used as a reference for setting temperature dependent fan speed of the machine.










一直只是保持这个网站在线,并没有写新的内容–直到上个月没有及时续费域名导致.tk这个网址直接被别人拿走,才意识到其实自己或许还是需要这个网页的,从中二的角度来说也是某种secret identity之类的吧。









2014-10-30 00.29.20