在顺利根据我自己的教程《为兆能M2编译OpenWRT固件,完美支持无线网络和WiFi6》编译出能用WiFi的兆能M2固件后,我的上网体验有了质的飞跃,一度连续运行10天有余无故障。
不过,我还是高兴的太早了:异常随机重启时有发生。近两周,长则2天、短则2小时,机器会在我不经意间自动重启。这种问题严重影响上网体验,尤其是长时间下载挂BT/PT站点的时候。怎么能忍!
幸好我不是孤身一人,这一问题是可以搞定的。恩山论坛网友bieh在《解决和目AX18,兆和m2升级内存后随机重启问题》当中,分享了解决方案——更换CDT。实践证明确实有效。
提示: 本教程也适用于和目AX18。
随机重启何时触发?原因为何?
根据我的测试,随机重启会在以下情况发生:
- 静置机器,如常工作,会有偶发的重启。短则运行2小时就重启,长则2天。
- 运行高负荷操作。例如,在测速网(speedtest.cn)测2次网速后,尝试在LuCI中安装软件包。果不其然发生了重启。
关于机器崩溃的原因及解决思路,bieh在帖子中指路了网友huah0235的详细分析:《2021-12-23 AX3600支持1G内存!解决重启问题。硬改内存的研究》。大致是CDT与内存颗粒不兼容导致重启。
想想确实有可能。我这台兆能M2就是把原有的256MB内存改为1GB,并刷了CDT。但原先刷入的CDT可能暗藏了不兼容的bug,以至于在运行负荷有所提升时就导致崩溃。
对策:重刷CDT
bieh也在原帖中分享了经过大佬适配的新版CDT,修复了偶发崩溃重启的问题。
刷入步骤如下文所示。我用的是Arch Linux,故以Linux平台的操作为例;下述步骤也适用于Msys2与Git for Windows。WinSCP用户请自行搜索使用教程。
第1步:下载CDT
从原帖末尾下载CDT。为方便起见,链接粘贴如下:
下载所得的文件是一个压缩包,里面包含了3种内存规格的CDT,根据你实际安装的内存选择:
cdt-AX18_AX18_1G.bin
cdt-AX18_AX18_2G.bin
cdt-AX18_AX18_512M.bin
第2步:上传CDT
我用的是1GB内存。解压后,使用SCP将它上传到路由器中。假设路由器地址为192.168.1.1。
需要注意的是,L大openwrt-gl-ax1800
仓库编译出的OpenWRT是19.04版,只能使用ssh-rsa
加密算法,所以必须加上-oHostKeyAlgorithms=+ssh-rsa
参数!
1 |
|
第3步:备份现有CDT
为保险起见,最好将当前使用的CDT下载到电脑上。
登录路由器,进入“系统”–>“备份/升级”页面。然后,在下方“备份MTD”内容中,选择分区0:CDT
,单击“备份MTD”即可。
第4步:查看CDT所在的分区编号
用SSH登录路由器,当然也可使用OpenWRT自带的“TTYD终端”(位于顶栏的“系统”中,如果有的话)。
1 |
|
然后运行以下命令,查看CDT在哪个分区:
1 |
|
此时会列出当前系统的分区列表,如下方例子所示。我的兆能M2,其CDT分区位于mtd10
。
1 |
|
第4步:刷入
运行以下命令刷入,此处以我的设备为例。
记得根据自己的情况来改文件名和分区!!!
还有,确认后再刷!!!刷错就会导致机器无法开机!!!
1 |
|
正常情况下应该有以下的提示:
1 |
|
第5步:重启设备
确认无误后,运行以下命令重启,即可生效:
1 |
|
稳定性测试
重启之后,我从bieh的帖子中借鉴了测试机器稳定性、检验是否异常重启的方法:往/tmp
分区上传大文件。
通常需要传足够大的文件,500MB起步。如果CDT存在问题,那么在传输过程中就会自动掉线,随即机器重启。
我的测试方法如下,依然基于Arch Linux,同时适用于Msys2与Git for Windows:
第1步:生成一个足够大的文件
我使用dd
命令生成一个512MB的文件。如果你使用WinSCP,你需要自行找一个500MB以上的文件。
1 |
|
第2步:上传到设备上
我依然使用scp
命令上传。在上传过程中,检查上传进度,看看是否有异常掉线的情况。
1 |
|
实测能正常上传并走完进度,设备没有再异常重启。
值得注意的是,我这台兆能M2的/tmp
分区只有约490MB。虽说进度能走完,但铁定被塞满。建议在测试完毕后及时删除,以免OpenWrt运行不稳定。
后续检验
要进一步检验兆能M2在升级CDT后的稳定性,各位还需要做以下工作:
- 持续7x24小时开机,不定期抽查机器运行时间。如果某一时刻发现运行时间异常短,则说明机器又发生了异常重启,例如,开机10天,运行时间才十几小时。
- 不定期施加负荷,进行网速测试,例如运行Speedtest by Ookla、下载大文件、qBittorrent挂BT/PT等。
特别鸣谢
- 感谢热心读者钟志鹏提供指引。
- 感谢原帖作者biah、huah0235。
- 感谢恩山论坛滑水、狂风等多位前辈对CDT的研究(huah0235提及)。
- 本文作者: 爱拼安小匠
- 本文链接: https://anclark.github.io/2023/07/21/OpenWRT/OpenWRT_ZN-M2_Solve_Random_Reboot/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0(署名-非商用-禁止演绎 3.0) 许可协议。转载请注明出处!