Giter Club home page Giter Club logo

intel-undervolt's People

Contributors

felixonmars avatar johnf avatar kitsunyan avatar valpackett avatar xulongwu4 avatar yvesh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

intel-undervolt's Issues

Input/output error

Using Ubuntu 20.04.1 LTS with 5.4.69-xanmod1 kernel. I have i5-2430M with Intel HD Graphics 3000.

v30xy@akaBedir:~/Masaüstü/undervolt$ sudo intel-undervolt apply
CPU (0): Input/output error
GPU (1): Input/output error
CPU Cache (2): Input/output error
System Agent (3): Input/output error
Analog I/O (4): Input/output error

make: gcc: No such file or directory

When i try to run ./configure && make && make install i get errors like :
-make: gcc: No such file or directory
-gcc -Wall -Wextra
-DSYSCONFDIR='"'/etc'"'
-o config.o -c config.c
-make: *** [Makefile:69: config.o] Error 127
I used to use intel-undervolt on debian 11 with no problems at all but i'm fairly new to linux so if you know how to solve this i would be grateful !

Analog I/O is now iGPU Unslice

First of all, thank you for your work. I've been using your package for some weeks now and its been working great on my Arch setup.

Some months ago, though, Throttlestop`s author unclewebb spotted an issue with the labeling of the planes in the program. For newer architectures, "System Agent" was actually setting the iGPU Unslice plane, whereas "Analog I/O" was the one setting the System Agent plane. See his post from last august:

http://forum.notebookreview.com/threads/the-throttlestop-guide.531329/page-839#post-10779703

He indeed fixed that in Throttlestop, given that "Analog I/O" no longer exists and was replaced with "iGPU Unslice" on newer versions.

I'm not sure if you were aware of that. But seeing "Analog I/O" as a plane in intel-undervolt.conf makes me wonder whether that is something you should revise too, or at least make sure the labelings were adjusting the correct planes underneath.

Regards.

undervolt 0 'CPU' does nothing

Setting undervolt values for 'CPU Cache' works just fine but setting values for 'CPU' does nothing on my 9750h.
I tested at at different values and saw no difference on temps, power draw or freqs. For reference, doing so in Throttlestop (Windows) shows very tangible differences up to -250mV. I didn't touch anything else on the conf file, just these values.

Srry for the edits. Pressed enter by mistake.

TDP values aren't being changed

I've successfully managed to undervolt my i5-10210u on ZorinOS but TDP values aren't actually being changed(even though it's said they are).
image

My config file: https://del.dog/edadocarfy.go

I've also tried using daemon with the mentioned config but the TDP and frequencies stay unchanged(if I enforce a 100ms daemon refresh, it will just say 24W but the actual TDP will still be 15W).

Am I missing something?

Raising the temperature limit

Thanks for the useful piece of software! I've been using it for a few months on my 6th gen x1 carbon.

It works well for my undervolting and power limit needs. However, this generation of Lenovo laptops has an issue on Linux; the temperature limit is hard-coded to 80C, while it's on 100C on Windows. See https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/ for more information.

This project has a way to subtract a number from the initial temperature limit, such as going from 100 to 90 or 80. Could the reverse be implemented, so I could go from 80 to 90 or 100, and have my CPU throttle less? I've tried playing with the current settings, but I can't get the apparent limit to go past 80.

Thanks!

issue after install on debian and ubuntu

hi,
thanks for this tools, i use it on arch linux and manjaro :)
but,
i wanted to test on other distrib debian unstable and ubuntu
i install msr-tools and mchbar

-- L'unité (unit) intel-undervolt.service a commencé à démarrer.
juil. 12 11:28:15 zenbook intel-undervolt[15294]: Exec failed: No such file or directory
juil. 12 11:28:15 zenbook intel-undervolt[15294]: Modprobe failed
juil. 12 11:28:15 zenbook intel-undervolt[15294]: Failed to setup the program
juil. 12 11:28:15 zenbook systemd[1]: intel-undervolt.service: Main process exited, code=exited, status=1/FAILURE
juil. 12 11:28:15 zenbook systemd[1]: intel-undervolt.service: Failed with result 'exit-code'.
juil. 12 11:28:15 zenbook systemd[1]: Failed to start Intel Undervolt Service.
-- Subject: L'unité (unit) intel-undervolt.service a échoué
-- Defined-By: systemd
-- Support: https://www.debian.org/support

-- L'unité (unit) intel-undervolt.service a échoué, avec le résultat RESULT.

root@zenbook:/home/opentux/Téléchargements/intel-undervolt# intel-undervolt read
Exec failed: No such file or directory
Modprobe failed
Failed to setup the program

i do not find a precise log for resolve the problem.
thanks in advance

Hints and algorithm documentation

I am probably overlooking something super-obvious, so I hope this is only a quick question.

The config file says:

# Energy Versus Performance Preference Switch
# Usage: hwphint ${mode} ${algorithm} ${load_hint} ${normal_hint}
# Hints: see energy_performance_available_preferences

Where do I "see energy_performance_available_preferences"? Is there something similar for the algorithm string?

Feature request: measure only once

Hi, I think it would be really nice if there is a command-line option to do measurement only once instead of current intel-undervolt measure, so the results printed can be easily used in scripts or by other programs.

Currently I'm developing a GUI frontend based on this program, and directly obtaining measurement results from intel-undervolt can help a lot. And maybe this function can also help other users.

module undervolt not accepted

Hi,
I'm running ubuntu 21.10, kernel 5.13.0-30 on my machine, and I realized that the undervolt-tool is not working anymore.
Problem is probably the failure to load the undervolt module, which throws "Invalid module format" and "missing .modinfo section or name field: no module found in object" when I try to load it manually from a recent build.
Do I miss something here?
thanks,
Mathias

intel-undervolt.service not found

Hey guys, I'm trying to apply the undervolt on startup to my system. But when I run:

sudo systemctl enable intel-undervolt

It states that:

Failed to enable unit: Unit file intel-undervolt.service does not exist.

Values do not equal & Failed to start undervolt service

Hi,
Since a few kernel updates ago (now on Linux nk-zbook 5.5.2-1-MANJARO #1 SMP PREEMPT Tue Feb 4 19:22:35 UTC 2020 x86_64 GNU/Linux) I am having an issue undervolting my HP Zbook Studio Mobile system (i7 8750h).
Any idea how to fix?
Cheers

CPU (0): Values do not equal
GPU (1): -0.00 mV
CPU Cache (2): Values do not equal
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

my config

undervolt 0 'CPU' -150
#undervolt 0 'CPU' 0
undervolt 1 'GPU' 0
undervolt 2 'CPU Cache' -150
#undervolt 2 'CPU Cache' 0
undervolt 3 'System Agent' 0
undervolt 4 'Analog I/O' 0

Unistallation

#not an issue
just wanted to know how uninstallation would work? The documentation is not listing method to uninstall.

Values do not equal error

Hi!

When I use:
sudo intel-undervolt apply

I always get the same error:

CPU (0): Values do not equal
GPU (1): Values do not equal
CPU Cache (2): Values do not equal
System Agent (3): Values do not equal
Analog I/O (4): Values do not equal

And if I read after that command I get:

CPU (0): -0.00 mV
GPU (1): -0.00 mV
CPU Cache (2): -0.00 mV
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

And my intel-undervolt.conf is:

undervolt 0 'CPU' -5.0
undervolt 1 'GPU' -5.0
undervolt 2 'CPU Cache' -5.0
undervolt 3 'System Agent' -5.0
undervolt 4 'Analog I/O' -5.0

My cpu is i5-8250U

Error during Make

Hello I am running Ubuntu 18 but when I try to make this error comes up. Any ideas what causes it? When running make %% make install i get the same problem

user@user-Link:~/intel-undervolt$ make gcc -lm -o intel-undervolt config.o main.o main.o: In function tdp_to_seconds':
main.c:(.text+0x4da): undefined reference to exp2f' main.o: In function tdp_from_seconds':
main.c:(.text+0x515): undefined reference to log2f' main.c:(.text+0x58e): undefined reference to log2f'
main.o: In function tdp': main.c:(.text+0x798): undefined reference to exp2f'
main.c:(.text+0x7df): undefined reference to exp2f' collect2: error: ld returned 1 exit status Makefile:18: recipe for target 'intel-undervolt' failed make: *** [intel-undervolt] Error 1

Thank you

Hwphint stacking

First of all thanks for this great tool. I use this tool for a Thinkpad Extreme to tune it to be as quiet as possible but still be performant if needed in a more long term sense (several seconds)

I have something like this defined in the conf:

hwphint switch load:multi:4.00 balance_performance power

There is mentioned it might be possible to have multiple instructions like this. I would like to fine tune this a bit more, however I can not use this:

hwphint switch load:multi:1.00 balance_performance power
hwphint switch load:multi:4.00 balance_power balance_performance

Also following things came in my mind:

  1. For testing it would be nice to see in a action log when a switching is performed.
  2. The documentation is very "dense", it is not easy to understand the power rules. What is a short_power_value and what is a long_power_value? Maybe some more examples would be helpful.
  3. How can I see the undervolt really taking place? Which monitoring tools are recommended?
  4. What exactly are the two different services good for? Might it be possible to combine them or is this a distro thing here in my Ubuntu?

Add new release tag

The lastest 4 commits aren't in any version, but I think the code could be considered as fairly stable. I would appreciate it, if you could add the latest commits to a 1.7 git tag, since I plan to pack this for debian.

Different settings if running on battery

It would be useful if certain settings could change when a laptop is unplugged from the charger.

For example, using a lower temperature limit or power limit on battery could reduce overall fan usage, which could mean longer battery life. On the other hand, when plugged in, one might want the highest performance, even if that means a louder fan and more power use.

Perhaps this is outside the scope of this project, but I wasn't able to find any information about it.

how to disable short term package power max

I want to disable short term package power max, because I found that my cpu is more efficient with this function disable. i have tested with XTU on windows.
I am not sure if you can help to add this function.
Your hardwork is very good and help for me by the way.

Uninstall

How to uninstall intel-undervolt?

The following does not seem to be doing that:

$ sudo make uninstall

make: *** No rule to make target 'uninstall'.  Stop.

intel-undervolt daemon doesn't help persist settings

Steps:

  1. Arch linux, enabled both services:
systemctl enable --now intel-undervolt-loop.service
systemctl enable --now intel-undervolt.service
  1. Verify both services are healthy and the daemon is running:
ps ax | grep intel-under
3477 ?        Ss     0:00 /usr/bin/intel-undervolt daemon
  1. intel-undervolt apply
  2. intel-undervolt read yields correct settings
  3. Wait for some time. 20 mins or so...
  4. intel-undervolt read yields zero settings

No reboot was done in the process.

Operation not permitted

Hello there,

Installing went fine, issue is that I can't issue these commands:
sudo intel-undervolt read or sudo intel-undervolt apply

They both give me this as response:

CPU (0): Operation not permitted
GPU (1): Operation not permitted
CPU Cache (2): Operation not permitted
System Agent (3): Operation not permitted
Analog I/O (4): Operation not permitted

Altough sudo intel-undervolt measure is just fine.
Secureboot is disabled.
CPU: i7-4710HQ

install fails

I know nothing about programming. I was able to install and use on mint 18.3 but now on 19.1 the make fails.


xxxx@xxxxxxxx:~/intel-undervolt-master$ sudo make && sudo make install
gcc
-DSYSCONFDIR='"'/etc'"'
-o config.o -c config.c
config.c:1:10: fatal error: fcntl.h: No such file or directory
#include <fcntl.h>
^~~~~~~~~
compilation terminated.
Makefile:13: recipe for target 'config.o' failed
make: *** [config.o] Error 1


Maybe this is a simple fix. I just dont know what I'm looking at.

Setting CPU and GPU not working

I have a Thinkad E590 running Ubuntu 18.04 LTS + Intel i3 8145
The setting does seem to work, but the values are not taken into account by my system:

For exemple this Dumb value may be set :
undervolt 0 'CPU' -800.84
undervolt 1 'GPU' -800.84
undervolt 2 'CPU Cache' -100.84
undervolt 3 'System Agent' -120.84
undervolt 4 'Analog I/O' -120.84

Obviousely -800mv seems impossible, but all seem to go find and the read command "reads" the bios values as setted correctly...

Only the 'CPU Cache' value seems to do something, since when I play below - 100 mW it crashes my system.
I am running a 3D game to do the tests

add i915 power estimates to `measure` subcommand

It'd be nice if intel-undervolt measure showed the results from the i915 driver, which is in the same uj output as the current rapl source. Here's some code I just wrote to do it:

#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
	FILE *f;
	uint64_t this_microjoules, last_microjoules = ~UINT64_C(0);

	setbuf(stdout, NULL);
	f = fopen("/sys/kernel/debug/dri/0/i915_energy_uJ", "r");
	if (!f) {
		perror("fopen(/sys/kernel/debug/dri/0/i915_energy_uJ)");
		return 1;
	}

	printf("Measuring...");
	for (;;) {
		if (fscanf(f, "%" PRIu64, &this_microjoules) != 1) {
			perror("fscanf");
			return 1;
		}
		rewind(f);
		if (last_microjoules != ~UINT64_C(0))
			printf("\x1b[0G\x1b[0K%.2f W", (double)(this_microjoules - last_microjoules) / 1000000.0);
		last_microjoules = this_microjoules;
		sleep(1);
	}
	return 0;
}

Failed to set GPU settings

First: Thank you a lot for the work. i love the tool.

But:
I cannot set any value apart from the CPU voltage:

> sudo intel-undervolt apply
CPU (0): -70.31 mV
Failed to write value for GPU (1)
Failed to write value for CPU Cache (2)
Failed to write value for System Agent (3)
Failed to write value for Analog I/O (4)

When looking into your source i see, that you are calling the tools: ioutils and regval
Are those dependencies? Do you know where i can install them on archlinux?

Intel undervolt prevents shutdown

Hi, I am on Arch Linux and I cannot shutdown because of this error:

Failed to reboot system via logind: Transaction for reboot.target/start is destructive (intel-undervolt.service has 'start' job queued, but 'stop' is included in transaction).
Failed to talk to init daemon.

Here is the output of systemctl status intel-undervolt:

● intel-undervolt.service - Intel Undervolt Service
     Loaded: loaded (/usr/lib/systemd/system/intel-undervolt.service; enabled; vendor preset: disabled)
     Active: inactive (dead

libelogind not found, cant install service, ubuntu 19.04

Hi, On ubuntu 19.04, after ./configure, I got

Package libelogind was not found in the pkg-config search path.
Perhaps you should add the directory containing `libelogind.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libelogind' found
Enable systemd: false
Enable elogind: false
Enable OpenRC: false

