Controlling fans and undervolting in Acer Nitro 5 with Ubuntu
I installed Ubuntu on my Acer Nitro 5 || 8GB DDR4 || 1TB NVME SSD || i5-9300H || 4GB GTX 1650 laptop, replacing Windows.
Switching to Linux I think there are many features that I am unable to use like controlling fans and undervolting as in Windows; so is there any way by which I can get access to such features?
Paraphrased and abridged, from How to undervolt Intel i-series CPU in Linux:
-
Install pip
sudo apt install python3-pip
Check with
pip3 --version
Expected output
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
-
Install undervolt package
sudo pip3 install undervolt
Check with
pip3 show undervolt
Expected output
Name: undervolt Version: 0.3.0 Summary: Undervolt Intel CPUs under Linux Home-page: http://github.com/georgewhewell/undervolt Author: George Whewell Author-email: [email protected] License: GPL Location: /home/saransh/.local/lib/python3.8/site-packages Requires: Required-by:
-
Add Python installed package path to
PATH
environment variablesudo nano /etc/environment
Append
:home/<user>/.local/bin
toPATH
Source new enviroment
source /etc/environment
Check with
echo $PATH
Expected output
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/saransh/.local/bin"
Check with
sudo undervolt --read
Expected output
temperature target: -5 (95C) core: -128.91 mV gpu: 0.0 mV cache: -128.91 mV uncore: 0.0 mV analogio: 0.0 mV powerlimit: 60.0W (short: 0.00244140625s - disabled) / 45.0W (long: 28.0s - enabled)
-
Create service to run upon boot
cd /etc/systemd/system/ sudo nano undervolt.service
Paste in
[Unit] Description=undervolt After=suspend.target After=hibernate.target After=hybrid-sleep.target [Service] Type=oneshot ExecStart=/usr/local/bin/undervolt -v --core -150 --cache -150 --gpu -100 [Install] WantedBy=multi-user.target WantedBy=suspend.target WantedBy=hibernate.target WantedBy=hybrid-sleep.target
NOTE: change
--core
and--cache
arguments according to your CPU. Do some research about your CPU stable offset voltage, else your system will shutdown and reset to default offset voltage, i.e. 0.0 mV, or may cause damage to your system!!!Check with
systemctl start undervolt.service systemctl enable undervolt.service
Stress test CPU to find the stable offset voltage
Install stress package to Stress test the CPU
sudo apt install stress
Run stress test
stress -c <CPU cores>
i.e.
stress -c 8
-
Stress test (again) and check CPU temperature
Install i7z package to monitor the CPU temperature
sudo apt install i7z
Run monitor in super user session
sudo su i7z
Expected output
Re-run stress test.
If CPU temperature goes above 80 °C, then continue the steps below, else you have finished.
-
Disable Turbo boost
Create start up script
sudo nano /usr/local/sbin/no-turbo.sh
Paste
#!/bin/sh - cd /sys/devices/system/cpu/intel_pstate echo 1 > no_turbo
Create a unit file to run the script on Startup
sudo nano /etc/systemd/system/no-turbo.service
Paste
[Unit] Description="Disable Turbo boost" [Service] Type=simple ExecStart=/usr/local/sbin/no-turbo.sh [Install] WantedBy=multi-user.target
Check with
systemctl start no-turbo.service systemctl enable no-turbo.service
Turbo boost should now be disabled.