2.4 KiB
PowerTools
Steam Deck power tweaks for power users.
This is generated from the template plugin for the SteamOS Plugin Loader.
Cool, whatever
Yeah, that's fair.
In case you still want some of the functionality, without the nice GUI, here's some equivalent commands.
These should all be run as superuser, i.e. run sudo su
and then run these commands in that.
Enable & Disable CPU threads
Enable: echo 1 > /sys/devices/system/cpu/cpu{cpu_number}/online
where {cpu_number}
is a number from 1 to 7 (inclusive).
Disable: echo 0 > /sys/devices/system/cpu/cpu{cpu_number}/online
where {cpu_number}
is a number from 1 to 7 (inclusive).
NOTE: You cannot enable or disable cpu0, hence why there are only 7 in the range for 8 cpu threads.
Enable & Disable CPU boost
Enable: echo 1 > /sys/devices/system/cpu/cpufreq/boost
enables boost across all threads.
Disable: echo 0 > /sys/devices/system/cpu/cpufreq/boost
disables boost across all threads.
Set CPU frequency
Use cpupower
(usage: cpupower --help
).
This isn't strictly how PowerTools does it, but it's a multi-step process which can involve changing the CPU governor.
All that can be done automatically by cpupower frequency-set --freq {frequency}
where {frequency}
is 1.7G
, 2.4G
or 2.8G
.
Set Fan speed
Enable automatic control: echo 0 > /sys/class/hwmon/hwmon5/recalculate
enables automatic fan control.
Disable automatic control: echo 1 > /sys/class/hwmon/hwmon5/recalculate
disables automatic (temperature-based) fan control and starts using the set fan target instead.
Set the fan speed: echo {rpm} > /sys/class/hwmon/hwmon5/fan1_target
where {rpm}
is the RPM.
Read the actual fan RPM: cat /sys/class/hwmon/hwmon5/fan1_input
gives the fan speed.
NOTE: There's a bug in the fan controller; if you enable automatic fan control it will forget any previously-set target despite it appearing to be set correctly (i.e. cat /sys/class/hwmon/hwmon5/fan1_target
will display the correct value).
When you disable automatic fan control, you will need to set the fan RPM again.
Steam Deck kernel patches
This is how I figured out how the fan stuff works. I've only scratched the surface of what this code allows, I'm sure it has more useful information. https://lkml.org/lkml/2022/2/5/391
License
This is licensed under GNU GPLv3.