Undervolt Go is a power-utility, designed to allow users to undervolt Intel CPUs on Linux systems. Undervolting can help reduce CPU temperatures, decrease power consumption, and potentially increase system stability and longevity. Undervolt Go gives the advantage of running the application without the need for any dependencies, and also features a user-friendly graphical version.
Get it here.
Note:
- Please use this software with extreme caution. It has the potential to damage your computer if used incorrectly.
- Introduction
- Installation
- Building
- Usage
- Features
- Screenshots
- Dependencies
- Configuration
- Examples
- Troubleshooting
- FAQ
- Contributors
- License
Undervolt Go enables users to apply voltage offsets to various components of Intel CPUs, such as the core, cache, GPU, and more. By adjusting these voltage offsets, users can achieve lower power consumption and reduced heat output, which is particularly beneficial for laptops and compact systems where thermal management is crucial.
To build Undervolt Go, follow these steps:
-
Clone the repository:
git clone https://github.com/Softorage/undervolt-go.git
-
Navigate to the project directory:
cd undervolt-go
-
Build the application:
go build
This will generate the
undervolt-go
executable in the current directory. -
Run the application:
sudo ./undervolt-go --help sudo ./undervolt-go --read
Because the program accesses MSRs, you must run it as root (e.g., with sudo).
To install Undervolt Go on your system, follow these steps:
- Download latest release from offical nightly builds.
- You can download the Graphical Interface version (Pro version) or the CLI version.
- The GUI version can also run the CLI commands. The commands need to be passed to
undervolt-go-pro
- Extract the archive. You should now have the following files:
undervolt-go
orundervolt-go-pro
install-undervolt.sh
uninstall-undervolt.sh
update-undervolt.sh
icon.png
(in case of Pro version)
- Open Terminal and navigate to the directory containing the undervolt-go or undervolt-go-pro executable. You can often simply launch Terminal in the active folder with a right-click.
- Simply make
install-undervolt.sh
executable (orupdate-undervolt.sh
if you already have Undervolt Go installed on your system):chmod +x install-undervolt.sh
- or you can right click
install-undervolt.sh
, go to Properties, and in the Permissions tab, tick 'Make executable'
- If you have built the binary by yourselves, replace the downloaded undervolt-go with your undervolt-go (or undervolt-go-pro for that matter)
- Run
install-undervolt.sh
(orupdate-undervolt.sh
) with sudo (it's always recommended to check the script by opening it in a text editor before executing it)sudo ./install-undervolt.sh
Undervolt Go requires root privileges to interact with the CPU's model-specific registers (MSRs). Ensure you have the necessary permissions before proceeding.
-
To apply a voltage offset, use the following syntax:
sudo undervolt-go --core=-100 --cache=-50 --gpu=-50
This command applies a -100 mV offset to the CPU core, -50 mV to the CPU cache, and a -50 mV offset to the GPU.
-
This command applies a 40W power limit to PL1 and a 32s time window. PL1 is the long term power limit, that can be safe for longer periods.
sudo undervolt-go --p1=40,32
-
This command applies a 60W power limit to PL2 and a 10s time window. PL2 is the short term power limit, that can be safe for shorter periods and is useful for short bursts of performance.
sudo undervolt-go --p2=60,10
-
You can use multiple flags in a single command.
sudo undervolt-go --core=-70 --cache=-50 --p1=40,32 --p2=60,10 --turbo=0 --temp=78 --temp-bat=66
-
All commands can be found in the help menu:
sudo undervolt-go --help Undervolt Go A no-dependency utility to undervolt Intel CPUs on Linux systems with voltage offsets, perform power limit adjustments, set temperature limits, and more. It also features a user-friendly graphical version which lets you monitor temperatures and fan speeds with the help of 'sensors' package. Please use with extreme caution. It has the potential to damage your computer if used incorrectly. Usage: `undervolt-go [flags]` `undervolt-go [command]` Available Commands: completion Generate the autocompletion script for the specified shell help Help about any command profile Manage saved profiles Usage: `undervolt-go profile [command]` Available Sub-commands: apply Apply given profile Usage: `undervolt-go profile apply [auto|ac|battery] [flags]` list List available profiles save Save current flags as a profile Usage: `undervolt-go profile save [ac|battery] [flags]` Flags: --analogio float AnalogIO offset (mV) (default NaN) --cache float Cache offset (mV) (default NaN) --core float Core offset (mV) (default NaN) --force Allow setting positive offsets --gpu float GPU offset (mV) (default NaN) -h, --help help for undervolt-go --lock-power-limit Lock the power limit --p1 strings P1 Power Limit (W) and Time Window (s), e.g., --p1=35,10 --p2 strings P2 Power Limit (W) and Time Window (s), e.g., --p2=45,5 --read Read existing values --temp int Set temperature target on AC (°C) (default -1) --temp-bat int Set temperature target on battery (°C) (default -1) --turbo int Set Intel Turbo (1 disabled, 0 enabled) (default -1) --uncore float Uncore offset (mV) (default NaN) --verbose Print debug information -v, --version version for undervolt-go Use "undervolt-go [command] --help" for more information about a command.
- GUI: Interact with 'Undervolt Go' from a user-friendly graphical user interface.
- Voltage Offset Adjustment: Apply custom voltage offsets to CPU components to optimize performance and thermal characteristics.
- Temperature Target Override: Set a custom temperature target for CPU throttling, on AC or battery power.
- Power Limit Configuration: Adjust the CPU's power limits to control performance and power consumption.
- Intel Turbo Adjustment: Enable or disable Intel Turbo for optimal performance.
- Profile Management: Save and apply profiles for quick configuration changes.
- Auto Profile Switching: Automatically switch to the appropriate profile based on AC or battery power. (Coming soon)
- Temperature Monitoring: Monitor and display the current temperature of the CPU.
- Fan Monitoring: Monitor and display the current fan speed of the CPU.
Description | Screenshot |
---|---|
Voltage Offsets | |
Power Limit | |
Temperature Limit | |
Other Flags | |
Output | |
Check Core Temps | |
Check Fan RPMs | |
Read | |
Version |
- For usage
-
No dependencies are required.
-
Linux Kernel with MSR Support: Ensure that the
msr
kernel module is loaded. You can load it using:sudo modprobe msr
-
Root Privileges: Ensure you have root privileges to interact with the CPU's model-specific registers (MSRs).
-
- For building
- Go Programming Language: Required for building the application. Download and install from the official Go website.
You can save configuration using the profile save [ac/battery] --flags
command. Saved profiles are automatically applied based on AC or battery power.
To maintain settings across reboots, you can either consider creating a startup script that runs your preferred undervolt-go
command, or add the preferred undervolt-go
command in .profile
file. You may need to edit the sudoers
file to allow running undervolt-go
as sudo without requiring password.
To edit sudoers
file,
- Type in terminal
sudo visudo
. - Add the below line at last of the sudoers file to allow running Undervolt Go as sudo without requiring password
username ALL=(ALL) NOPASSWD: /usr/local/bin/undervolt-go
username ALL=(ALL) NOPASSWD: /usr/local/bin/undervolt-go-pro
# in case you are using the graphical version
Ctrl
+X
to exit,y
andenter
to save.- Make sure that you are absolutely sure that the computer won't crash with the commands that you are putting in
.profile
. Otherwise, your computer will always crash upon login. In such a case, you may try to shift totty4
(Ctrl
+Alt
+F4
) before login (or any othertty
), and remove the commands causing issues from.profile
file. This would usually work if X Server is causing issues.
-
Read Current Voltage Offsets:
sudo undervolt-go --read
This command displays the current voltage offsets applied to the CPU components.
-
Set Temperature Target to 85°C:
sudo undervolt-go --temp=85
This sets the CPU throttling temperature target to 85 degrees Celsius.
-
Disable Intel Turbo Boost:
sudo undervolt-go --turbo=1
This command disables Intel Turbo Boost, potentially reducing heat and power consumption.
- System Instability: Applying too much voltage offset can cause system instability or crashes. If you experience issues, reduce the magnitude of the offsets.
- Settings Reset After Reboot: Voltage offsets are not persistent across reboots by default. Create a startup script to apply your preferred settings automatically.
- Permission Denied Errors: Ensure you are running the commands with
sudo
to have the necessary privileges.
-
Is undervolting safe?
Undervolting can be safe if done correctly, but it carries inherent risks. Applying incorrect voltage settings can lead to system instability, crashes, or hardware damage. Start with small negative voltage offsets, and choose the offset just before the system starts crashing. You may have to manually cut the power when the system crashes due to undervolt.
-
Do I need to install any dependencies to use Undervolt Go?
No, Undervolt Go is built using Go and does not require any external dependencies. However, to interact with CPU settings, the application needs to run with elevated privileges.
-
How do I use Undervolt Go to undervolt my CPU?
To use Undervolt Go:
Mehtod 1: Without installation:
- Open Terminal: Launch your terminal application.
- Navigate to the Executable Location: Ensure you're in the directory containing the undervolt-go executable (
cd
into the directory where 'undervolt-go' is located) or provide the full path to it. - Run the Executable: Execute the program with appropriate permissions:
sudo ./undervolt-go
Mehtod 2: With installation:
- Navigate to the undervolt-go or undervolt-go-pro directory: Change to the directory containing the undervolt-go executable or undervolt-go-pro executable for graphical version, along with the
install-undervolt.sh
,uninstall-undervolt.sh
andupdate-undervolt.sh
scripts. Make sure that all the files are in the same directory. - Open Terminal: Launch your terminal application in the undervolt-go or undervolt-go-pro directory.
- Install Undervolt Go: Run the
install-undervolt.sh
script:sudo ./install-undervolt.sh
- Run Undervolt Go:
- For
undervolt-go
, you can now use 'Undervolt Go' from any directory. Run theundervolt-go
command with root privileges:sudo undervolt-go --help
- For
undervolt-go-pro
, you can now launch 'Undervolt Go' from your desktop. Just click or double-click on the 'Undervolt Go' icon to run the graphical version. You will be prompted root password and then the program will run.
- For
-
Do you use AI to develop this project?
We may use AI when developing this project. If you find any issues, please report them to us. We will try to fix them as soon as possible.
-
Which Intel CPUs are supported by Undervolt Go?
Undervolt Go supports a range of Intel CPUs, particularly those from the Haswell generation and newer. However, compatibility can vary based on your specific system configuration.
We welcome contributions from the community. If you'd like to contribute to Undervolt Go, please fork the repository and submit a pull request with your changes.
This project is licensed under the GNU General Public License v3.0. See the LICENSE.txt file for details.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.