So no systemd services are installed. Can you push me in right direction?

Problem with setting cpu tjunction offset

CPU: i5-4330M

when setting the tjunction limit, the apply script fails with the following error message:

 > sudo intel-undervolt apply          
CPU (0): -70.31 mV
GPU (1): -80.08 mV
CPU Cache (2): -70.31 mV
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

Failed to write MSR
Failed to write temperature offset value

when reading the value the script reports

i3-3220 Input/output error

This is a 5.1.9 Kernel.
Modules are loaded:

# lsmod |grep rapl
intel_rapl             16384  0
intel_rapl_perf        12288  0
iosf_mbi               12288  2 intel_rapl,i915

intel-undervolt measure
works, but
Intel-undervolt read
returns Input/output error on all channels.

Package libelogind was not found in the pkg-config search path.

I have tried installing using the following command
sudo ./configure --enable-systemd --enable-elogind --enable-openrc

but I am getting the following message

Package libelogind was not found in the pkg-config search path. Perhaps you should add the directory containing 'libelogind.pc' to the PKG_CONFIG_PATH environment variable No package 'libelogind' found Failed to configure eloginddir
My system has msr-tools installed and the CPU is Core i7-9750H on Ubuntu 18.04, kernel 4.18.20-041820-generic

Warning: MSR and memory values are not equal

