MENU

一次路由器的配置问题排查

April 1, 2018 • 折腾

前言

家里有一台 HiWiFi HC5761 路由器,当年买下它,因为原生系统限制太多,于是刷上 OpenWRT 之后做一些高级一点的事情。目前已购入 4 年之久。

    ASIC 7620_MP
    DRAM component: 1024 Mbits DDR, width 16
    DRAM bus: 16 bit

发现&排查

路由器平时一直不再视线内,这段时间也不是用网的高峰,但今天偶尔发现了,下午路由器无故重启的情况。
我有设置 Crontab,用于定时重启的习惯,但是路由器连续重启多次不停歇,这引起我的好奇。

首先尝试使用 SSH 进入路由器,由于路由器不断重启,导致网络无法稳定连接于路由器,甚至无法进入 SSH 认证。
初步认为,可能存在 FLASH 的 CRC 校验错误,于是使用 TTL 操作。

进入 TTL 后,观察内核日志输出(无关日志已经隐藏)。

procd: Console is alive
procd: - watchdog -
procd: - init complete -
procd: - shutdown -
[  76.610000] Restarting system.

观察到 procd 捕获到了一个 shutdown 的指令,外加 uboot 提示 init 成功的消息。排除由于 FLASH 的 CRC 校验失败的问题。

那么问题就存在与 Linux 系统中了。

此时我们无法继续通过 TTL 来操作设备,因为留给我们的操作时间实在太少。

在 uboot 启动过程中,留下了一个故障模式,提供一个 ReadOnly 的 busybox,遂进入尝试。
进入后经过搜索,发现是 crontab 出了问题,错误配置了如下:

* 2 * * * reboot

原因:由于路由器会因为停电等因素导致时间复位,加上错误的配置 Crontab,使得偶发的在该小时内不断重启。

重启,通过 TTL 进入主系统。之后在短暂的窗口期取消 crontab 的运行,重新配置,问题解决。

Last Modified: January 27, 2021
Archives QR Code
QR Code for this page
Tipping QR Code