在进行固件刷写之前,首先需要备份当前的固件,以确保在操作过程中出现任何问题时可以恢复到原始状态。执行命令时,请确保逐行输入,避免因输入错误导致操作失败。本教程将指导您如何在不拆解设备的情况下,通过telnet登录光猫进行固件备份和刷入。首先,您需要解锁telnet登录功能,以便能够远程访问设备。
查看分区
使用命令 cat /proc/mtd
可以查看设备上的分区信息。输出结果将显示每个分区的设备编号、大小、擦除大小以及分区名称。例如:
/dev/mtd0: 10000000 00020000 "whole flash"
/dev/mtd1: 00300000 00020000 "u-boot"
/dev/mtd2: 00200000 00020000 "others"
/dev/mtd3: 00400000 00020000 "parameter tags"
/dev/mtd4: 00400000 00020000 "wlan"
/dev/mtd5: 00800000 00020000 "usercfg"
/dev/mtd6: 01000000 00020000 "framework"
/dev/mtd7: 01000000 00020000 "framework1"
/dev/mtd8: 00200000 00020000 "dbus"
/dev/mtd9: 03000000 00020000 "kernel1"
/dev/mtd10: 03000000 00020000 "kernel2"
/dev/mtd11: 06800000 00020000 "plugin_data"
/dev/mtd12: 02a60000 00020000 "rootfs1"
/dev/mtd13: 02800000 00020000 "rootfs2"
查看内核分区情况
使用命令 cat /proc/csp/versionstates
可以查看内核分区的情况,包括基址、当前运行的分区代号以及版本状态。例如:
baseaddress : 0x4700000
current : 1
version1states : 0x83
version2states : 0x83
其中,baseaddress
是当前运行的分区在闪存中的起始位置,current
是当前运行的分区代号。
查看当前启动的内核分区
使用命令 fw_flashing
可以查看当前启动的内核分区信息,例如:
baseaddr:4700000, curpdev=/dev/mtd10, offset=0
通过上述命令,您可以判断系统当前启动的内核分区,并将固件写入另一个未被使用的分区,以避免直接覆盖正在运行的内核分区,从而降低写入失败的风险。请根据实际情况选择合适的分区进行操作。
评论已关闭