I'm having problems with an HP laptop with a very limited BIOS setup program.

cpu throttling is working fine but I'd like to change the upper and lower limits to prevent overheating.In Windows it throttles down to something like 2/300MHz and OCs up to about 2.3GHz.I tried editing the following files but I can't overwrite them even as root.

The registers and cache in CPUs use Dynamic memory, which needs to be refreshed , so you can't go below that 800000 or 800 MHz in modern CPUs.You may be able to set the high frequency lower , But I don't know how.

How modern is modern? I'd call this legacy hardware; not exactly antique like my G4 iMac but still, it's like 7++ years old (Win7 was brand new and Vista was still on new PCs).With AMD Catalyst Control Centre and HP's Bundled Win 7 it definitely goes below 800MHz, disables cores and one of the GPUs.It doesn't do that with default Win7 or Win10 (it can't really handle Win10 tbh), only with the HP Win7, but then drivers directly from AMD never worked, only the ones from HP. I have no idea what the clock frequency or multipliers or anything else are as the BIOS program is totally locked down HPware.

Anyhoo thanks for the reply; I'll scour Google some more and hope someone turns up with the answer.

This tells you useful info about your CPU cores.The info we want is the available frequencies, and the available governors.

-g allows you to choose which governor to use.-c selects which core to set. omitting this is the same as selecting the first core (cpu0) and only the first core.-u sets the maximum frequency.-d sets the minimum frequency.

With cpufrequtils installed and the relevant info gathered, these 4 lines dropped into bash one at a time, sets the governor of each core to ondemand and limits them to 1GHz:

# This shell script is to select new maximum cpu speed.# Written by Alyssa.# There is probably much better sh out there so please feel free to improve it.## Notes:# Originally written for Debian 9 AMD64# This script assumes 4 cpus [0-3].# This script assumes cpu throttling is already working.# This script assumes 7 cpu speeds are available in /sys/devices/system/cpu/cpu[0-3]/cpufreq/scaling_available_frequencies# This script does not enable cpu speeds other than those already supported; it is not for over/underclocking or correcting cpu upper or lower limits.## This script requires cpufrequtils and will install it if missing (Debian).

# Notes:# Originally written for Debian 9 AMD64# This script assumes 4 cpus [0-3].# This script assumes cpu throttling is already working.# This script assumes 7 cpu speeds are available in /sys/devices/system/cpu/cpu[0-3]/cpufreq/scaling_available_frequencies# This script does not enable cpu speeds other than those already supported; it is not for over/underclocking or correcting cpu upper or lower limits.## This script requires cpufrequtils and will install it if missing (Debian).

(Some coding styles advocate against placing the variable in front because of the risk of accidentally writing a single =, I consider that bad style, but the curious thing about Bash is that is also has no merit because the single = does the exact same thing).

Well I know you are probably not looking for it, I just find it hard not to comment on the code .