Sitemap
David Wairimu

David Wairimu

Cybersecurity practitioner focused on network security, Linux, digital forensics, vulnerability assessment, and security engineering through practical labs.

Taming the Jet Engine: How I Fixed the Fan Noise on My 2013 MacBook Pro Running Kali Linux

4 min read2 days ago

--

If you’re running Linux on an older MacBook, you know the struggle. The hardware is beautiful, but the moment you open a web browser to watch a YouTube video, your laptop transforms into a jet engine preparing for takeoff.

I recently decided to install Kali Linux on my Late 2013 MacBook Pro. Everything was going smoothly until I opened Brave to watch a 1080p video. Within seconds, the fan would roar to life, drop down, roar up again, and generally make it impossible to concentrate.

Here is the story of how I diagnosed the issue, made a few mistakes along the way, and ultimately found a stable, quiet solution.

The Diagnosis: Why was it so loud?

When I first opened the system monitor, I noticed a massive CPU spike (up to 80%) the moment I opened YouTube. The moment I closed the tab, it dropped to 8%.

The culprit? Software Video Decoding.

Modern browsers default to video codecs like VP9 or AV1. My 2013 Intel Iris 5100 GPU doesn’t natively support these newer formats well, or the Linux drivers (i965) are simply too outdated. Instead of using the GPU, the browser silently fell back to using the CPU. The CPU got hot, and the fan controller did what it was supposed to do: panic and blast the fans.

The Trial and Error (and the Mistakes)

My first instinct was to force the browser to use hardware acceleration. I tried passing terminal flags to Brave, enabling VaapiVideoDecoder, and installing extensions like h264ify.

Big mistake.

Chromium’s security sandbox actively blocks older Intel drivers from accessing video hardware on Linux. By forcing it, I made things worse. The GPU process crashed, the CPU ran at 100% trying to recover, and the fan noise became constant rather than intermittent. At one point, I even accidentally deleted the Brave executable while trying to revert the changes. (Pro-tip: always double-check your rm commands!)

After a full rollback and a fresh reinstall of Brave, I realized I was attacking the wrong problem. The browser wasn’t broken; the hardware was just old. The CPU was going to get hot, and I needed to fix the fan controller’s behavior, not the browser.

The Real Solution: Configuring mbpfan

Out of the box, Linux doesn’t handle MacBook fans very intelligently. The default applesmc driver is often too aggressive. We need a daemon called mbpfan to manage the fan curves properly.

If you haven’t already, install it:

bash

sudo apt update
sudo apt install mbpfan
sudo systemctl enable --now mbpfan

This alone helps, but the default thresholds are too tight. The fan spins up instantly at the slightest temperature bump and then immediately slows down, creating that annoying “revving” noise.

To fix this, I edited the configuration file:

Get David Wairimu’s stories in your inbox

Join Medium for free to get updates from this writer.

bash

sudo nano /etc/mbpfan.conf

I adjusted the temperature thresholds to create a wider “buffer zone” (hysteresis). This tells the fan controller to relax and wait for the heat to actually build up before ramping up the RPMs.

I changed the values to:

ini

low_temp = 60
high_temp = 70
max_temp = 85

(Note: Your default values might look different, but the goal is to widen the gap between low_temp and high_temp).

After saving the file, I restarted the service:

bash

sudo systemctl restart mbpfan

The Results

I opened Brave, navigated to YouTube, and played a 1080p video. I let it run for a few minutes and checked my temperatures using the sensors command.

Here is what I saw:

  • CPU Temperature: A stable 68°C — 69°C. (Well below the 100°C critical limit).
  • Fan Speed: Holding steady at 3,273 RPM. (Out of a maximum of 6,199 RPM).

The noise didn’t disappear entirely — the CPU is still doing the heavy lifting of software decoding, so the fan has to work. But the aggressive, instantaneous bursts of noise were gone. Instead of a jet engine taking off, it was a steady, predictable hum.

Final Takeaways for Old MacBook Linux Users

  1. Accept the hardware limitations: Browsers will likely never perfectly hardware-decode YouTube on a 2013 Mac under Linux.
  2. Don’t force hardware acceleration: It will usually cause more harm than good due to sandboxing.
  3. Control the fan curve: mbpfan is your best friend. Take the time to tweak the /etc/mbpfan.conf file to match your comfort level.
  4. Alternative Player: If you absolutely need silence while watching 1080p video, bypass the browser entirely. Use a terminal command like mpv --hwdec=auto "YOUTUBE_LINK" to let the GPU take over without the browser's interference.

My 2013 MacBook Pro is still kicking, and it’s finally quiet enough to use on the couch again. Sometimes, the best fix isn’t forcing new hardware acceleration, but just teaching the old hardware how to breathe.

--

--

David Wairimu
David Wairimu

Written by David Wairimu

0 followers

Cybersecurity practitioner focused on network security, Linux, digital forensics, vulnerability assessment, and security engineering through practical labs.