kitsunyan / intel-undervolt

Intel CPU undervolting and throttling configuration tool
GNU General Public License v3.0
916 stars 67 forks source link

Values do not equal & Failed to start undervolt service #43

Open ni-ka opened 4 years ago

ni-ka commented 4 years ago

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
avanisubbiah commented 4 years ago

I'm having this exact same issue even though CPU and CPU Cache are the same value

bugalo commented 4 years ago

I suddenly started to have the same issue. It used to work fine in the past.

bretorton commented 4 years ago

I have the same issue. I just noticed it when checking journalctl logs after a recent Arch update this morning. And while I'm posting this, I want to thank you for the software - it's been super helpful in keeping temps down with a LOT LESS fan noise on a new Dell XPS laptop.

My /etc/intel-undervolt.conf values:

undervolt 0 'CPU' -115.2
undervolt 1 'GPU' -24.4
undervolt 2 'CPU Cache' -115.2
undervolt 3 'System Agent' 0
undervolt 4 'Analog I/O' 0
os: Linux 5.6.4-arch1-1 x86_64
laptop: dell xps 15 7590

cpu: 
vendor_id   : GenuineIntel
cpu family  : 6
model       : 158
model name  : Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
stepping    : 10
microcode   : 0xca
zeev-hch commented 4 years ago

Problem started lately, (on Arch with latest pkgs):

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

bugalo commented 4 years ago

I can confirm this is, in principle, not a bug of intel-undervolt. I am in a Dell XPS laptop. The problem happened right after a BIOS update, which somehow disabled the undervolt with this tool and others. My fix was to enter the BIOS, click on the button "Restore Settings", and choose "Factory Settings". After doing this, intel-undervolt works again. When doing it, some of my BIOS settings were changed, namely disabling fastboot, and GRUB might need to be repaired (I did not, though).

I hope this can help all the other users with the same problem.

bretorton commented 4 years ago

I can confirm this is, in principle, not a bug of intel-undervolt. I am in a Dell XPS laptop. The problem happened right after a BIOS update, which somehow disabled the undervolt with this tool and others. My fix was to enter the BIOS, click on the button "Restore Settings", and choose "Factory Settings". After doing this, intel-undervolt works again. When doing it, some of my BIOS settings were changed, namely disabling fastboot, and GRUB might need to be repaired (I did not, though).

I hope this can help all the other users with the same problem.

I think @bugalo is on to something with the Dell XPS thing, at least for my circumstance. On the exact same software setup on a Sager laptop, intel-undervolt seems fine when I check its systemctl service status. I haven't tried the reset BIOS on the XPS, though I did just go through a firmware update when I was logged into the Windows portion and the intel-undervolt failures could have happened right around that time.

zeev-hch commented 4 years ago

I can now confirm that after downgrading the DELL vostro 7590 bios to 1.5.1 from 1.6.0, all issues are solved and also allows ubuntu 20.04 to work properly.

simo-vt commented 4 years ago

I am using a Dell XPS with Arch Linux, and I had the same issue after the most recent BIOS upgrade:

CPU (0): Values do not equal
GPU (1): Values do not equal

I followed @bugalo's approach to reset the BIOS to factory settings. After I did that, I made sure to follow all requirements for UEFI here: https://wiki.archlinux.org/index.php/Dell_XPS_15_9570#UEFI

intel-undervolt started working after that once again.

bretorton commented 4 years ago

Per @bugalo 's suggestion, I reset my Dell XPS BIOS using the "factory settings" option in the BIOS screen, and intel-undervolt works. I didn't even have to fix UEFI or change back any BIOS settings - everything seems to still work as it did before, just with a downgraded BIOS. If I was smarter and knew how, I'd love to figure out what's in the Dell 1.6.0 BIOS update that broke intel-undervolt. Curious.

garryburch commented 4 years ago

Same here with a xps15 9570 after updating to bios v1.16.2

sebaplaza commented 4 years ago

I confirm, the "bios reset" solution works on a XPS 9570 !

thanks @bugalo !

redthing1 commented 4 years ago

(Writing from an XPS 9570) I can also confirm that the reset to "Factory Settings" resolves the issue with undervolt. Interestingly, even after the reset, it kept my settings for secure boot and AHCI. GRUB worked as expected without any repair; overall it took about two minutes and is a very straightforward fix.

