Redmi AX6000 openwrt刷机/救砖

先挖个坑在这
刚买的路由器 没睡醒走串口一通指令下去U-BOOT爆了,现在手上抱着块砖等flash烧录器快递。

开始折腾,首先总结一下现有的资料。
红米AX6000这个型号在中文社区里也有一大堆东西可以参考,这里放几个链接在这
拆机及串口pinout
编程器烧写flash救砖, 是那种仅介绍步骤不讲底层的教程,姑且可以参考。

路由器使用的flash为ESMT F50l1G41LB,SPI NAND Flash, 数据手册链接

flash 包含1024个block,每个block 由64pages组成


image
image

可见整个flash大小为128M+4M,根据数据手册4M是留给ECC用的

openwrt论坛有人分享了dump出来的flash,链接

flash晚点回实验室焊线去刷 这里首先尝试分析一下openwrt官方的刷机教程主要做了什么工作
https://openwrt.org/toh/xiaomi/redmi_ax6000
根据该教程,首先其通过小米内部API启用了root以及ssh等功能,之后向某一个UBI 分区写入了openwrt initramfs。关于UBI以及MTD的介绍可以参考该doc
https://docs.kernel.org/filesystems/ubifs.html

之后boot进入initramfs, 修改了部分uboot env, 并刷写openwrt固件。值得注意的是initramfs分两种,分别是stock layout 以及 ubootmod layout, 分别对应不同的MTD分区。分区区别如下

关于initramfs资料可以参考该doc
https://docs.kernel.org/filesystems/ramfs-rootfs-initramfs.html#what-is-initramfs

Flash 烧录过程记录

我使用的flash烧录工具是淘宝买的CH341土豪金 蛮常见一款 手头买到的这块芯片是WCH CH341B,各种型号差别不算大。

修改CH341输出电平

路由器flash使用电平为3v3,但经过测量ch341使用5v供电,根据数据手册其信号开漏输出,为5v电平,因此首先将其魔改为3v3.

参考这个帖子改两根线就可以了。不同型号间可能有细微差别,用万用表量过再改。

烧录原厂固件

从路由器上拆下来的Flash焊坏了,买了俩新Flash试试…
我这里使用的烧录工具是SNANDer

首先 SNANDer -e 擦除flash, 之后写入。注意NAND flash 必须先擦除后写入…

刷好之后焊回去路由器就能开机了, 之后再按照openwrt官方教程刷机即可

这贴暂时大概就结了,后续有想记录的openwrt配置大概会开新帖

大概可以算一下,用ch341的带宽,传输flash全片大小需要多久…还不包括协议损耗