All Projects → tiziw → Iuvolt

tiziw / Iuvolt

Script to undervolt Intel CPUs

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Iuvolt

Git Gud
A simple git commit checker
Stars: ✭ 77 (-32.46%)
Mutual labels:  bash-script
Bash Utility
Bash library which provides utility functions and helpers for functional programming in Bash.
Stars: ✭ 92 (-19.3%)
Mutual labels:  bash-script
Openfolderinvscode
With this macOS service, you can quickly open any given folder as a project in Visual Studio Code from the Finders context menu.
Stars: ✭ 105 (-7.89%)
Mutual labels:  bash-script
Plexus
A suite of tools to help manage your media collection.
Stars: ✭ 78 (-31.58%)
Mutual labels:  bash-script
Spring Boot Shopping Cart
Simple shopping cart web app made using Spring Boot + Thymeleaf
Stars: ✭ 85 (-25.44%)
Mutual labels:  bash-script
Eless
A Better 'less' - A bash script that loads emacs with minimal view-mode config - Created with Org mode
Stars: ✭ 94 (-17.54%)
Mutual labels:  bash-script
Bazel and compilecommands
Add compile_commands.json to your C++ Bazel Project
Stars: ✭ 62 (-45.61%)
Mutual labels:  bash-script
Pwd.sh
GPG symmetric password manager
Stars: ✭ 1,468 (+1187.72%)
Mutual labels:  bash-script
Pornhub Downloader
Bash Script for downloading content from PornHub (the easy way)
Stars: ✭ 87 (-23.68%)
Mutual labels:  bash-script
Archtorify
Transparent proxy through Tor for Arch Linux OS
Stars: ✭ 100 (-12.28%)
Mutual labels:  bash-script
Cryptr
A simple shell utility for encrypting and decrypting files using OpenSSL.
Stars: ✭ 81 (-28.95%)
Mutual labels:  bash-script
Memcache Info
Simple and efficient way to show information about Memcache.
Stars: ✭ 84 (-26.32%)
Mutual labels:  bash-script
Synonym
Find synonyms in 15 different languages directly from your terminal.
Stars: ✭ 95 (-16.67%)
Mutual labels:  bash-script
Scotty
Helper scripts for GitHub Enterprise admins
Stars: ✭ 77 (-32.46%)
Mutual labels:  bash-script
Pillager
A wget script that makes pillaging websites much easier.
Stars: ✭ 107 (-6.14%)
Mutual labels:  bash-script
Changelog Ci
Changelog CI is a GitHub Action that generates changelog, Then the changelog is committed and/or commented to the release Pull request.
Stars: ✭ 68 (-40.35%)
Mutual labels:  bash-script
Gnome Dash Fix
Sort GNOME apps dashboard by category.
Stars: ✭ 92 (-19.3%)
Mutual labels:  bash-script
Robotics setup
Setup Ubuntu 18.04, 16.04 and 14.04 with machine learning and robotics software plus user configuration. Includes ceres tensorflow ros caffe vrep eigen cudnn and cuda plus many more.
Stars: ✭ 110 (-3.51%)
Mutual labels:  bash-script
Whereami
A short shell script that returns you your IPv4 address and its geolocation.
Stars: ✭ 108 (-5.26%)
Mutual labels:  bash-script
Tmux Xpanes
Awesome tmux-based terminal divider
Stars: ✭ 1,370 (+1101.75%)
Mutual labels:  bash-script

iuvolt

Experimental script to undervolt Intel CPUs

Disclaimer

This method to undervolt has been found by users at notebookreview forums, no reports of permanent damage have been reported, but it is still experimental.

What does this script do?

This script takes voltage offsets (parameters or from config) and converts them to the right HEX values then writes them to the registers responsible for undervolting using the wrmsr command from the msr-tools package. This mechanism is reverse engineered from the windows program ThrottleStop, it writes to the msr 0x150 register.

Info on undervolting

I suggest you read https://github.com/mihic/linux-intel-undervolt first, especially the info regarding the voltage planes. Also read the thread at notebookreview, link in credits. As far as safety, this method is fairly untested, it's been pretty much reverse engineered by the community so beware. Make sure to read the thread as it contains the experience of others, there have been no reports of permanent damage using this method.

Requirements

This script depends on msr-tools for writing/reading to registers and bc for floating-point arithmetic. Make sure the msr module is loaded using lsmod | grep msr. If it's not loaded then you'll have to manually configure it to load on boot, if you want to load it temporarily use modprobe msr.

Supported CPUs

Theoretically, this method of undervolting works only with 3rd gen Intel CPUs and newer. It's been noted in the notebookreview forum thread that Intel Secure Boot blocks the wrmsr command from working properly and has to be disabled for this method to work.

For Intel CPUs older than 3rd gen the PHC method has to be used. More info on do it can be found at https://wiki.archlinux.org/index.php/PHC.

Installation

git clone https://github.com/tiziw/iuvolt.git
cd iuvolt && sudo chmod +x install.sh
sudo ./install.sh

#Experiment with right values
sudo iuvolt -90 -80 -90

#Save values to config
vi /etc/iuvolt.cfg

How to use

Usage:

iuvolt [CORE_OFFSET GPU_OFFSET CACHE_OFFSET UNCORE_OFFSET ANALOGIO_OFFSET DIGITAL_OFFSET]

All undervolts are in mV, if you wanna skip an offset, put 0 in its place. The CPU Core and Cache share the same voltage plane. If you define 2 different offsets for them then the highest of the 2 will be chosen. Uncore and AnalogIO are highly experimental and haven't been tested, digital offset is greyed out in ThrottleStop and is either not functional or unsupported.

To install the script put it in /usr/bin/iuvolt then use chmod +x

The script takes either voltage offsets as parameters, or it'll automatically load them from /etc/iuvolt.cfg The config file only needs 1 variable of type array with the name voltages. Example without config:

iuvolt -90.8 -80.1 -90.8

Example of config (/etc/iuvolt.cfg)

voltages=(-90.8 -80.1 -90.8)

Everytime iuvolt without parameters it'll (try to) automatically load the values from the config.

If you use systemd you can put systemd-iuvolt.service into /etc/systemd/system/ and then enable it using

systemctl enable iuvolt.service

Systemd will run iuvolt on boot and on/after sleep. The systemd service runs iuvolt without parameters so you'll have to set the values using the config file first.

You can also run install.sh that'll do the setup for you, all you have to do is edit the config file with the right undervolt parameters, as it'll have 0 values by default.

In order to update your version of the script, clone the repository then run update.sh as root.

Credits

The method to calculate the right values, what register to write to using what command to was taken from https://github.com/mihic/linux-intel-undervolt and from http://forum.notebookreview.com/threads/undervolting-e-g-skylake-in-linux.807953 the json and python scripts posted there were very useful.

All credits go to the notebookreview community, they did pretty much all the work.

All pull requests are welcome.

TODO

Make the systemd script work in all scenarios.

Ideas

Implement per-cpu profiles. Users can contribute offsets they've tested on their CPU and found to be safe. That way it saves time for new users with a same CPU.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].