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 use this script for my R4B, according to script above my version will suit for R5 too.
I keep my script at /usr/local/bin, so you might want to put it there too.
Init script /etc/init.d/fancontrol.sh