(摘) 树莓派Pi4的频率

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

想要便携,于是电力就是个人类绕不过去的障碍。电力存储及集成度(小型化)的突破,将是科技重大的突破。

树莓派设为低功耗模式

以下脚本参数1,2,3用于调整CPU模式,r读取CPU模式及频率
不过看起来低功耗模式也在600Mhz,试图设置更低不生效。不知还有其它什么方法可以“省电”
另外,你可以通过 vcgencmd measure_temp 看到它的温度
或者一行的脚本: while true ; do vcgencmd measure_temp ; sleep 1 ; done
看到一个关闭网卡来节电的,非永久生效: sudo iw dev wlan0 set power_save off

#!/bin/bash
#本脚本用于调节CPU电源模式

 #修改电源模式的路径
 path_0=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 path_1=/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
 path_2=/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
 path_3=/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
 freq_0=/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
 freq_1=/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
 freq_2=/sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_cur_freq
 freq_3=/sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq


 #判断权限是否足够
 if [ -w $path_0 ] && [ -w $path_1 ] && [ -w $path_2 ] && [ -w $path_3 ]; then

     #解析输入参数
     case $1 in
          1)
         echo "[Performance] 高性能模式"
         mode=Performance
         ;;
          2)
         echo "[ondemand] 自动调整"
         mode=ondemand
         ;;
          3)
         echo "[powersave] 低功耗模式"
         mode=powersave
         ;;
         -r)
         echo "[CPU 0]" `cat  $path_0` `cat $freq_0`
         echo "[CPU 1]" `cat  $path_1` `cat $freq_1`
         echo "[CPU 2]" `cat  $path_2` `cat $freq_2`
         echo "[CPU 3]" `cat  $path_3` `cat $freq_3`
         exit
         ;;
         -h)
         echo  "输入参数:
         [performance 高性能模式]  1
         [ondemand 自动调整]  2
         [powersave 低功耗模式]  3
         [读取模式 ] -r"
         exit
         ;;
          *)
         echo "Erro: 输入参数错误"
         exit
         ;;
     esac

     #修改电源模式
     echo $mode > $path_0
     echo $mode > $path_1
     echo $mode > $path_2
     echo $mode > $path_3
 else
     echo "Erro: 权限不足"
 fi

据说以下是永久修改模式,但我并不需要,也就没试

查看/ect/init.d/raspi-config

#!/bin/sh
### BEGIN INIT INFO
# Provides:          raspi-config
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S 2 3 4 5
# Default-Stop:
# Short-Description: Switch to ondemand cpu governor (unless shift key is pressed)
# Description:
### END INIT INFO
 
. /lib/lsb/init-functions
 
case "$1" in
  start)
    log_daemon_msg "Checking if shift key is held down"
    if [ -x /usr/sbin/thd ] && timeout 1 thd --dump /dev/input/event* | grep -q "LEFTSHIFT\|RIGHTSHIFT"; then
      printf " Yes. Not enabling ondemand scaling governor"
      log_end_msg 0
    else
      printf " No. Switching to ondemand scaling governor"
      SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      if [ -e $SYS_CPUFREQ_GOVERNOR ]; then
        echo "ondemand" > $SYS_CPUFREQ_GOVERNOR
        echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
        echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
        echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
      fi
      log_end_msg 0
    fi
    ;;
  stop)
    ;;
  restart)
    ;;
  force-reload)
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 3
    ;;
esac

ondemand为按需进行设置频率,这里修改为类似performance保存重启就可以了


另外,可以通过工具来进行一些查看和设置

sudo apt-get install cpufrequtils

频率设置

#cpufreq-set -c CPU号 -f 要设置频率
#例:
cpufreq-set -c 0 -f 1.5GHz  
cpufreq-set -c 1 -f 1.2GHz  
cpufreq-set -c 2 -f 900MHz  

查看频率

sudo cpufreq-info -w -m

调整cpu频率上下限

cpufreq-set -d 频率下限
cpufreq-set -u 频率上限

调整cpu运行模式

cpufreq-set -g

powersave 是无论如何都只会保持最低频率的所谓“省电”模式;
userspace 是自定义频率时的模式,这个是当你设定特定频率时自动转变的;
ondemand 默认模式。一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率;
conservative 保守模式,会自动在频率上下限调整,和ondemand的区别在于它会按需分配频率,而不是一味追求最高频率;
performance 顾名思义只注重效率,无论如何一直保持以最大频率运行。

相关文章