现象: 夏天室温30 ℃ 左右时, 路由器经常出现网络无法连接, 重启又正常, 排查过固件问题(刷梅林及官方固件均无法解决, 用梅林固件时没注意温度)

起初一直没有想到是温度过高, 因为前面几年都是正常使用. 官方固件也没有查看温度的地方就一直忽略了.

1. 官方固件查看温度的方式

1.1 写一个脚本,比如 showtemp.sh

console.log('Prism test');
#!/bin/sh
# 1. 一次性把 4 个值读出来(空格分隔)
fanctrl_info=$(
    printf "%s %s %s %s" \
        "$(awk '{print int($1/1000)}' /sys/class/thermal/thermal_zone0/temp)" \
        "$(wl -i $(nvram get wl0_ifname) phy_tempsense | awk '{print int($1/2+20)}')" \
        "$(wl -i $(nvram get wl1_ifname) phy_tempsense | awk '{print int($1/2+20)}')" \
        "$(cat /sys/class/hwmon/hwmon0/pwm1 2>/dev/null || echo 0)"
)
# 2. 用 set 把字符串拆成位置参数,再分别赋值
set -- $fanctrl_info
curr_cpuTemp=$1
curr_coreTmp_2=$2
curr_coreTmp_5=$3
curr_rxData=$4

# 3. 打印
printf "CPU: %s°C   2.4G: %s°C   5G: %s°C   FanPWM: %s\n" \
       "$curr_cpuTemp" "$curr_coreTmp_2" "$curr_coreTmp_5" "$curr_rxData"

1.2 上传到路由器

  1. 路由器系统管理-系统设置-启用ssh-LANonly, 端口自定义
  2. 本地使用ssh命令写入脚本到 /jffs目录
    ssh -p 端口 路由器登陆名@192.168.50.1 "cat > /jffs/showtemp.sh" < 本地路径下/showtemp.sh<br>
    如
    ssh -p 1111 hujinhu@192.168.50.1 "cat > /jffs/showtemp.sh" < Downloads/showtemp.sh

    1.3 执行脚本查看温度

ssh登陆路由器,进入/jffs/目录,执行showtemp.sh

hujinhu@RT-AC86U-FDD0:/jffs# ./showtemp.sh 
CPU: 94°C   2.4G: 58°C   5G: 62°C   FanPWM: 0

此处看到CPU已经超过90度, 网上搜索大概温度范围如下

日常“正常”范围
• 轻载/待机:55 – 70 ℃(室温 25 ℃左右时)
• 中载(5 GHz 高速下载、挂 PT、轻度科学上网):70 – 80 ℃
• 高载(双频满载、USB3.0 硬盘、梅林多插件):80 – 90 ℃ 仍然算常见

2. 降温方案

两种降温方案,外加usb风扇, 或替换原厂导热垫为铜片, 各有优势.

2.1 加风扇

淘宝搜索 USB 5v 小风扇, 一个或两个,都可以根据路由器尺寸选择5cm左右贴在后面, 风向往路由器里面吹,效果更好(风向向外吹,5v小风扇的负压不足以吸出热量) . 缺点是容易进灰.并且需要常期运行, (动手能力强的可以加温度感应定时开关风扇,另一个话题了,还不如加铜片方便)

2.2 加散热铜片

参考: https://zhuanlan.zhihu.com/p/419665476

  1. 淘宝网购1.5cm x 1.5cm x 2mm厚的导热铜片, 一管导热硅脂.
  2. 拆机, 撕掉背部中间的贴纸, 拆下两颗螺丝后,用撬板把前壳撬开.
  3. 拆出电路板,拆掉散热片, cpu擦干涂硅脂+ 铜片+硅脂,

    改造后效果:

    CPU: 62°C   2.4G: 56°C   5G: 59°C   FanPWM: 0
    撕开背胶
    拆开前面板,卡扣结构
    右边cpu位置
    擦干涂硅脂
    放铜片,再涂硅脂