Hi there!
What does that message means?

executing: intel-undervolt read, outputs the following:

CPU (0): -128.91 mV
GPU (1): -0.00 mV
CPU Cache (2): -128.91 mV
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

Warning: MSR and memory values are not equal
Short term package power: 45 W, 0.002 s, disabled
Long term package power: 200 W, 28.000 s, enabled

So, i guess everything is working?

Relevant specs:

CPU Model name: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (skylake)
OS: Arch Linux
Kernel: 5.16.9-arch1-1
Intel-undervolt: 1.7-2

Cheers!

Value Not Equal, is the value set?

Hello, Whenever I set the analog IO to other value than -0, it will give value do not equal. Is this mean the configuration failed or it's just error reading. Thanks

Conf file

undervolt 0 'CPU' -93
undervolt 1 'GPU' -103
undervolt 2 'CPU Cache' -125
undervolt 3 'System Agent' -100
undervolt 4 'Analog I/O' -0

result

CPU (0): -92.77 mV
GPU (1): -102.54 mV
CPU Cache (2): -125.00 mV
System Agent (3): Values do not equal
Analog I/O (4): -0.00 mV

Values not applied on start

I am running Linux Manjaro 4.19 and I was wondering how I can automatically start intel-undervolt on start?
I put in the correct values in intel-undervolt.conf, but it doesn't look like these are automatically applied during start.