graves501 commented 4 years ago

I can confirm what @xdrie and @bugalo already commented: "Restore Settings", and choose "Factory Settings" worked flawlessly on my XPS 15 9570. Did not need to change anything else and it worked right away. Thanks @bugalo and @xdrie !

Moitaeel commented 4 years ago

I just want to document that Dell is rolling these changes to every product line, to block everyone from undervolting as a mitigation to plundervolt vulnerability on SGX, which sucks if you want other security updates that are bundled together with the undervolt block even though you are not using SGX. It would be reasonable for Dell to provide a way to enable undervolt if you don't use SGX but they didn't.

Jake-Moss commented 4 years ago

Confirmed BIOS reset to factory settings fixes this error on Dell XPS 15 7590.

Eelviny commented 4 years ago

Interesting to hear that Factory Settings works for others on Dell XPS 9570. I'm currently running on Manjaro on BIOS 1.16.2 and this method did not seem to work for me. Currently set as:

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

And results in:

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

MacBook Pro 15' 2019. i7-9750H. The same problem occurs. EDIT: Running Arch Linux.

PgLoLo commented 3 years ago

Any plans to fix this issue?

PgLoLo commented 3 years ago

Is it even fixable?

Delvien commented 3 years ago

I have the same issue, reset bios to factory did not fix. Dell XPS 7590.

paperman199 commented 3 years ago

XPS 9560 on 7700HQ, reset not working, bios ver. 1.20.0

regymm commented 3 years ago

Have you tried downgrading BIOS then reset?

driver-by commented 3 years ago

I had the same issue ("Values do not equal") with my MSI laptop (I have GS75 Stealth 10SFS - i9-10980HK). These BIOS Settings allowed me to change the voltages:

ioExpander commented 3 years ago

Running a Dell XPS 13 9360 here. I also noticed that I'm getting the same error on intel-undervolt. I think this is after my last bios upgrade - but don't remember my previous version. Resetting the bios to factory settings did not help. As for a BIOS downgrade I'm currently wondering if I would rather have the security fixes or the undervolt features. Did anyone figure out a working bios version on a 9360 ? :raised_hands:

Moitaeel commented 3 years ago

Running a Dell XPS 13 9360 here. I also noticed that I'm getting the same error on intel-undervolt. I think this is after my last bios upgrade - but don't remember my previous version. Resetting the bios to factory settings did not help. As for a BIOS downgrade I'm currently wondering if I would rather have the security fixes or the undervolt features. Did anyone figure out a working bios version on a 9360 ? raised_hands

Plundervolt was corrected by the intel security advisory 289, so if you look for that in the BIOS details you may find the one that fixed the issue.

Looking at XPS 9360 drivers, this SA289 update was rolled on October on the 2.14.2 BIOS version. So anything older than that should work. Notice however that 2.14.2 BIOS have critical update bundled with SA289, before downgrading be sure those other updates are not important for you.

oryband commented 3 years ago

side discussion:

ioExpander commented 3 years ago

side discussion:

  • is undervolting now considered a vulnerability? i thought Intel disabled it completely

My understanding from reading @Moitaeel 's message is that to patch a vulnerability on SGX Dell blocked the "API" used to perform the undervolting in the BIOS update. It might be too restrictive (or not...) but it seems that right now you should either get the security fix or the capability to undervolt depending on your BIOS version : https://plundervolt.com/

But then, why does resetting to factory settings work in some cases ?... weird.

Even though the whole thing is a little frustrating for me, it is actually nice to see dell release BIOS updates for my laptop that is more than 4 years old now. Maybe there is a way to patch the vulnerabilty and keep the undervolting capabilities in the BIOS firmware, but that is probably a discussion to continue on Dell's forums. Maybe there's even a thread for this already that we should all join.

grzybu commented 3 years ago

Had the same issue with Dell Vostro 5471 - and BIOS v1.16.0. It turned out the issue accrued after updating to version 1.14 which included fix for INTEL-SA-00317 (CVE-2019-14607) aka plundervolt. Downgrading BIOS to v1.13.0 (and resetting BIOS to Factory defaults) resolved issues with under-volting.

raphtlw commented 3 years ago

Getting the same issue on a Surface Laptop 2 running Arch Linux. Haven't found a fix for this yet so far.

phush0 commented 3 years ago

