A kernel module that allows the user to undervolt Intel CPUs when SecureBoot is enabled.
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.
Fedora
$ sudo dnf install \
kernel-devel \
kernel-headers
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.
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!
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).