Skip to content

linux 锁定CPU频率#

锁定CPU频率可以帮助提高实时系统的确定性,避免由于频率动态调整引起的延迟抖动。以下是在树莓派上锁定CPU频率的步骤:

1. 安装 cpufrequtils 工具#

首先,安装 cpufrequtils 工具,这个工具可以用来设置和查看CPU频率。

sudo apt update
sudo apt install cpufrequtils

2. 查看可用的频率和调节器#

查看当前可用的频率和调节器:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

3. 设置CPU频率#

可以手动设置CPU的频率,例如设置为最高频率。假设你查看到的最高频率是 1400000(单位是kHz),你可以设置如下:

sudo cpufreq-set -c 0 -g userspace
sudo cpufreq-set -c 0 -f 1400000
sudo cpufreq-set -c 1 -g userspace
sudo cpufreq-set -c 1 -f 1400000
sudo cpufreq-set -c 2 -g userspace
sudo cpufreq-set -c 2 -f 1400000
sudo cpufreq-set -c 3 -g userspace
sudo cpufreq-set -c 3 -f 1400000

以上命令将每个CPU核心的频率锁定到 1400000 kHz,并使用 userspace 调节器。

4. 配置开机自动锁定频率#

为了确保系统重启后仍然锁定频率,可以在 /etc/rc.local 文件中添加相关命令:

sudo nano /etc/rc.local

exit 0 行之前添加:

for i in 0 1 2 3; do
    cpufreq-set -c $i -g userspace
    cpufreq-set -c $i -f 1400000
done

保存并退出。

5. 验证设置#

重启系统并验证CPU频率是否已锁定:

sudo reboot

重启后,检查CPU频率:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq

应显示设置的频率(例如 1400000 kHz)。

示例:完整的操作步骤#

  1. 安装 cpufrequtils 工具:

    sudo apt update
    sudo apt install cpufrequtils
    
  2. 查看可用的频率和调节器:

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
    
  3. 手动设置CPU频率:

    sudo cpufreq-set -c 0 -g userspace
    sudo cpufreq-set -c 0 -f 1400000
    sudo cpufreq-set -c 1 -g userspace
    sudo cpufreq-set -c 1 -f 1400000
    sudo cpufreq-set -c 2 -g userspace
    sudo cpufreq-set -c 2 -f 1400000
    sudo cpufreq-set -c 3 -g userspace
    sudo cpufreq-set -c 3 -f 1800000
    
  4. 配置开机自动锁定频率:

    sudo nano /etc/rc.local
    

    exit 0 行之前添加:

    for i in 0 1 2 3; do
        cpufreq-set -c $i -g userspace
        cpufreq-set -c $i -f 1400000
    done
    
  5. 重启系统并验证:

    sudo reboot
    

    检查CPU频率:

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
    cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq
    cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq
    cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq
    

通过这些步骤,你可以在树莓派上锁定CPU频率,从而提高实时系统的确定性和性能。