Does your Linux PC run hot and loud? Does the fan spin up even when you are just browsing? Undervolting and proper fan control can fix that. Your system will run cooler, quieter, and often faster because it throttles less.
On Windows, tools for this job are everywhere. On Linux, two open source tools do it best: LACT and CoreCtrl. This guide shows you how to use both, step by step.
Quick Answer
You undervolt and control fans on Linux by installing LACT for AMD GPUs or CoreCtrl for AMD and Intel systems, then lowering the voltage offset in small steps and testing stability after each change. For fan control, you create a custom fan curve based on temperature in the same tool. Always apply changes gradually, watch temperatures with sensors, and save a profile that loads at boot only after you are sure it is stable.
What Is Undervolting and Why Should You Do It?
Undervolting means giving your CPU or GPU a little less voltage than the factory default. The chip still runs at the same speed, but it uses less power. Less power means less heat. Less heat means lower fan noise and better battery life on laptops.
Manufacturers set voltage high to make sure every chip works, even weak ones. Most chips can run fine with less. You are not overclocking. You are just removing waste.
There are risks if you go too far. The system may freeze, crash, or fail to boot with a bad profile. That is why you move slowly and test well.
Undervolting vs Underclocking
Underclocking lowers speed to save power. Undervolting keeps speed and lowers voltage. Undervolting is better when you want full performance with less heat. Many users do both for laptops: a small undervolt plus a sensible fan curve gives the best balance.
Before You Start: Check Your Hardware
Not every system supports undervolting in the same way. Check what you have first.
- Open a terminal and run
lscputo see your CPU model. - Run
lspci | grep -i vgato see your GPU. - Install sensors with
sudo apt install lm-sensorson Ubuntu or Debian, then runsensors-detectandsensors. - Note your idle and load temperatures before you change anything. This is your baseline.
AMD GPUs work best with both tools. Nvidia GPUs have limited voltage control on Linux. Intel CPUs on newer laptops may have undervolting locked by the BIOS for security reasons. If it is locked, focus on fan control and power limits instead.
Method 1: Undervolt and Control Fans with LACT
LACT stands for Linux AMDGPU Controller. Despite the name, recent versions also support Nvidia and Intel GPUs for some features. It is simple, clean, and perfect if you mainly want GPU control.
You can find the project and install files on the official LACT project page on GitHub. Download the right package for your distro — .deb for Ubuntu, .rpm for Fedora, or use the Flatpak.
Install LACT
- Download the latest release for your system.
- Install it with your package manager. On Ubuntu:
sudo apt install ./lact_*.deb - Enable the background service:
sudo systemctl enable --now lactd - Open LACT from your app menu.
The service is important. Without it, your settings will not apply after reboot.
Undervolt Your GPU with LACT
- Open LACT and go to the OC tab or Performance tab, depending on your version.
- Find the voltage offset slider. Start with a small offset, like -25 mV or -50 mV.
- Click Apply.
- Test with a game, a benchmark like
glmark2, or a stress tool for 15 to 20 minutes. - If there is no crash or visual glitch, lower by another 25 mV and test again.
- Stop when you see errors, then go back one step to the last stable value.
Every chip is different. One GPU may handle -100 mV. Another may only handle -40 mV. Do not copy values from forums blindly.
Set a Fan Curve in LACT
- In LACT, open the Thermals tab.
- Switch fan control from Automatic to Custom Curve.
- Add points: for example, 30% speed at 40°C, 50% at 60°C, 75% at 75°C, and 100% at 85°C.
- Apply the curve and watch temperatures under load.
- Adjust so the fan ramps up smoothly, not suddenly.
A good curve is quiet at idle and strong under load. Avoid keeping the fan at 0% above 60°C for long periods.
Method 2: Undervolt and Control Fans with CoreCtrl
CoreCtrl gives you profiles per application and more CPU control. It is great if you want one profile for work and another for gaming.
Install it on Ubuntu with:
sudo add-apt-repository ppa:ernstp/mesarc
sudo apt update
sudo apt install corectrl
On Arch Linux, install it with sudo pacman -S corectrl. For full setup details, the CoreCtrl guide on the Arch Wiki is very helpful even for other distros.
Set Up CoreCtrl Correctly
CoreCtrl needs extra permission to control voltage and fans. When you first open it, it may ask to add a boot parameter.
- Open CoreCtrl and follow the setup prompt if shown.
- For AMD GPUs, you often need
amdgpu.ppfeaturemask=0xffffffffin your GRUB config. - Edit GRUB with
sudo nano /etc/default/grub, add the parameter, then runsudo update-gruband reboot. - After reboot, open CoreCtrl again. Voltage and fan controls should now be unlocked.
If you want a deeper power guide after this, our tutorial on how to check CPU temperature and manage heat on Linux covers long-term monitoring in detail.
Create Profiles in CoreCtrl
- Click the plus icon to create a new profile.
- Name it, for example “Quiet Work” or “Gaming”.
- Under Performance mode, choose Manual.
- Set voltage offset in small steps, just like in LACT.
- Under Fans, choose Custom Curve and set your temperature points.
- Save the profile and set one as the global profile if you want it always on.
- Enable “Start CoreCtrl on login” and “Apply settings on system start” in Preferences.
How to Test Stability After Undervolting
Testing is not optional. A system that boots is not always stable.
- For CPU: run
stress-ng --cpu 0 --timeout 10mor use Prime95-like workloads. - For GPU: run a demanding game, Blender render, or
vkmarkfor at least 20 minutes. - Watch for freezes, black screens, flickering, or sudden reboots.
- Check logs with
journalctl -xeif a crash happens. - Test normal tasks too: sleep, wake, plugging in power, and using multiple monitors.
If you get one crash, raise voltage by 25 mV. Stability matters more than saving an extra 2 watts.
Control CPU Fans When LACT and CoreCtrl Are Not Enough
LACT and CoreCtrl focus mostly on GPU fans. For CPU and case fans controlled by the motherboard, you may need another tool.
- Run
sensorsto see if your fan speeds are detected. - Install
fancontrolwithsudo apt install fancontrol. - Run
sudo pwmconfigto map fans to temperature sensors. - Run
sudo fancontrolsetup or edit/etc/fancontrolmanually. - On laptops, tools like
nbfc-linuxmay work better for embedded controllers.
Do not run two tools fighting for the same fan. Pick one controller per fan.
Common Mistakes and Useful Tips
- Lowering voltage too much at once: Always go in 25 mV steps. Big jumps hide the true stable limit.
- Not enabling the service: If LACT settings reset after reboot, the
lactdservice is not enabled. - Forgetting the GRUB parameter for CoreCtrl: Without it, sliders look present but do nothing.
- Setting fan to 0% for too long: Silent is nice, but heat soaking harms battery and parts. Keep a low minimum speed above 55°C.
- Copying someone else’s curve: Your case, room temperature, and dust level are different. Tune for your PC.
- No backup plan: Know how to boot in safe mode and remove a bad profile. Keep your first stable profile saved separately.
- Tip: Clean dust and check thermal paste first. Software cannot fix a clogged heatsink.
- Tip: On laptops, combine undervolting with a power profile like
powerprofilesctl set balancedfor best daily results.
Conclusion
Undervolting and fan control on Linux are easier than most people think. LACT is the simplest choice for GPU voltage and fan curves. CoreCtrl is better if you want per-app profiles and more control. Start small, test carefully, and build a curve that keeps your system cool without sounding like a jet. Once you find stable settings, your PC will feel like a new machine — quieter, cooler, and more pleasant to use every day.
Frequently Asked Questions
Is undervolting safe for my CPU and GPU?
Yes, when done in small steps with testing. Lower voltage does not damage hardware. Too low a voltage only causes crashes or errors, which tells you to raise it slightly. Damage usually comes from overvolting, not undervolting.
Which is better, LACT or CoreCtrl?
LACT is simpler and lighter, ideal for GPU-only control. CoreCtrl is better for profiles and users who want CPU and GPU settings in one place. Many AMD users start with LACT and move to CoreCtrl later if they need more features.
Why are voltage sliders locked or greyed out?
Your GPU driver may not have full power features enabled, or your laptop BIOS has locked undervolting. For AMD, add the ppfeaturemask GRUB parameter for CoreCtrl. For newer Intel laptops, the lock is often permanent and cannot be removed in software.
Will my settings stay after reboot?
Yes, if you enable the LACT daemon or set CoreCtrl to apply on startup. Test this by rebooting after you save a stable profile and checking that the offset and fan curve are still active in the app.
Can I undervolt an Nvidia GPU on Linux?
Support is limited. LACT supports some Nvidia fan and power limit controls, but true voltage offset control is restricted by Nvidia’s driver. You can still control fans and power limits for cooler, quieter operation on many cards.


Leave a Reply