I am on Razer Blade Studio 2020, I had to modify my bios and program it with hardware programmer to have this feature enabled ... because BIOS is signed

realemx commented 3 years ago

Same issues on Dell XPS 9380. UEFI is on 00.1.12.1. UEFI factory reset has not helped.

If it's related to INTEL-SA-00317 I have to downgrade back to 00.1.9.1 which is kinda more scary than a hotter lap and quicker battery drain. ¯_(ツ)_/¯

If there is a fix without a downgrade, I'd greatly appreciate it.

MilesBHuff commented 3 years ago

Same issue with System76 Oryx Pro 7, which is a shame because it runs extremely hot.

atropos112 commented 3 years ago

Same issue with System76 Oryx Pro 7, which is a shame because it runs extremely hot.

Doesnt system76 have open bios firmware so downgrading is "simple" ?

I have Surface book 2 and I have the exact same issue. Downgrading is not even an option for me sadly as they locked out downgrading with say fwupdmgr, its not allowing me to downgrade as its telling me "Newer version is installed". Is there any other way to undervolt ?

fine2006 commented 3 years ago

Lenovo Ideapas C340, the same issue. Even the critical temperature offset seems to be stuck at -15C when I have set it to be at -35C

MilesBHuff commented 3 years ago

@atropos112

Doesnt system76 have open bios firmware so downgrading is "simple" ?

Yes, but I'd rather not indefinitely run an old BIOS, especially since the "working" BIOS version completely predates the laptop I'm using. There's a request to add a toggle in the BIOS config menu here: https://github.com/system76/firmware-open/issues/201

s10e-g commented 2 years ago

The UEFI factory reset does not help on my XPS15 9560 v1.24.0. Fortunately, disabling the hidden UEFI setting "Overclocking Lock" fixed this issue. You can follow this guide from OpenCore for how to modify hidden UEFI settings. For XPS15 9560 v1.24.0 - 1.26.0, simply boot to the modified GRUB shell and enter command setup_var 0x59C 0x0.

myszkin81 commented 2 years ago

Xiaomi Mi Air i5 8250U. It was working fine, now it doesnt. It is not the matter of bios as the laptop has a very poor one with no options to change. It used to work with this bios settings and now it doesn't. Probably kernel 5.13. or 5.14. cant tell for sure

MilesBHuff commented 2 years ago

@myszkin81 You probably have a recentish Intel microcode that gets applied at boot-time.

spfanning commented 2 years ago

@myszkin81 Do you have msr.allow_writes=on in your kernel commandline?

myszkin81 commented 2 years ago

@myszkin81 You probably have a recentish Intel microcode that gets applied at boot-time.

Yes I do.

@myszkin81 Do you have msr.allow_writes=on in your kernel commandline?

The result is same if I add msr.allow_writes=on or not.

MilesBHuff commented 2 years ago

@myszkin81 You probably have a recentish Intel microcode that gets applied at boot-time.

Yes I do.

Then this is why. Disable that microcode, and see if that resolves your issue.

Barraguesh commented 2 years ago

@myszkin81 You probably have a recentish Intel microcode that gets applied at boot-time.

Yes I do.

Then this is why. Disable that microcode, and see if that resolves your issue.

How do I do that? I have the same laptop as the previous user, but I don't really know how to proceed with this recommendation.

MilesBHuff commented 2 years ago

@myszkin81 You probably have a recentish Intel microcode that gets applied at boot-time.

Yes I do.

Then this is why. Disable that microcode, and see if that resolves your issue.

How do I do that? I have the same laptop as the previous user, but I don't really know how to proceed with this recommendation.

That's between you and Google. It's different on different systems. It would be impossible for me to advise on specifics.

Yury-MonZon commented 2 years ago

Anyone got lucky and managed to undervolt in linux on macbook air (4th gen i7 4560u, Pop Os 21.10)? I'm getting Values do not equal, but setting Critical offset works fine. Strangely, I can do it easily from mac os.

FallingSnow commented 1 year ago

@s10e-g Thanks for pointing me in the right direction. For my XPS 7590 it was setup_var 0x789 0x00.

For anyone trying this method, you don't need to have grub installed. You can just download the latest modded grub release and place it on a usb or your boot partition. Then in the bios add a boot entry to boot into the modGRUBShell.efi. Once there and you have the offset for your bios setting (follow the guides linked by @s10e-g above) you can just do setup_var <offset> 0x00. MAKE SURE you do setup_var <offset> FIRST and get 0x01 otherwise you're probably editing the wrong variable or it's already disabled.

