想要便携,于是电力就是个人类绕不过去的障碍。电力存储及集成度(小型化)的突破,将是科技重大的突破。
树莓派设为低功耗模式
以下脚本参数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 顾名思义只注重效率,无论如何一直保持以最大频率运行。