|
本帖最后由 kbk2005 于 2023-5-13 01:24 编辑
【2023/04/26更新】
昨天有机会实验了一下本帖回复中有网友提到的“简单”方法,证实不可行。
openwrt下直接用sysupgrade命令升级的系统,路由器自动重启后logo灯会一直闪烁(一般正常工作时logo灯会常亮),电脑连线路由器也获取不到ip地址,说明系统没有正常启动,没法工作。
以下为原始帖:
----------------------------------------------------------------
【总体思路】
需要借助DD-wrt作为中间过渡。
先从Pandorabox/Openwrt(分区1)用mtd命令强刷DD-wrt(分区2),然后从DD-wrt(分区2)用web页面刷原厂固件(分区1),再从原厂固件(分区1)用web页面刷Pandorabox/Openwrt(分区2)。目标达成。
【起因】
前段时间玩EA8500刷机,新手不太懂,两个分区都刷成Openwrt(一个Pandorabox,一个Openwrt,因为原理差不多,所以都当Openwrt来讲)了。经过反复比较,自己倾向的理想状态是:两个分区一个Pandorabox,一个原厂固件。所以需要把一个分区刷回原厂。
一直在网上搜索,能参考的资料不多,比较迷茫,但是又不想拆机TTL方式刷,折腾过一次,太累了。所以一直在钻研。昨天终于试验成功了。特地分享给大家。
【具体步骤】
1. 确定你当前固件Pandorabox/Openwrt所处的分区:
先ssh登录:
然后输入命令:
例如:
root@openwrt:~# fw_printenv boot_part
返回值:boot_part=1
返回结果显示当前使用的固件在第1分区。
2.找到另一固件对应分区的mtd标识:
例如:
root@openwrt:~# cat /proc/mtd
返回值:
dev: size erasesize name
mtd0: 00040000 00020000 "SBL1"
mtd1: 00140000 00020000 "MIBIB"
mtd2: 00140000 00020000 "SBL2"
mtd3: 00280000 00020000 "SBL3"
mtd4: 00120000 00020000 "DDRCONFIG"
mtd5: 00120000 00020000 "SSD"
mtd6: 00280000 00020000 "TZ"
mtd7: 00280000 00020000 "RPM"
mtd8: 00140000 00020000 "art"
mtd9: 00100000 00020000 "APPSBL"
mtd10: 00040000 00020000 "u_env"
mtd11: 00040000 00020000 "s_env"
mtd12: 00040000 00020000 "devinfo"
mtd13: 02800000 00020000 "kernel1"
mtd14: 02400000 00020000 "rootfs1"
mtd15: 02800000 00020000 "kernel2"
mtd16: 02400000 00020000 "rootfs2"
mtd17: 02080000 00020000 "syscfg"
返回结果显示固件1的名称为kernel,固件2的名称为kernel2(或者alt_kernel)。
那么当前固件其实就放在mtd13的“kernel”里,要刷的固件就放在mtd15的“kernel2”(或者“alt_kernel”)里。
3. mtd命令强刷固件到备用分区:
下载这一个固件:EA8500-factory-to-ddwrt.img (注意:.img格式是从其他固件转为DD-WRT的专用固件,后续在DD-WRT的webUI页面使用的固件应该是.bin格式,注意区分)
记得先退出ssh,在本地用scp命令上传固件到路由器/tmp文件夹。
- scp xxx.img root@192.168.1.x:/tmp
复制代码 再使用ssh登录路由器:
接下来使用mtd命令强刷:
- mtd -r write /tmp/xxx.img kernel2
复制代码 接下来正常走进度,路由器会重启,重启后等待一会儿,可进入DD-wrt页面。
4.DD-Wrt刷原厂固件。(使用网页功能就可以做到,此处不赘述。)
刷这个指定固件:EA8500_webrevert.bin
如果刷完固件自动重启后未能进入系统,试试捅一捅Reset小圆孔,持续至少10秒,直至成功并重启。
5.后续原厂固件刷Pandorabox/Openwrt就随意了。(也是使用网页功能就可以做到,此处不赘述。)
切记:如果你想维持其中一个系统为Linksys官方原生固件,那么以后每次刷机只应该在原生系统刷别的固件;例如在Openwrt系统进行的无论factory还是sysupgrade升级都会导致原生固件被覆盖。你又得重复上面的故事。
|
|