FedoraGNOMEHow TolinuxupdateUbuntuUbuntu 20.04Ubuntu 20.10

How To: Disable Intel Turbo Boost on Linux using systemd + intel_pstate

Tested on Fedora 34, uses the intel_pstate driver

My laptop has issues with coil whine, resulting in me needing to disable Intel Turbo Boost. I usually use a GNOME Extension like CPU Power Manager but at the time of writing that extension isn’t compatible with GNOME 40, and isn’t much use for non-GNOME users.

Firstly elevate to sudo with sudo -i, then:

nano /etc/systemd/system/disable-intel-turboboost.service

Paste in the following:

[Unit]
Description=Disable Intel Turbo Boost using pstate driver 
[Service]
ExecStart=/bin/sh -c "/usr/bin/echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"
ExecStop=/bin/sh -c "/usr/bin/echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo"
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target

Next reload the systemd management configuration, enable and then start the new service, then lastly check the service is running. Enabling the service will start it automatically on a reboot, thus keeping Turbo Boost switched off all the time. If you only want to use it occasionally, skip the enable step and just start/stop the service as/when needed.

systemctl daemon-reload
systemctl enable disable-intel-turboboost
systemctl start disable-intel-turboboost
systemctl status disable-intel-turboboost

The last command should give you:

[root@amethyst ~]# systemctl status disable-intel-turboboost
● disable-intel-turboboost.service - Disable Intel Turbo Boost using pstate driver
Loaded: loaded (/etc/systemd/system/disable-intel-turboboost.service; enabled; vendor preset: disabled)
Active: active (exited) since Tue 2021-05-04 20:58:57 BST; 10s ago
Process: 22392 ExecStart=/bin/sh -c /usr/bin/echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo (code=exited, status>
Main PID: 22392 (code=exited, status=0/SUCCESS)
CPU: 7ms

May 04 20:58:57 amethyst systemd[1]: Started Disable Intel Turbo Boost using pstate driver.

On my laptop it was immediately obvious Turbo Boost was turned off because the coil whine stopped instantly, but to check your current clock speed you can run:

lscpu | grep "CPU MHz"
CPU MHz: 1800.019

To re-enable Turbo Boost permanently:

sudo systemctl disable disable-intel-turboboost

To re-enable Turbo Boost when needed (start service to disable Turbo Boostagain):

sudo systemctl stop disable-intel-turboboost

Jonathan Procter

Linux, Unix, and Windows server sysadmin.

Related Articles

Back to top button