Automatically find the maximum stable CPU undervolt for Intel processors on Linux. No guesswork, no manual tuning — just run the script and get a verified, stress-tested undervolt offset for your specific chip.
Works with any Intel CPU that supports the FIVR OC Mailbox (HX, K, KF, X series). Tested and developed on Ubuntu 24.04 with an Intel Core i7-13650HX, but compatible with other Intel CPUs and Linux distributions.
You don't need Linux installed. You can live boot Ubuntu from a USB stick, run the scan, find your stable undervolt, and apply the result to Windows using Intel XTU or ThrottleStop. No installation required.
AutoUndervolt scans a range of voltage offsets you define, stress-tests each one with verified computations, and identifies the deepest stable undervolt your specific CPU silicon can handle.
- Baseline comparison — runs a stress test at stock voltage first so you can see the real improvement
- Independent core/cache offsets — test different voltages for CPU core and cache planes
- Crash recovery — if your system crashes during a test, the script detects it on next run and continues from the next step
- Auto config change detection — edit your test steps and checkpoints are automatically cleared
- Final validation — the best passing offset gets an extended stress test for confidence
- Reports — generates a detailed HTML report saved to the project directory with full baseline comparison, per-step results, peak temperatures, throughput (bogo ops) for every offset tested, and copy-paste systemd service for permanent application. A plain text version is also saved alongside it.
- The deepest stable undervolt for your specific chip (silicon lottery varies)
- Typically 5–10% more sustained performance under heavy load (less thermal throttling)
- Lower temperatures (1–5°C under load, more at idle)
- Quieter fans — especially noticeable at idle and medium loads
- Better battery life — power scales with voltage squared, so even small reductions help
- Less VRM stress — lower current through power delivery extends hardware lifespan
- A detailed HTML report with every offset tested, showing exact throughput numbers, peak temperatures, and performance gains vs your stock baseline — so you can see exactly what each step gained
On a desktop, you can overclock to get more performance — push the clocks higher, add more voltage, and rely on a tower cooler to handle the extra heat. Laptops don't have that luxury. The cooling system is compact and shared between the CPU, GPU, and VRMs. Laptop CPUs already boost as high as thermals allow, so adding voltage and frequency just hits the thermal wall faster and causes more throttling, not less.
Undervolting works in the opposite direction and is far more effective on laptops:
- Same clocks, less heat. The CPU maintains its boost frequencies but generates less waste heat per cycle. Less heat means less throttling, which means the CPU sustains higher clocks for longer under sustained load.
- More thermal headroom for the GPU. On a laptop the CPU and GPU share the same heatpipe system. A cooler CPU means the GPU gets more thermal budget, so both perform better.
- No stability risk from pushing clocks beyond spec. Overclocking pushes the silicon past its rated frequency and can cause degradation over time. Undervolting stays within the rated frequency — you're just using less power to get there.
- Better battery life as a bonus. Overclocking drains the battery faster. Undervolting does the opposite — you get more performance and longer battery life at the same time.
In our testing, a -100mV undervolt on an i7-13650HX produced ~8% more sustained throughput than stock — without changing a single clock speed setting. The CPU simply stopped throttling as aggressively because it was running cooler. That's free performance that overclocking can't match on a thermally limited laptop.
Before running AutoUndervolt, you must configure your BIOS:
-
Disable Secure Boot
- Security → Secure Boot → Disabled
- This is required because Linux kernel lockdown blocks MSR writes when Secure Boot is enabled
-
Enable Overclocking / Undervolting (if your BIOS has this option)
- Some laptops (Lenovo Legion, ASUS ROG, etc.) have an "Overclocking" or "OC" toggle in the BIOS
- This unlocks the Intel FIVR OC Mailbox that the script uses to adjust voltage
Set your system to Performance mode before running the scan. The stress test needs to push the CPU to maximum boost clocks — power-saving modes limit clocks and can make an unstable undervolt appear stable.
- Linux: Set the CPU governor to performance:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
- Lenovo Legion: Press Fn+Q and cycle to Performance mode (red LED on the power button). This unlocks the full power limit and fan curve, giving the most accurate stress test results.
- Other laptops: Use your manufacturer's software or keyboard shortcut to select the highest performance profile.
- Intel CPU with unlocked FIVR OC Mailbox — most HX, K, KF, X series processors
- 12th Gen (Alder Lake): i5-12600K, i7-12700H/HX, i9-12900K/HX, etc.
- 13th Gen (Raptor Lake): i5-13600K, i7-13650HX, i7-13700K/HX, i9-13900K/HX, etc.
- 14th Gen (Raptor Lake Refresh): i5-14600K, i7-14700K/HX, i9-14900K/HX, etc.
- Linux — Ubuntu, Fedora, Arch, or any distro with kernel MSR support
- Root access (sudo)
- Packages are auto-installed from official repos:
msr-tools,stress-ng,lm-sensors
You can find your stable undervolt without installing Linux:
- Download Ubuntu Desktop ISO
- Flash it to a USB stick using Balena Etcher or Rufus
- Boot from the USB stick (select "Try Ubuntu" — don't install)
- Open a terminal and run:
sudo apt install -y git
git clone https://github.com/codewizdevs/autoundervolt.git
cd autoundervolt
nano undervolt-finder.conf # edit test steps if needed
sudo ./undervolt-finder.sh- Once the scan completes, note your stable offset from the report
- Reboot into Windows and apply the same offset using Intel XTU or ThrottleStop
git clone https://github.com/codewizdevs/autoundervolt.git
cd autoundervoltEdit the config file to set your test steps:
nano undervolt-finder.confRun the scanner:
sudo ./undervolt-finder.shAfter finding your stable offset, apply it permanently:
sudo ./setup-undervolt.sh # installs the 'power' command
power -set -100 # apply -100mV to both planes
power -set -120 -100 # or split: -120mV core, -100mV cacheIf your scan finds -120mV stable, apply -100mV for daily use.
A stress test can't cover every possible workload, temperature, and power state your CPU will encounter over months of use. Keeping a ~20mV safety margin ensures rock-solid stability in all conditions — different ambient temperatures, dust buildup, sleep/wake transitions, specific application workloads the stress test didn't hit. You still get the vast majority of the performance benefit (the gains have diminishing returns at deeper offsets anyway).
Edit undervolt-finder.conf to define your test steps. The file includes 5 preset configurations — uncomment the one that fits your needs:
# ── Timing ──────────────────────────────────────────
stress_minutes 10 # stress duration per step
final_minutes 30 # final validation duration
# ── Steps ───────────────────────────────────────────
# core cache
step -80 -80
step -100 -100
step -120 -120
| Preset | Range | Best For |
|---|---|---|
| Safe / First Timer | -50 to -100 mV | First time undervolting, minimal risk |
| Standard Range | -80 to -120 mV | Most users, good balance of speed and coverage |
| Full Sweep | -50 to -160 mV | Finding your chip's absolute limit |
| Split Core/Cache | Varied | Advanced users tuning each plane independently |
| Aggressive | -120 to -180 mV | Users who already know their chip is good |
- Cache is often less tolerant than core — if stability testing fails, try keeping cache higher (less negative) than core
- Start conservative — you can always run again with deeper offsets
- Steps are tested in order — testing stops at the first failure, so put aggressive values last
After running setup-undervolt.sh, you get the power command in your terminal:
$ power
══════════════════════════════════════
POWER STATUS
══════════════════════════════════════
Undervolt
Offset: -100mV (Core + Cache)
Service: active, enabled at boot
CPU
Avg freq: 1420 MHz
Range: 800–1906 MHz
Pkg temp: 54°C
Governor: powersave
GPU
Model: NVIDIA GeForce RTX 5070 Laptop GPU
Temp: 41°C
Power: 3.54W
Clock: 180 MHz
Usage: 0%
Battery
Level: 100%
Status: Full
Health: 98.8%
Cycles: 16
══════════════════════════════════════
power -set <mV> | -reset | -h
| Command | Description |
|---|---|
power |
Show undervolt status, CPU, GPU, battery, memory stats |
power -set -100 |
Apply -100mV to both core and cache |
power -set -120 -100 |
Apply -120mV core, -100mV cache |
power -reset |
Remove undervolt and disable boot service |
power -h |
Show help |
The -set command computes the correct MSR values, applies the undervolt immediately, writes a systemd service for boot persistence, and enables it — all in one step.
| File | Purpose |
|---|---|
undervolt-finder.sh |
Main scanner script — runs stress tests and generates reports |
undervolt-finder.conf |
Test configuration — edit steps, timing, presets here |
setup-undervolt.sh |
Installer — adds the power command to your shell |
report.txt |
Plain text report (generated after scan) |
report.html |
HTML report with styling (generated after scan) |
checkpoint |
Crash recovery state (auto-managed) |
results.log |
Detailed run log (auto-managed) |
- Loads your config — reads test steps from
undervolt-finder.conf - Installs dependencies —
msr-tools,stress-ng,lm-sensorsfrom official Ubuntu repos - Captures baseline — measures idle temperature, power, and runs a full stress test at stock voltage (0mV) for comparison
- Scans each step — applies the core/cache undervolt via the Intel FIVR OC Mailbox (MSR 0x150), then runs
stress-ngwith FFT workload and--verifyflag to catch any compute errors - Final validation — the deepest passing step gets an extended stress test (default 30 minutes)
- Generates reports — plain text and HTML with all data, comparison vs baseline, and copy-paste systemd service for permanent application
- Resets to stock — voltage is always reset to 0mV on exit, even on Ctrl+C
- Undervolting cannot damage your CPU. It reduces voltage — the opposite of what causes silicon degradation. The worst case is an instant crash/freeze, after which you reboot at stock voltage with zero hardware impact.
- No persistent changes — the scanner resets voltage to 0mV on exit. Nothing is modified permanently unless you explicitly run
power -set. - Crash recovery — if your system hard-crashes during a test, the script detects it on next run via checkpoint files and marks that step as failed.
If you used the live boot method to find your stable offset, apply it on Windows using:
- Intel XTU — Intel's official overclocking tool. Set the Core Voltage Offset and Cache Voltage Offset to your stable values.
- ThrottleStop — lightweight alternative. Go to FIVR → CPU Core and CPU Cache → set Offset Voltage.
Both tools work with Secure Boot enabled on Windows.
- OS: Ubuntu 24.04 LTS (kernel 6.17)
- CPU: Intel Core i7-13650HX (6P + 8E cores, 20 threads)
- Laptop: Lenovo Legion with RTX 5070 Laptop GPU
- Result: -120mV stable on both core and cache, ~9% sustained throughput improvement
Should work on any Intel system with an unlocked FIVR OC Mailbox. Community reports of success on:
- Lenovo Legion, LOQ series
- ASUS ROG Strix, Zephyrus
- HP Omen
- MSI Raider, Stealth
- Desktop K/KF/X processors
Q: Can this damage my CPU? No. Undervolting reduces voltage — the opposite of what harms silicon. An unstable undervolt causes an instant crash, not degradation. Reboot and you're back to normal.
Q: Do I need to install Linux? No. You can live boot Ubuntu from a USB stick, run the scan, and apply the result to Windows.
Q: Does the undervolt persist across reboots?
Only if you set it up with power -set. The scanner itself always resets to stock on exit.
Q: My BIOS doesn't have an overclocking option.
Some laptops lock the FIVR OC Mailbox at the firmware level. If wrmsr fails even with Secure Boot disabled, your system may not support voltage adjustment.
Q: Should I apply the exact offset the scanner found? No — apply ~20mV less than your maximum stable offset. If the scan finds -120mV stable, use -100mV daily. Stress tests can't cover every edge case (ambient temperature swings, specific game workloads, sleep/wake transitions). The safety margin costs almost nothing in performance — the gains have diminishing returns at deeper offsets — but prevents rare crashes months down the line.
Q: Will this work on AMD CPUs? No. This tool uses the Intel FIVR OC Mailbox (MSR 0x150) which is Intel-specific. AMD uses Curve Optimizer through a different interface.
MIT — use it, modify it, share it.
Keywords: intel undervolt linux, automatic undervolt finder, cpu undervolt tool, stress test undervolt, intel 13th gen undervolt, 13650HX undervolt, raptor lake undervolt, linux msr undervolt, undervolt without linux install, live boot undervolt, throttlestop linux alternative, intel xtu linux, laptop undervolt linux, reduce cpu temperature linux, improve laptop battery life linux