变砖设置时取消了 LAN 口的桥接,然而又没有打开 WIFI ,所以无法进入路由器。
第一反应先进 Failsafe 还原配置,但是不论是 mtd -r erase rootfs_data 还是 firstboot 都有错误,用不了。
里面 openwrt 的版本是 BB ,发现内核是第三方自己编译的,怕安装 kmod 时出问题,干脆 sysupgrade 到 CC。
到官网找了个 4300 的 sysupgrade 固件。
用 python -m http.server 开个 HTTP 服务器,路由器 wget 下到 /tmp 里,md5sum 校验通过。
sysupgrade openwrt*.bin 出错, 使用sysupgrade --force,变砖。
发现刷的是 TP LINK 的那款 4300。
砖。 修砖进 UBoot ,使用 TFTP 刷正确的固件,传输完成后等了十多分钟,手动重启,无效。
拆开路由器,使用杜邦线接串口到 PL2303 上,接入电脑, sudo screen /dev/ttyUSB0 115200,开机,无限重启。
拔掉 PL2303 ,开机,连接 PL2303, 正常。
重新通过 UBoot 使用 TFTP 刷入固件,传输完成后串口输出显示错误:设备名不符。
本机设备名称为: WNDR4300SW
固件设备名称为: WNDR4300
停止刷机。
SW = SureWest,似乎是一家运营商的曾用名。
Google 后,找到 解决方案。 解决方案使用 十六进制文本编辑器修改固件,在 WNDR4300 后面增加 SW 后缀,再删去 Header 后面的两个 \x00,使 Header 长度不变。
删去文件最后一位的 CRC 校验码,使用脚本重新计算校验码并追加至文件中。
重新 TFTP 刷机,成功。
|