CR88818是中国移动向小米官方专门定制的AX 3000系路由器,在网上有众多的 8806、8808 或者其他型号的刷机教程,但是 8818 这一个特殊型号却少有见闻,但是8818这款型号的路由器在2023之后年的存世量是很大的,我看到闲鱼有专门教刷机教程的,但是整体价格不菲,所以我向你介绍一个,较为安全的一个线刷方案。

介绍

首先我们要明确新版的8818所使用的平台,B 版的 IPQ5018 平台;引导环境内部型号为CR8818 5 GHz 是外接 QCN6122,现有固件是 Qualcomm QSDK 分支(Linux 4.4.60),不是官方主线 OpenWrt 的专用设备支持,当前 OpenWrt 已有 IPQ5018 与 QCN6122 的 ath11k 固件/BDF 支持框架;所以去刷openwrt这个方案是可行的,如果你有时间有精力,我非常推荐你自己去编写openwrt,因为现有的大佬编写的固件会出现很多问题,包括我拥有的两台机器出现了接口反转,网页服务无法正常启动,Boot启动反复停不下来,等各种问题,但是都是可以修复的,而且我所知道的是,8818这个版本有使用不同网卡方案,所以自己编写引导文件和openwrt是一个非常好的选择。但如果你不会编译或者没有时间,可以使用现成的方案。虽然会有一些问题,但都不是太影响,好的,前提说完了,现在我们开始刷机教程,

再次提醒,我们的教程是需要拆机,要使用TTL工具进行刷机的。

准备材料

  • CR8818移动m79主板B版
  • CH340或CH341的USB转TTL
  • 转接用的杜邦线,还有焊接用的设备

1.文件备份

使用xmir-patcher,你可以去查看教程 https://github.com/openwrt-xiaomi/xmir-patcher 首先打开应用,选择1添加地址,输入你路由器的后台地址,基本都是192.168.10.1,按下4,为你的文件做备份,备份的文件会在这个应用的backups文件夹,你可以使用这个文件夹来自行编译自己的 OpenWrt 固件,或者在出现问题的时候进行恢复,虽然这一步没有用,而且这个工具的用途并不是备份,而是用来解锁 SSH,但是我们会使用杜邦线来直接获取最高权限,来进行强刷,所以这一步只是为了做一个保险。

2.连接TTL

我们这个主板是M 79 B版的,TTL接口在主板的下方TTL焊盘接口位置 20230713版的四个焊盘从左到右的位置为: VCCRXGNDTX 分别对应TTL的 VCC:坚决不接! RX:接 TTL 模块的 TX GND:接 TTL 模块的 GND TX:接 TTL 模块的 RX

且一定要保持焊点的接触正常

去下载MobaXterm,点开串口Serial,选择端口并按照我下面所说的配置

  • 串口软件设置

    • 打开 PuTTY / MobaXterm,波特率设为 115200

    • 关闭流控(Flow Control 选 None)

  • 打断 Boot

    • 打开串口终端界面。

    • 先按住键盘空格键或 Enter 键不放

    • 再插上路由器的电源线。

  • 只要接线接触良好,终端就会停在 uboot>IPQ5818# 提示符下,就说明你已经正常打断boot启动了

3.配置文件服务器并刷入大分区

我要在这里提一嘴, 现在我们通过TFTP传输环境来传输文件,目前网上教程是让你刷入大分区文件和引导文件。事实上,引导文件并不能在我们最新版的 CR8818 中正常被激活。这意味着,如果你刷入了引导文件,会出现引导丢失并反复重启的问题。如果你想有一个简单的网页控制界面,我推荐你拿到备份文件后,使用AI自己编写引导文件和网页页面。

好的,这时候我们用网线把路由器和电脑进行相连,将网线连接路由器的 LAN 1 口,进入电脑网卡设置,手动指定 IP:

  • IP 地址192.168.1.1

  • 子网掩码255.255.255.0

  • 默认网关192.168.1.2

准备 TFTP 软件

  • 打开 Tftpd64(或 Tftpd32)软件。

  • Current Directory 中选择存放 MIBIB.bin 的文件夹。

  • Server interfaces 选择刚刚配置好的 192.168.1.1 网卡。

  • 注意:如果 Windows 弹窗询问防火墙权限,一定要勾选允许公用和专用网络。

在 U-Boot 串口中配置网络

在串口终端中,依次输入以下命令配置网络并测试连接:

Bash

# 1. 设置路由器的 IP 地址
setenv ipaddr 192.168.1.2

# 2. 设置电脑(TFTP 服务器)的 IP 地址
setenv serverip 192.168.1.1

# 3. (可选) 查看当前 NAND 分区表名称
smeminfo

注:smeminfo 会列出当前系统的所有分区。你可以看到类似 0:MIBIB0:APPSBL0:APPSBL_1 等名称。

4.刷入大分区文件

填写命令

Bash

