UPDATE: The fan is now controlled automatically in the latest updates (See this answer https://askubuntu.com/a/1497778/1746852). This cron job is no longer needed.
A quick hack to get around the fact Ubuntu for the Pi5 currently does not control the fan.
This needs to be run with sudo permissions:
sudo python3 pi5_fan_controller.py
And, by default, will monitor the Pi5's temperature for one minute every 2 seconds adjusting the fan based on some arbitrary boundaries I came up with on the spot :^)
This is intended to be set up as a system-wide cron job (system-wide because of the sudo privileges). To do this, edit this file:
sudo nano /etc/crontab
And add this cron job:
* * * * * root python3 /path/to/pi5_fan_controller.py
(with the updated path to the python file)
Many thanks to the following Ask Ubuntu answers:
Hi, I took your code, made it a little more oop, and wrapped a systemd service around it along with a simple bash script to set it all up.
https://github.com/nicciniamh/pi5-fan-control