/SD_Unlocker.c Secret
#include <sys/io.h> | |
void main(){ | |
ioperm(0x72,2,1); | |
outb(0xF7,0x72); | |
outb(0x77,0x73); | |
} |
Heads up, TDP controls don't seem to work using this tool. Thanks for creating it mate!
They didn't work on v114 with SmokelessUMAF either.
However, you can just disable Power throttling and call it a day ¯\_(ツ)_/¯
io.h cannot be found after installing gcc. Any help would be appreciated. Thanks.
Compile it on another machine
Compile it on another machine
Thanks, this was on DietPi which is heavily based off Raspberry Pi OS, which is based off Debian OS. I did try on the Steam Deck itself but it didn't work as gcc wouldn't install at all and I found it was advised not to perform this on the Steam Deck anyway due to limitations.
In the end I didn't want to spend hours on such a simple task so I downloaded some random compiled file from Japan, I wasn't a fan of it but my Steam Deck doesn't store anything confidential anyway and it worked great, a nice -20 undervolt now.
I've mixed thoughts on the gatekeeping of compiled files. I hope it can change in the future, perhaps Valve or AMD could add some further anti bricking steps (wishful thinking I know).
It worked. But when I disabled the power throttling it ignores the manual edited fast and slow tdp
how can I reset it to default?
I have test with BIOS v116 without issues. The two options are enabled.
I have one question.
To undervolt CPU, GPU and SOC on their respective section. What values can I set? Absolut values in mV or just the offset with plus or minus symbols?
@vicpala same question
upd: https://youtu.be/LNEI7BTc87Q?t=648 this explains it
@ASmyrnyi not the same with BIOS v116
I have seen this tutorial before, however with BIOS v116 there are not any option to choose Negative or positive offset, just only exists one field to set a numerical value and I guess should be the absolute value of total Voltage in mV not just a offset with + or - signal
@vicpala didn't know about that, thanks for explaining
The negative and positive offsets are still there for me on 116.
Just bear in mind, that using the unlocked section to set TDP won't work, it will always get capped at 15w.
In order to override that you have to use Smokeless UMAF after unlocking the BIOS using this method.
Just bear in mind, that using the unlocked section to set TDP won't work, it will always get capped at 15w. In order to override that you have to use Smokeless UMAF after unlocking the BIOS using this method.
It works just fine. I've gone to as high as 12W+ on the GPU (and overheating the deck) with this method.
You MUST use Powertools and set both PPT's to 18W, because there is also an "OS" limiter, and the lowest limiter somehow seems to always win.
I do NOT know about windows versions of this.
Remember to set the two PPT's and the global TDP to 18000 in smokeless as well.
If you want absolutely NO throttling, set Power Limiter to "Disabled" but you will gain at most 1-2 FPS from doing this and you will overheat FAST without custom cooling heatsink mods. And on battery power, it will turn off the deck instantly.
If you want to build this on the steam deck, just pacman -Sy glibc
.
It will add the missing includes.
Keep in mind do NOT run that if you are on Main currently.
Main repo packages have updated GLIBC and Plasma so that will wreck running anything due to the GLIBC mismatch.
docker run --name deck-bios-unlock-builder -it --rm -v ./:/src ghcr.io/steamdeckhomebrew/holo-base sh -c "cd /src && gcc -O1 SD_Unlocker.c -o SD_Unlocker"
to build in docker
@parkerlreed ouch, that is an issue. Do you know if there exists up-to-date repositories targeting main?
I hope that one day they switch to something NixOS based.
This kind of in-depth customisations to the OS would become much easier.
This gets linked to a lot. Before you tinker with your steam deck bios, make sure you save a backup and store that off your steam deck. That way you can restore it with a chip programmer if you need to. The command to do so is:
sudo /usr/share/jupiter_bios_updater/h2offt /home/deck/biosbkp.rom -O
Which will store the backup in the file biosbkp.rom in your /home/deck/ folder.
@parkerlreed ouch, that is an issue. Do you know if there exists up-to-date repositories targeting main?
I hope that one day they switch to something NixOS based. This kind of in-depth customisations to the OS would become much easier.
The repos are up to date. It's the actual base rootfs release not synced with the repos. So it's the usual wait of Valve time...
how to rollback?
tdp change not working
compile with
gcc -O1 SD_Unlocker.c -o SD_Unlocker
Run with
sudo ./SD_Unlocker
Boot to Steam Deck OG Bios and Enjoy
@SmokelessCPUv2 is there any way to revert these setting to the default one?
compile with
gcc -O1 SD_Unlocker.c -o SD_Unlocker
Run with
sudo ./SD_Unlocker
Boot to Steam Deck OG Bios and Enjoy@SmokelessCPUv2 is there any way to revert these setting to the default one?
the change go away with a CMOS reset...
or just edit the code to have outb(0x00,0x73); as last line instead of outb(0x77,0x73);
Anyone know if this works on 114?
works on 117
Any news on getting TDP working again?
docker run --name deck-bios-unlock-builder -it --rm -v ./:/src ghcr.io/steamdeckhomebrew/holo-base sh -c "cd /src && gcc -O1 SD_Unlocker.c -o SD_Unlocker"
to build in docker
Works on 116 (F7A0116), built with docker
How do you get SD_Unlocker working in bios 118?
And what exactly is "docker"?
I know nothing about linux. typing this command " docker run --name deck-bios-unlock-builder -it --rm -v ./:/src ghcr.io/steamdeckhomebrew/holo-base sh -c "cd /src && gcc -O1 SD_Unlocker.c -o SD_Unlocker" to build in docker " in the console says "command not found".
The old SD_Unlocker that worked in bios 116 no longer works in .118, and thus smokeless_UMAF doesn't show any menus at all.
Need some help here :(
Caution. Not working on 118.
Yeah I'm trying to find a way to go back to 116.
I may have found a way.
The command posted on this link:
I tried changing the file name here from 0110 to 0116, but it said the file was not found.
sudo /usr/share/jupiter_bios_updater/h2offt /usr/share/jupiter_bios/F7A0110_sign.fd -all
sudo /usr/share/jupiter_bios_updater/h2offt /usr/share/jupiter_bios/F7A0116_sign.fd -all
(file not found, since I was not on the OS that included 116, Main 3.6 and 09182023 was on 118.
So what I did was, I went from the Main channel to Beta candidate, which is still on 3.5 and 09152023.1000, which has BIOS 0116,
then i went to desktop mode and ran this command again.
sudo /usr/share/jupiter_bios_updater/h2offt /usr/share/jupiter_bios/F7A0116_sign.fd -all
Which then flashed the included BIOS and now I'm back on 116.
Just wanted to post this, I am on the main update channel. BIOS 118 just updated on my Deck, and has built in undervolting options. It was noted in the update notes for 3.5, but just now showed up after the BIOS update.
compile with
gcc -O1 SD_Unlocker.c -o SD_Unlocker
Run with
sudo ./SD_Unlocker
Boot to Steam Deck OG Bios and Enjoy
With BIOS 118 this executes, the options no longer appear in the Steam Deck BIOS or via https://github.com/DavidS95/Smokeless_UMAF
118 is available here https://gitlab.com/evlaV/jupiter-hw-support/-/blob/f79ccd15f68e915cc02537854c3b37f1a04be9c3/usr/share/jupiter_bios/F7A0118_sign.fd
If you want to have a look @SmokelessCPUv2
Valve have also integrated their own 'undervolt' options for SOC, GPU and CPU, with a limit of -50 with the form they have in the BIOS, and also they still have the TDP limit on the form of 10000 to 15000.
Hi @SmokelessCPUv2 I uploaded a fw dump from flash (Last fw 118 )
Sorry guys, but I don't plan to play the cat and mouse game with valve
Np dude. Thaks anyway :)
https://www.reddit.com/r/SteamDeck/comments/132ew62/you_can_easily_unlock_the_bios_allowing/?utm_source=share&utm_medium=android_app&utm_name=androidcss&utm_term=1&utm_content=share_button