bguerout commented 1 year ago

Thanks @s10e-g and @FallingSnow for your messages.

I found a detailed step-by-step tutorial for those who would like to perform theses actions on XPS 7590 : https://www.reddit.com/r/Dell/comments/fzv599/xps_7590_160_uefi_unlock_undervolting_and_remove/

Background to solution: As of BIOS update 1.6.0, Dell locked out users from undervolting their 7590. As this laptop has a tight thermal profile as it is, removing this feature leads to significant throttling. See more here. The CFG bit has always been locked, leading hackintosh users (such as myself) to use power management workarounds.

Since these problems all stem from the BIOS/BIOS upgrade, the 1.6.0 update was extracted using this Python script, and UEFITool was used to search for "CFG Lock" and "Overclocking Lock". The corresponding PE32 file was extracted, See below:

0x4E1A0 Form: View/Configure CPU Lock Options, FormId: 0x273D {01 86 3D 27 B7 01} 0x4E1A6 One Of: CFG Lock, VarStoreInfo (VarOffset/VarName): 0x6ED, VarStore: 0x1, QuestionId: 0x381, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 B0 03 B1 03 81 03 01 00 ED 06 10 10 00 01 00} 0x4E1B7 One Of Option: Disabled, Value (8 bit): 0x0 {09 07 04 00 00 00 00} 0x4E1BE One Of Option: Enabled, Value (8 bit): 0x1 (default) {09 07 03 00 30 00 01} 0x4E1C5 End One Of {29 02} 0x4E1C7 One Of: Overclocking Lock, VarStoreInfo (VarOffset/VarName): 0x789, VarStore: 0x1, QuestionId: 0x382, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 AC 03 AD 03 82 03 01 00 89 07 10 10 00 01 00} 0x4E1D8 One Of Option: Disabled, Value (8 bit): 0x0 {09 07 04 00 00 00 00} 0x4E1DF One Of Option: Enabled, Value (8 bit): 0x1 (default) {09 07 03 00 30 00 01} 0x4E1E6 End One Of {29 02} As we can see, the UEFI variables encoding for Overclocking Lock and CFG Lock are 0x789 and 0x6ED respectively. These are both set to 0x1 (locked) by default in 1.6.0. The other option, 0x0, encodes for unlocked.

The solution:

Format a USB drive to FAT32 on a GUID partition map.

Make a folder called EFI in the root of the USB

Inside this, make a folder called BOOT

Download this file and place it inside BOOT (updated-link)

Rename this file to bootx64.efi

Boot into the USB drive (spam F12 at the BIOS prompt and select your USB drive)

Once this has loaded, enter setup_var_3 0x789 0x00 to disable overclocking lock

Repeat this with setup_var_3 0x6ED 0x00 to disable CFG lock

Enter reboot to exit and restart your computer

Because setup_var_3 is deprecated, I think you should use setup_var_vs command instead.

Note that you can find the variables adresses yourself by downloading BIOS https://www.dell.com/support/home/fr-fr/product-support/product/xps-15-7590-laptop/drivers and following this guide: https://github.com/dreamwhite/bios-extraction-guide/tree/master/Dell

BTW you should then be exposed to plundervolt vulnerabilities https://plundervolt.com/

webcaptcha commented 1 year ago

@myszkin81 Hi, Have you succeed to fix that error "Values do not equal" I have the same laptop

myszkin81 commented 1 year ago

@webcaptcha No, I didn't. It is said that intel modified their firmware so this no longer works.

talentlessguy commented 1 year ago

Same on Asus OG Zephyrus G16 GU603.

╰─λ sudo intel-undervolt apply
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 is this:


undervolt 0 'CPU' 0
undervolt 1 'GPU' 0
undervolt 2 'CPU Cache' 0
undervolt 3 'System Agent' 0
undervolt 4 'Analog I/O' 0
animanna commented 1 year ago

My MSI Raider GE76 10UH laptop also gave this error. I solved it by entering into the Bios settings and unlocking some options that can be found in this video... https://www.youtube.com/watch?v=JdY6CddXtU0

After setting it, I could apply the configuration. I can't send a screenshot right now but I read what I put into the config.