标签 BL-RM7620N 下的文章

BL-RM7620N折腾笔记

事情起因是这样的。公司搬家捡垃圾,捡到了一路由器,看网口四根针,确认是百兆的垃圾路由器。本想丢掉,但后面标签写的制造商不太常见,所以捡回来拆了看什么方案。拆开看了眼板号是BL-RM7620N,布线一眼就知MT7620N,但串口上焊了一枚CC2530模组,看起来与Zigbee有关。那我必须登上管理页面看看。

OpenWrt 安全模式

通过自动获取IP,获得了路由器管理页面地址,登上去看到是运行的OpenWrt 14(Barrier Breaker)。尝试使用常见的弱口令登录,发现都登不上。接下来能做的就是清除掉密码啦。

与常见的消费级路由器相比,OpenWrt不能通过长按Rest恢复默认设置(这种自定义固件恢复默认设置后,它的密码可能我也不知道)。经过一番搜索,了解到OpenWrt内置了安全模式(failsafe mode)用于在忘记密码或配置错误后进行恢复,如果编译时不取消掉,默认该模式是提供的。

进入安全模式的方式有两种:在系统的启动过程中按下物理按键不松手、通过串口在系统提示按 f 和 Enter 进入 failsafe mode时输入按键。一旦进入安全模式,OpenWrt会绕过几乎所有的配置,使用192.168.1.1作为IP地址启动必要的服务。然后手动设置计算机IP为192.168.1.2,即可无需密码使用 telnet 连接并修复某些错误。

第一种方式通过按键进入。这很难把握时机,按键过早会进入Bootloader,按键晚了进不去安全模式。笔者试了几次没成功就放弃啦。

第二种方式通过串口进入。把上面的ZigBee模组拆除,暴露串口。通过USB2TTL线连接到计算机,注意只连接GND、TXD、RXD就好,TXD与RXD要交叉连接呦。波特率57600,打开串口,路由器插电开机,没一会儿,串口开始打印SPI Flash分区布局等启动信息,然后就看到了期望的failsafe mode提示信息:

Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level

此时,通过键盘输入 f ,然后按 Enter 键,就会看到 - failsafe - 的提示信息,然后显示BusyBox shell界面,成功进入安全模式。

进入安全模式后,我们需要通过 mount_root 命令重新挂载分区才可以写入配置文件,否则就会提示要修改的文件是Read-only file system。

root@(none):/# mount_root
jffs2 is ready

然后输入 passwd 根据提示两次输入同一密码即可更改密码。

root@(none):/# passwd
Changing password for root
New password:
Retype password:
Password for root changed by root

然后通过 reboot -f 命令重启OpenWrt,即可使用新设置的密码登录。

注:通过 uci get network.lan.ipaddr命令可以获取路由器IP地址配置,通过 mtd -r erase rootfs_data命令可以恢复默认配置。

刷机

登录管理页面后大失所望,Luci的界面干净的很,没有什么好康的。考虑这玩意儿不知道里面有啥东西,打算刷个机丢公司让他继续发热。就用SNR CPE-W4N rev. M的固件,他们PCB、Flash容量一毛一样。

通过密码登录Luci后,直接固件升级新的OpenWrt sysupgrade文件就可以。或者按住RESET键上电在Bootloader里面升级也可以。

# Stable Release 版本下载地址:
https://downloads.openwrt.org/releases/
# Development Snapshot 版本下载地址:
https://downloads.openwrt.org/snapshots/targets/

SSH登录

刷完机发现打不开管理页面了,不慌,SSH上去看看。然后我丢,SSH怎么也上不去,仔细一看,是本地计算机发现对端的验证信息改变了:

C:\Users\Lexsion>ssh root@192.168.1.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

那我们就使用 ssh-keygen -R XXX.XXX.XXX.XXX 把之前缓存的验证信息删除,XXX.XXX.XXX.XXX是对端的IP地址。

C:\Users\Lexsion>ssh-keygen -R 192.168.1.1
# Host 192.168.1.1 found: line 5
C:\Users\Lexsion/.ssh/known_hosts updated.
Original contents retained as C:\Users\Lexsion/.ssh/known_hosts.old

然后我们就成功使用 ssh USERNAME@HOST_IP命令连接路由器的shell。

C:\Users\Lexsion>ssh root@192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxx.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.1' (ED25519) to the list of known hosts.


BusyBox v1.36.1 (2023-12-15 10:44:38 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r24661-a14240d384
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~#

安装LUCI与中文语言包

通过执行 opkg list-installed命令查看已经安装的软件包,发现果然没有Luci,那二话不说,给它WAN口插网线,装一个Luci。

root@OpenWrt:~# opkg update
Downloading https://downloads.openwrt.org/snapshots/targets/ramips/mt7620/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading https://downloads.openwrt.org/snapshots/targets/ramips/mt7620/packages/Packages.sig
Signature check passed.
······
Downloading https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony/Packages.sig
Signature check passed.
root@OpenWrt:~# opkg install luci
Installing luci (git-23.051.66410-a505bb1) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci_git-23.051.66410-a505bb1_all.ipk
······
Configuring ······
······
Configuring luci.

然后网页就有了,登录后发现系统的语言只有英语,那就去system-->Software下搜索zh-cn,下载中文语言包就变成中文啦。