最近,猫棒刷机是一个非常热门的话题,猫棒可以替换光猫,配上合适的2.5G网卡或光口交换机,可以突破千兆上网的限制。为了学习并掌握这项技术,我也是花费了较多的时间,潜入多个刷机群学习技术。自己动手制作了TTL刷机的SFP座子,亲手刷了四个华为MA5671A和4个NOKIA的猫棒,并测试上网成功。现在把自己借鉴学习心得记录下来,供入坑的同学参考。

再次声明,所有知识来自网络,固件也是网友制作发布的。感谢他们的无私奉献,本人只是一个传播者。

刷机方法

  • 编程器刷机。这算是最早期的刷机方法 ,拆下猫棒的ROM,使用用编程器刷机,刷完再焊回主机。
  • 纯TTL刷机。早期用TTL线接上猫棒的的金手指刷机,现在一般都用SFP座子,也算是无损刷机了。
  • 光纤收发器刷机。从光纤收发器SFP座子的2、7针脚引出RX和TX线(NOKIA的猫棒是3、6针脚),接TTL线,控制显示输入,然后利用TFTP工具通过收发器的RJ45接口刷机。
  • SSH刷机。后期的固件都开放了SSH功能,可以直接连接SSH刷机。NOKIA的猫棒原生用这种方法刷机。现在大部分固件在管理界面都提供了固件升级功能。

下面介绍一下我自己用过的刷机方法。

华为MA5671A纯TTL刷机方法

用TTL线接SFP座子,猫棒插SFP座子刷机,这种刷机方法适合那种没开SSH的猫棒。由于使用TTL线传输,每秒几K左右,刷机时间较长,一般要30-60分钟不等。


TTL接线方法

最早的刷机教程出处,来自老外的这篇​​文章​​,里面详细介绍了SFP座子的连线方法。TTL要连接SFP座子的2(TX)、7(RX)、10(GND)和15、16(VCC)。SFP座子保留5根线即可,对应TTL接线需要4根。针脚15、16可以串接在一起。

华为MA5671A、NOKIA猫棒刷机教程_华为MA5671A

USB转TTL工具,推荐使用FT232RL串口模块,也可以使用CH341编程器。

华为MA5671A、NOKIA猫棒刷机教程_猫棒_02

华为MA5671A、NOKIA猫棒刷机教程_华为MA5671A_03

网上有现成的SFP座子可以购买,注意是20针的就行(图片来自网上....)。

华为MA5671A、NOKIA猫棒刷机教程_猫棒_04

把TTL线的塑料端口拆掉,直接加点锡,接上SFP座子的对应针脚,TTL刷机座子就制作好了。下图就是接好的样子(借用群友的图片)。

华为MA5671A、NOKIA猫棒刷机教程_猫棒_05

现在闲鱼上也有别人制作好的刷机座子,包括SFP转TTL、SFP20转DIP20的板子,以及TTL+收发器,焊接手艺不好的可以直接买个现成的。不过还是建议大家多动动手,享受一下折腾的乐趣!

刷机步骤

1、将猫棒插进SFP底座,通过TTL线和连接板接到电脑的USB接口,先对应连好RX,TX,GND(不要连接VCC线)。在电脑上以命令行方式启动enable_x64.exe串口回显程序,如果是Win11系统,进入powershell环境,以".\enable_x64.exe"方式运行命令,将TTL的VCC(3.3V)端接到猫棒的第15、16脚,自动进行串口回显流程。

华为MA5671A、NOKIA猫棒刷机教程_猫棒_06

2、回显程序运行结束后,打开 TeraTerm 软件,点击新建连接,选择串口连接,然后进“设置”>“串口”,将比特率设置为115200。插上VCC线,终端开始接收代码,若接收到的全是乱码,一般是比特率设置不对,或者 RX、TX 线接反,或者SFP 底座虚焊了。

启动后,及时按 Ctrl+C 来中断启动系统,进入命令行输入模式。

华为MA5671A、NOKIA猫棒刷机教程_猫棒_07

3、输入下面的命令,让系统进入文件接受状态:

loadb 0x80800000

华为MA5671A、NOKIA猫棒刷机教程_华为MA5671A_08

4、选择文件->传输->Kermit->发送,选中要刷的固件。注意,不是直接点文件>发送,我就是在这里耽误了几个小时........

华为MA5671A、NOKIA猫棒刷机教程_猫棒_09

5、等文件传输结束以后,及时输入以下命令(30秒以内,否则会自动重启。喝茶的时候还必须盯着屏幕……)。

sf probe 0
sf erase C0000 740000
sf write 80800000 C0000 740000
setenv committed_image 0
saveenv

6、刷机写入保存完成后,拔下VCC线,再插上,看看启动是否正常。

刷机完成后,可以将猫棒接在交换机、光卡、光纤收发器上,使用默认的192.168.1.10地址进行访问,并设置上网参数。

Nokia猫棒刷机方法

1、准备好原版nokia G-010-S-A猫棒(闲鱼50元一根),插入交换机或收发器sfp接口,注意接口速率需要强制1Gbps。待猫棒启动完成后,使用mobaxterm软件,通过ssh进入系统。用户帐号:ONTUSER/SUGAR2A041。

2、刷机前,运行以下命令,做一下备份,以防不测。

dd if=/dev/mtd0 of=/tmp/mtd0.bin
dd if=/dev/mtd1 of=/tmp/mtd1.bin
dd if=/dev/mtd2 of=/tmp/mtd2.bin
dd if=/dev/mtd8 of=/tmp/mtd8.bin

从设备的/tmp目录,将4个文件备份到本地电脑。

3、刷机

上传固件文件Nokia.bin到/tmp目录,上传完成后,运行以下命令:

mtd -e linux write /tmp/Nokia.bin linux

4、等待上面命令运行完毕后,运行reboot命令重启。刷机后第一次启动时间较长,耐心等待一下。固件默认访问地址:192.168.1.10,用户帐号root/admin123。

TTL+收发器刷机

MA5671A有PIN作为串口的输入输出,可以买个光纤收发器和USB转TTL模块,将收发器SFP座的PIN2(输出)和PIN7(输入)引出并对应连接到TTL的RX/TX端,GND也引出连到TTL的GND端。

然后进行以下操作:

1、配置电脑网卡的静态IP地址为192.168.1.2/255.255.255.0。

2、启动tftpd32程序,服务器接口选本地网络接口,将用于刷机的固件更名为firmware-squashfs.image,复制到tftpd32程序所在目录。

3、TTL连到电脑,网线连接收发器和电脑网口,接通收发器电源。

4、电脑使用命令行方式启动update_x86.exe固件更新程序。

5、将猫棒插入到收发器的SFP接口,程序开始自动进行固件更新流程。

这种方法更新较快,一般3-5分钟即可。可以使用PING程序检测地址192.168.1.10,来查看猫棒的连接情况。

附件:华为MA5671A猫棒设备兼容列表

华为MA5671A、NOKIA猫棒刷机教程_华为MA5671A_10

刷机工具及固件下载地址:

链接:https://pan.baidu.com/s/1s1TUKfDPkmh1szLsqIPfyA?pwd=8888

提取码:8888