Enable Intel® Turbo Boost on Linux systems using the intel_pstate frequency driver
This repository provides a lightweight and safe Linux script to reactivate Intel Turbo Boost on systems where the feature is unavailable through BIOS/UEFI or locked at firmware level, even when using administrative privileges.
Under normal circumstances, Turbo Boost can be toggled by root via the standard Linux control file:
/sys/devices/system/cpu/intel_pstate/no_turboHowever, on laptops with restricted OEM firmware or generic motherboards, the BIOS often hides these settings. When the Linux kernel detects this locked firmware state during boot, it strictly enforces a read-only lock on the no_turbo file. Because of this restriction, Turbo Boost cannot be enabled using standard Linux interfaces, even on CPUs that inherently support the feature.
To bypass this kernel-enforced lock and restore the missing functionality, this script writes directly to the appropriate Model-Specific Register (MSR).
Certain systems — especially laptops with generic, refurbished or non-OEM motherboards — ship with BIOS/UEFI firmware that hides or locks Turbo Boost settings.
Unlike Windows, where tools like ThrottleStop can override firmware limitations, Linux does not provide any user-space mechanism to re-enable Turbo Boost when the firmware prevents it.
Attempts to toggle the intel_pstate interface fail because:
-
The no_turbo control file is kernel-protected
-
Permission changes do not work
-
The protection is enforced inside the kernel, not in the filesystem
Therefore, the only reliable method is to modify the correct MSR and flip the corresponding bit manually.
Intel CPUs expose Turbo Boost control through the following Model-Specific Register (MSR):
- Register:
IA32_MISC_ENABLE - Address:
0x1A0 - Bit 38: Turbo Mode Disable
1→ Turbo Boost disabled0→ Turbo Boost enabled
Writing a hardcoded hex value to this register is dangerous, as it can overwrite other vital CPU settings configured by the system's BIOS. To safely enable or disable Turbo Boost, this script uses bitwise operations to target only bit 38 while preserving the rest of the register's configuration.
The script operates by:
- Reading the current 64-bit value of the register for the specific core using
rdmsr. - Applying a dynamic bitmask:
- To enable: Uses bitwise AND with NOT (
~(1 << 38)) to clear bit 38. - To disable: Uses bitwise OR (
1 << 38) to set bit 38.
- To enable: Uses bitwise AND with NOT (
- Writing the safely modified value back using
wrmsr.
The script automatically detects all available CPU cores and applies the patch to each one.
During testing, for some reason auto-cpufreq prevented the CPU frequencies from scaling up beyond the base clock, effectively disabling Turbo Boost. To avoid this, the systemd service was configured to run after auto-cpufreq finishes its initialization.
- Clone the repo and enter the folder:
git clone https://github.com/LDrawe/intel-turbo.git
cd intel-turbo-
Copy the files and ensure the script has execution permissions:
sudo cp intel_turbo.sh /usr/local/bin/intel-turbo sudo cp etc/systemd/system/intel-turbo.service /etc/systemd/system/ sudo chmod +x /usr/local/bin/intel-turbo
-
To automatically enable Turbo Boost at startup:
sudo systemctl enable --now intel-turbo.service -
(Optional) Check the service status:
sudo systemctl status intel-turbo.service
-
You can verify the Turbo Boost status at any time with:
cat /sys/devices/system/cpu/intel_pstate/no_turbo
0: Turbo Boost is enabled1: Turbo Boost is disabled
If your system uses OpenRC, runit, s6, or other init systems, you can still use the script manually or set it to run at startup via alternative methods.
# To enable Turbo Boost
sudo intel-turbo on# To disable Turbo Boost
sudo intel-turbo off-
Ensure
cronieis installed:-
Debian/Ubuntu:
sudo apt install cronie
-
Fedora/RHEL:
sudo yum install cronie
-
Arch Linux:
sudo pacman -S cronie
-
-
Verify installation:
crond -V
-
Edit the crontab:
crontab -e
-
Add the following line to enable Turbo Boost at startup:
@reboot /usr/local/bin/intel-turbo
-
Disable and stop the service:
sudo systemctl disable --now intel-turbo.service
-
Mask the service to prevent accidental activation:
sudo systemctl mask intel-turbo.service
-
Remove installed files:
sudo rm /usr/local/bin/intel-turbo sudo rm /etc/systemd/system/intel-turbo.service
-
Reboot to apply changes.
-
Remove the
@rebootline from the crontab:crontab -e
-
Delete installed files:
sudo rm /usr/local/bin/intel-turbo
This project is a fork of the original intel-turbo script by @ShyVortex, modified to enable Intel Turbo Boost instead of disabling it.
Fork maintained by @LDrawe.
- Licensed under the GNU General Public License v3.0.
- Copyright © @ShyVortex, 2023.
- Copyright © @LDrawe, 2025 — modifications to enable Turbo Boost.