tftpboot mibib.bin && flash 0:MIBIB

再次说明,我们的教程和其他教程不一样的是,我们不会再刷 bootloader,因为现在网上所存在的 bootloader 并没有适配 8818 的固件,如果你按照其他教程刷入了 bootloader,那么你很可能会出现 OpenWrt 的网卡丢失现象,并且写刷入大分区的U-Boot,也会存在引导丢失的问题,假如你观看网上的教程,用SSH刷入了大分区uboot,你很大可能会进入重启死循环,如果你直接刷openwrt固件,那么分区太小,完全没有意义,所以我们只推荐用线刷,而且好救回,不会成砖。

Bash

reset
# 重启路由器

并且重启后再次手动打断uboot

现在我们已经做完了刷入openwrt系统前的所有准备。

5.刷入openwrt系统

Bash

# 1. 从 TFTP 下载固件并写入 rootfs 分区(假设文件名是 openwrt.ubi)
tftpboot openwrt.ubi && flash rootfs

# 2. 修改 U-Boot 的启动标志,确保系统从刷入的分区启动
setenv flag_try_sys1_failed 0
setenv flag_try_sys2_failed 0
setenv flag_boot_rootfs 0
setenv flag_last_success 0

# 3. 保存环境变量设置
saveenv

# 4. 重启路由器
reset
  • 等待启动: 在终端输入 reset 后,路由器会自动重启。此时控制台会输出 OpenWrt 内核加载的日志,指示灯通常会转为绿色或蓝色常亮,整个过程大约需要 1 - 2 分钟。

  • 恢复电脑网卡设置: 将电脑网卡的 IPv4 设置改回 自动获取 IP(DHCP)

  • 登录 OpenWrt 界面: 打开浏览器,访问以下常用地址之一:

    • [http://192.168.1.1](http://192.168.1.1)

    • [http://192.168.31.1](http://192.168.31.1)

    默认登录用户名一般为 root,密码为空(或 root )。大功告成!

6.问题说明

我向你提供的openwrt固件是来自 https://github.com/hzyitc/openwrt-redmi-ax3000 里的openwrt-ipq50xx-arm-xiaomi_cr881x-squashfs-nand-factory.ubi ,这个固件比较稳定,推荐使用,但是你可以查询这个项目里的issue,有非常多奇怪的问题,因为有太多不一样的网卡和相关固件,所以还是老话,如果你有能力,自己编写是最好的。

其他教程变砖的问题

  1. 没有 TTL 串口的盲刷用户 很多人是在官方系统的 SSH 下,用脚本命令行直接往 MTD 分区里写入大分区的 mibibappsbl。如果刷入的文件版本与硬件不匹配(例如芯片批次、NAND 闪存品牌不一致),或者 MIBIB 分区表损坏,重启后就会无响应。因为他们没有 TTL 线,无法打断和修复, router 就成了物理意义上的"砖"。

  2. 分区表与固件尺寸不匹配 如果有人刷了大分区的 U-Boot,却拿了一个旧版"小分区"的 OpenWrt .bin 固件刷进去,系统会因为找不到正确的 Kernel / Rootfs 挂载点而陷入循环重启(Bootloop)。

所以使用线刷是安全、稳定、保险的。

如果你根据网上的教程刷入了bootloader所遇到的问题,和解决方法

我们跳过那些使用SSH刷入,最后没有TTL线就放弃的人,如果你和我一样是个犟驴,使用了TTL线刷刷入了bootloader,你可能就会出现一个问题,所有数据链路层的接口端口都没有开放,原因是硬件层面内核没有被跑通,即没有正常引导 Linux 内核, Plaintext

yt9215-smi 90000.mdio:1d: chipid incorrect: ffffffff
yt9215-smi: probe of 90000.mdio:1d failed with error -5

CR8808 的主板在不同批次中使用过 Motorcomm(裕太微)YT8531 / YT9215 以太网芯片。 当前固件的内核驱动在通过 MDIO 总线去读取 PHY 芯片 ID 时,读到了全 f(全空),导致 PHY 驱动加载失败 (failed with error -5)

Plaintext

qca-nss 7a00000.nss: Direct firmware load for qca-nss0.bin failed with error -2

高通 IPQ6000 平台的流量转发高度依赖 NSS 硬件网络加速引擎。固件打包时漏掉了 qca-nss0.bin 固件文件,导致内核的网络数据通道直接断掉掉了。

路由器 CPU 可以向外发包eth1br-lan 的 Transmit packets 都是 15)。 但由于 PHY 驱动报错和 NSS 瘫痪,电脑发给路由器的包被网卡芯片硬生生丢弃了(Receive packets 永远是 0)。

解决的方法也非常简单。就是不要刷入Uboot,执行程序,你可以跟着网上的教程。刷入MIBIB.bin分区表文件用来。

7.相关文件

链接: https://pan.quark.cn/s/a6888ace6b0a