Skip to content

A kernel module that allows the user to undervolt Intel CPUs

License

Notifications You must be signed in to change notification settings

markx86/inteluv

Repository files navigation

inteluv

A kernel module that allows the user to undervolt Intel CPUs when SecureBoot is enabled.

WARNING

This module bypasses security checks put in place by the kernel, by allowing userspace applications to write to certain MSRs.
A whitelist has been put in place to restrict access only to said MSRs, but I do not make ANY guarantees about the safety of this module.
PLEASE USE AT YOUR OWN RISK.

DEPENDENCIES

Fedora
  $ sudo dnf install \
        kernel-devel \
        kernel-headers

BUILDING

Note

If you want to use DKMS for automatic module rebuilding, follow this chapter. This is also what I recommend doing for a more seamless experience.

First thing first, you'll have to enroll your own MOK. If you don't know how to do that, check this out.

Edit the file named SIGNING and replace the fields KEY= with the path to your private key (usually ending with *.priv or *.key) and X509= with the path to your public key (usually ending with *.der or *.x509). You can leave HASH= as is.

After that, make sure you're logged in as root (running the other commands as sudo wont do).

$ sudo -i

Once you've entered your password, run the following commands in order:

cd /path/to/inteluv
⋕ make
⋕ make sign

And we're done! The module is ready. You should now be able to run insmod inteluv.ko as root and /dev/inteluv should now exist.

SETTING UP DKMS

Before we start, make sure you have DKMS installed.

Fedora
  $ sudo dnf install dkms

Then run the following commands as root.

cd /path/to/inteluv
⋕ make dkms

If you enrolled your custom keys (see this) you also need to edit the SIGNING and point it to the appropriate signing
keys (as explained in the BUILDING chapter). After that run make dkms-setup to add the signing keys to DKMS.

If you didn't enroll your custom MOK, you can enroll the one generated by DKMS (see this).

Now try rebuilding and loading the module with

⋕ dkms autoinstall
⋕ modprobe inteluv

If there were no errors, then you're done!

USING WITH intel-undervolt

To allow intel-undervolt to use the new module, you're going to have to patch it and build it from source. To do that, run the following commands.

$ git clone https://github.com/kitsunyan/intel-undervolt.git
$ cd intel-undervolt
$ patch -p1 < /path/to/inteluv/intel-undervolt.patch
$ ./configure --enable-systemd --bindir=/usr/local/bin && make
$ sudo make install # To install intel-undervolt on your system

Now try running sudo intel-undervolt read. You should get all 0.0mV (or -0.0mV).

About

A kernel module that allows the user to undervolt Intel CPUs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published