Macbook Pro 2015 heat problem
How to improve your 9 years old macbook performance
Re-apply the thermal paste
Is an old machine, probably never has been opened, the thermal paste for sure is dry and is not doing his job properly. Re-applying thermal paste will bring big benefits in temperature and overall performance. Is a fairly simple process so i highly recommend to just do it instead of paying someone else to do it. These two good guides can work as a reference.
https://www.ifixit.com/Guide/MacBook+Pro+13-Inch+Retina+Display+Early+2015+Fan+Replacement/45131
https://www.youtube.com/watch?v=L6iUwprKwio
Install mbpfan
This app will help you to control the fan speed. The kernel is also able to control the fan but seems to be very passive. This CPU will start throttling by design at 105 ºC so the fan should be kicking in before that.
https://github.com/linux-on-mac/mbpfan
In slackware there was no problem compiling mbpfan
git clone https://github.com/linux-on-mac/mbpfan.git
cd mbpfan
make
make install
Add the following to /etc/rc.d/rc.local to start the app at boot time
if [ -x /usr/sbin/mbpfan ]; then
/usr/sbin/mbpfan
fi
I did found the following settings more confortable for me in terms of performance and fan noise :)
slackbook# cat /etc/mbpfan.conf
[general]
# see https://ineed.coffee/3838/a-beginners-tutorial-for-mbpfan-under-ubuntu for the values
#
# mbpfan will load the max / min speed of from the files produced by the applesmc driver. If these files are not found it will set all fans to the default of min_speed = 2000 and max_speed = 6200
# by setting the values for the speeds in this config it will override whatever it finds in:
# /sys/devices/platform/applesmc.768/fan*_min
# /sys/devices/platform/applesmc.768/fan*_max
# or the defaults.
#
# multiple fans can be configured by using the config key of min_fan*_speed and max_fan*_speed
# the number used will correlate to the file number of the fan in the applesmc driver that are used to control the fan speed.
#
min_fan1_speed = 1299 # put the *lowest* value of "cat /sys/devices/platform/applesmc.768/fan*_min"
max_fan1_speed = 6199 # put the *highest* value of "cat /sys/devices/platform/applesmc.768/fan*_max"
# temperature units in celcius
low_temp = 63 # if temperature is below this, fans will run at minimum speed
high_temp = 66 # if temperature is above this, fan speed will gradually increase
max_temp = 95 # if temperature is above this, fans will run at maximum speed
polling_interval = 1 # default is 1 seconds
Now, temperature is around 45ºC idle. With Hyprland, some music, chrome and a notepad is around 60ºC. Chrome on youtube will be around 75ºC. Compiling a big application will take the fan to kick in full speed and temp goes around 100ºC but no throttling on the CPU.