硬件
散热器
拣点便宜的就行,大小14*14*6
mm就行
多多上买个便宜的就行
导热膏
涂抹看这建议有条件还是上 7950 下面这个主要是便宜,玩客云用这玩意够了而已。
多多上买个便宜的就行
软件
本文学习自: https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=6728637&page=1&authorid=713426
一、准备工作
如果你全程是按我的教程来的,这步可以跳过
1、查看系统是否已安装cpufrequtils
cpufreq-set -h
如果出现错误提示:cpufreq-set:command not found
2、查看cpu信息,确认cpu的可用频率范围。
cpufreq-info
3、查看CPU支持的调频机制,确定是否支持ondemand。上面的命令也可以查看。
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
备注:
1.powersave 是无论如何都只会保持最低频率的所谓“省电”模式;
2.userspace 是自定义频率时的模式,这个是当你设定特定频率时自动转变的;
3.ondemand 默认模式。一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率;
4.conservative 保守模式,会自动在频率上下限调整,和ondemand的区别在于它会按需分配频率,而不是一味追求最高频率;
5.performance 只注重效率,无论如何一直保持以最大频率运行。
6.schedutil 基于调度程序调整 CPU 频率。
4、查看当前CPU调频机制是否为ondemand
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
#如果不是请设置cpu调频机制为ondemand
cpufreq-set -g ondemand
二、编写cpu-control.sh动态调整主频脚本
nano /usr/sbin/cpu-control.sh
复制下面代码,按 Ctrl+O 然后 Ctrl+X
#!/bin/sh
#脚本功能:每过6秒检测一次,当cpu温度低于42℃时,调整cpu频率为400MHz-1540MHz之间;高于46℃时,调整cpu频率为400MHz-800MHz之间。
#引入i、j变量,防止重复执行调频命令。
i=1 #低温提高主频
j=0 #高温降低主频
while true
do
set -- $(cat /sys/class/thermal/thermal_zone0/temp \
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
TEMP=$1
GOVERNOR=$2
if [ "$TEMP" -le 42000 ] && [ "$GOVERNOR" = "ondemand" ] && [ $i -eq 1 ]; then
cpufreq-set -d 400MHz -u 1540MHz
echo "已升频"
i=0
j=0
fi
if [ "$TEMP" -ge 46000 ] && [ "$GOVERNOR" = "ondemand" ] && [ $j -eq 0 ]; then
cpufreq-set -d 400MHz -u 800MHz
echo "已降频"
i=1
j=1
fi
echo "当前cpu温度:" $(($TEMP / 1000))"℃"
echo $i $j "【提示:1 1处于降频状态;0 0处于升频状态;1 0处于初始状态】"
sleep 6
done
三、测试脚本是否运行正常
进入sbin文件夹
cd /usr/sbin/
给cpu-control.sh文件添加可执行权限
sudo chmod -R 755 cpu-control.sh
运行 cpu-control.sh,按住ctrl+c退出运行
/usr/sbin/cpu-control.sh
在另一个窗口中执行命令,动态查看cpu温度和主频
armbianmonitor -m
如下图测试效果:
ctrl+c 退出运行,结束测试。
四、设置 cpu-control.sh 为开机自启动
nano /lib/systemd/system/cpu-control.service
复制下面的代码:
[Unit]
#服务描述
Description=CPU Governor Control by Temperature
[Service]
#执行命令
Type=simple
ExecStart=/bin/sh /usr/sbin/cpu-control.sh
[Install]
WantedBy=multi-user.target
重载服务
systemctl daemon-reload
使用systemctl命令来控制cpu-control.service
启动
sudo systemctl start cpu-control.service
关闭
sudo systemctl stop cpu-control.service
重启
sudo systemctl restart cpu-control.service
查看状态
sudo systemctl status cpu-control.service
如上图:说明服务正常。
设置开机自动启动
sudo systemctl enable cpu-control.service
关闭开机自动启动
sudo systemctl disable cpu-control.service
查看服务是否开机启动
sudo systemctl is-enabled cpu-control.service