Since Debian 13, cpufreq is being replaced by cpupower. Don't mix using power-profiles-daemon and linux-cpupower. I prefer to use linux-cpupower.
Install
# apt-get install linux-cpupower
Show available frequency
# cpupower frequency-info
analyzing CPU 1:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 1
CPUs which need to have their frequency coordinated by software: 1
maximum transition latency: 4.0 us
hardware limits: 1000 MHz - 2.20 GHz
available frequency steps: 2.20 GHz, 2.00 GHz, 1.80 GHz, 1.60 GHz, 1.30 GHz, 1000 MHz
available cpufreq governors: performance schedutil
current policy: frequency should be within 1000 MHz and 2.20 GHz.
The governor "schedutil" may decide which speed to use
within this range.
current CPU frequency: 1.30 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: no
Boost States: 2
Total States: 8
Pstate-Pb0: 2500MHz (boost state)
Pstate-Pb1: 2400MHz (boost state)
Pstate-P0: 2200MHz
Pstate-P1: 2000MHz
Pstate-P2: 1800MHz
Pstate-P3: 1600MHz
Pstate-P4: 1300MHz
Pstate-P5: 1000MHz
Available frequency steps are: 2.20 GHz, 2.00 GHz, 1.80 GHz, 1.60 GHz, 1.30 GHz, 1000 MHz. Use frequency 1.8 GHz for all core:
# cpupower frequency-set -u 1.80 GHz
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
After applying maximum frequency
# cpupower frequency-info
analyzing CPU 2:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 2
CPUs which need to have their frequency coordinated by software: 2
maximum transition latency: 4.0 us
hardware limits: 1000 MHz - 2.20 GHz
available frequency steps: 2.20 GHz, 2.00 GHz, 1.80 GHz, 1.60 GHz, 1.30 GHz, 1000 MHz
available cpufreq governors: performance schedutil
current policy: frequency should be within 1000 MHz and 1000 MHz.
The governor "schedutil" may decide which speed to use
within this range.
current CPU frequency: 1000 MHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: no
Boost States: 2
Total States: 8
Pstate-Pb0: 2500MHz (boost state)
Pstate-Pb1: 2400MHz (boost state)
Pstate-P0: 2200MHz
Pstate-P1: 2000MHz
Pstate-P2: 1800MHz
Pstate-P3: 1600MHz
Pstate-P4: 1300MHz
Pstate-P5: 1000MHz
To make it persistent, create or edit /etc/systemd/system/cpu-limit.service
[Unit]
Description=Set CPU power management settings# latest state runlevel 3 in SysVinit, let CPU run maximum frequency during starting system services
After=multi-user.target
# run after network ready
#After=network.target
# network may not run
#After=sysinit.target
[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set -u 2.00GHz
#ExecStart=/usr/bin/cpupower frequency-set --max 2.00GHz
#ExecStart=/usr/bin/cpupower frequency-set -g performance
# You can customize the cpupower command here.
# For example, to set to powersave:
# ExecStart=/usr/bin/cpupower frequency-set -g powersave
# Or to set a specific frequency:
# ExecStart=/usr/bin/cpupower frequency-set -f 2.5GHz
[Install]
WantedBy=multi-user.target
Note: you can copy paste and adjust frequency for your laptop/PC.
Change file permission
# chmod 644 /etc/systemd/system/cpu-limit.service
Reload system daemon
# systemctl daemon-reload
# systemctl enable cpu-limit.service
Created symlink '/etc/systemd/system/multi-user.target.wants/cpu-limit.service' → '/etc/systemd/system/cpu-limit.service'.
Everytime your restart this daemon will run time to set maximum frequency.