Mbpfan

From wikinotes

Uses information from lm_sensors to control macbook fans on a T2-cpu macbook from linux.

Documentation

https://github.com/networkException/mbpfan

Locations

/etc/mbpfan.conf config

Install

WARNING:

The AUR package for mbpfan refers to the original mbpfan, which won't work on a mac with a T2 chip.

Build/Install

Build

git clone https://github.com/networkException/mbpfan
cd mbpfan
make
sudo make install
sudo make tests

Enable

sudo cp mbpfan.service /etc/systemd/system
sudo systemctl enable mbpfan.service
sudo systemctl daemon-reload
sudo systemctl start mbpfan.service

Detect sensors important!!

yes | sensors-detect  # dumps a config with sensor info

Verify

I found I needed to tweak the config

sudo systemctl status mbpfan.service  # ensure running
watch sensors                         # monitor cpu temp every 2s

Configuration

I found the default thresholds a bit hot for my liking, but it's easy to tweak.

[general]
low_temp = 48
high_temp = 58
max_temp = 86

Troubleshooting

# watch it run
mbpfan -f # run in foreground
mbpfan -v # verbose

Some background info for debugging:

  • applesmc is builtin to the linux kernel.
  • mbpfan uses applesmc exposed info from files in /sys/devices/platform/* (ex: APP, applesmc.768