Operation not permitted

When reading or applying undervolt settings I get operation not permitted
heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ sudo intel-undervolt read CPU (0): Operation not permitted GPU (1): Operation not permitted CPU Cache (2): Operation not permitted System Agent (3): Operation not permitted Analog I/O (4): Operation not permitted heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ sudo intel-undervolt apply CPU (0): Operation not permitted GPU (1): Operation not permitted CPU Cache (2): Operation not permitted System Agent (3): Operation not permitted Analog I/O (4): Operation not permitted
Trying without sudo and I get:
heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ intel-undervolt apply Failed to open MSR device: Permission denied Failed to setup the program heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ intel-undervolt read Failed to open MSR device: Permission denied Failed to setup the program
Not sure what's the issue
Installed as per instructions on Ubuntu 19.10 running on a laptop with an Intel i7-8565U

github lenovo-throttling-fix

There is a different tool on github called lenovo-throttling-fix.
Its doing the same and more. How about joining the effort on that one?

Cant build with proper build flags on Fedora

Version 1.6 builds and works fine but new one 1.7 wont built with default Fedora flags.

gcc -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o intel-undervolt config.o measure.o main.o modes.o power.o scaling.o stat.o undervolt.o util.o -lm
/usr/bin/ld: config.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: measure.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: main.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: modes.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: power.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: scaling.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: stat.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: undervolt.o: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: util.o: relocation R_X86_64_32 against `.bss' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status

T490s - 50^C

For some reason after full load, CPU force frequency to ~1.2Ghz to keep 50^C. The only way to fix this - execute once https://github.com/erpalma/throttled.

Also tjunction is not applied after executing intel-undervolt apply. I.e. the value is the one from the config, but the actual temperature limit is not changed. Throttled somehow managed to change that

Can't execute "systemctl enable --now intel-undervolt-loop.service"

When I try to run systemctl enable --now intel-undervolt-loop.service it returns:

"Synchronizing state of intel-undervolt-loop.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable intel-undervolt-loop
update-rc.d: error: intel-undervolt-loop Default-Start contains no runlevels, aborting."

This seems to result in me being unable to use the service, so only the main command and daemon have any degree of persistence.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.