找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 25863|回复: 120

[红米ax6000] 红米AX6000刷OpenWrt不死ubootmod+刷回官方固件教程

 火.. [复制链接]
发表于 2023-1-16 23:53 | 显示全部楼层 |阅读模式
本帖最后由 lgs2007m 于 2024-3-9 19:02 编辑



MediaTek Filogic 系列路由器串口救砖教程

感谢蝈蝈大佬开发的 mtk_uartboot 工具,暗云大佬提供的教程,这样就可以随便刷砖了
适用系列:MediaTek MT7622、MT7981、MT7986、MT7988 SoC



教程参考OpenWrt官网Installing OpenWrt (ubootmod layout)
感谢HZFrodo大佬向OpenWrt官方源码库提交的pull:uboot-mediatek: add support for Xiaomi Redmi Router AX6000 #11565,OpenWrt官方源码的commit,OpenWrt官方论坛的讨论Add OpenWrt support for Xiaomi “Redmi AX6000”,X-Wrt的ptpt52大佬的刷机教程,有了这些大佬的支持才有这篇刷机分享。

首先OpenWrt官方有过三种分区固件:OpenWrt stock layout、OpenWrt layout和OpenWrt U-Boot layout。OpenWrt stock layout对应保留官方分区刷OpenWrt,我称为stock固件;OpenWrt layout对应的就是hanwckf大佬的不死uboot(ubi 110MB),我称为uboot固件;OpenWrt U-Boot layout对应的是HZFrodo大佬的不死ubootmod(ubi 122.5MB),我称为ubootmod固件。
目前OpenWrt官方只保留了stock固件和ubootmod固件。

我个人喜欢将hanwckf大佬的不死uboot(ubi 110MB)叫uboot,将HZFrodo大佬的不死uboot叫ubootmod(ubi 122.5MB),不知妥当否。
感觉刷hanwckf大佬的不死uboot超级简单,刷HZFrodo大佬的不死ubootmod复杂不少,还要求安装kmod-mtd-rw。
简单总结下我理解的两者的区别,有不对请大佬指正:
hanwckf_uboot:
  • 刷机步骤:只需要解锁SSH刷FIP分区
  • 刷机ubi大小:110MB,ubinfo -a查看实际可用106.5MB
  • 变砖刷固件:直接进uboot webui(Web failsafe UI)刷
  • 开启坏块管理NMBM

HZFrodo_ubootmod:
  • 刷机步骤:解锁SSH刷initramfs-factory.ubi、安装对应内核的kmod-mtd-rw、清除pstore、格式化比关联ubi然后新建2个ubi卷(含recovery则是3个卷)、刷BL2和FIP
  • 刷机ubi大小:122.5MB,ubinfo -a查看实际可用118.6MB(如果ubi含recovery卷,我们可用空间则要减去recovery卷占用空间)
  • 变砖刷固件:通过TFTP自动刷initramfs-recovery.itb进入恢复系统刷,通过recovery卷中保存的initramfs-recovery.itb自动进入恢复系统刷
  • 未开启坏块管理NMBM


我个人觉得还是hanwckf的不死uboot比较简单、好用,我理解的可能不是很透,请大家根据各自情况选择,不喜勿喷。
我的另外一篇刷uboot教程:红米AX6000刷hanwckf大佬的不死uboot+刷回官方固件+TTL使用+编程器救砖教程

刷机有风险,刷ubootmod更加,这个教程只是个人实践的一点总结,测试正常,仅供参考,变砖勿扰!
因为OpenWrt主线刷机基本要替换BL2和uboot,但是他们又没有开启坏块管理NMBM,所以遇到坏块可能有问题
同时也不建议从原厂或者h大开启坏块管理NMBM的uboot再切换不开启的openwrt主线ubootmod,所以不建议使用ubootmod!!!




目录
【1】官方固件、stock固件、uboot固件刷ubootmod
【2】ubootmod的使用及recovery卷的删除添加
【3】ubootmod刷回官方固件、uboot固件
【4】安装加载kmod-mtd-rw



首先注意,刷机过程中除非特别提示,不要随意重启路由器!!以免变砖。
当然,你没刷BL2和FIP之前都可以简单恢复的,官方分区用小米官方救砖工具,hanwckf uboot的直接进webui重新刷。
注意:红米AX6000官方系统支持WAN、LAN切换,可以随意插网线自动识别,但是刷op后WAN口固定是1口(靠近电源插头的那个口),2-4口是LAN口,网线插LAN口才能获取到IP,登录路由器。

目前支持ubootmod固件有OpenWrt官方X-WrtLean源码只支持uboot固件,hanwckf大佬237大佬源码只支持stock和uboot固件。
supes.top在线定制固件源码已更换为hanwckf大佬的闭源源码,并支持uboot。

【1】官方固件、stock固件、uboot固件刷ubootmod
0.准备工作,下载ubootmod刷机文件
OpenWrt官方:mediatek/filogic/
X-Wrt(搜索ax6000):x-wrt.com/rom/
我的云编译OpenWrt:lgs2007m/Actions-OpenWrt/actions

OpenWrt官方固件地址192.168.1.1,无LuCI界面,需要安装kmod-mtd-rw
X-Wrt固件地址192.168.15.1,密码admin,有LuCI界面,需要安装kmod-mtd-rw,正式固件默认未开启SSH密码访问,需要在管理权菜单开启密码验证和允许root用户密码登录
我的云编译OpenWrt固件地址192.168.1.1,有LuCI界面,已集成kmod-mtd-rw
建议下载我的云编译OpenWrt,不用安装kmod-mtd-rw。

下载后并按如下命名,可以直接使用下面的刷机命令。
  1. ax6000-ubootmod-initramfs-factory.ubi
  2. ax6000-ubootmod-initramfs-recovery.itb
  3. ax6000-ubootmod-preloader.bin
  4. ax6000-ubootmod-bl31-uboot.fip
  5. ax6000-ubootmod-squashfs-sysupgrade.itb
复制代码

1. 刷initramfs模式系统
【官方固件】如果你是官方原厂固件,没有解锁SSH,需要先解锁SSH,解锁教程可以参考NormalPeople的,只需要解锁SSH,再关闭开发者模式即可,刷OP不需要固化SSH。
【保姆级教程】红米AX6000永久获取SSH权限(Redmi AX6000)
官方固件解锁SSH后查看分区:
  1. root@XiaoQiang:~# cat /proc/mtd
  2. dev:    size   erasesize  name
  3. mtd0: 08000000 00020000 "spi0.1"
  4. mtd1: 00100000 00020000 "BL2"
  5. mtd2: 00040000 00020000 "Nvram"
  6. mtd3: 00040000 00020000 "Bdata"
  7. mtd4: 00200000 00020000 "Factory"
  8. mtd5: 00200000 00020000 "FIP"
  9. mtd6: 00040000 00020000 "crash"
  10. mtd7: 00040000 00020000 "crash_log"
  11. mtd8: 01e00000 00020000 "ubi"
  12. mtd9: 01e00000 00020000 "ubi1"
  13. mtd10: 03200000 00020000 "overlay"
复制代码

官方分区建议刷机前做好原厂分区备份,备份BL2、Nvram、Bdata、Factory、FIP分区,以便不时之需。
Factory为无线EEPROM分区,很重要,建议备份本机的!其他人的备份是否能用我还不太懂。
Bdata存储着你的SN和MAC,建议备份。
Nvram存储着环境变量,建议备份,其他人的应该也可以启动,不过没试过。
BL2和FIP可以用其他人的,不过也建议备份。

有些分区的作用我还理解不透彻,我个人是全部分区都备份的,包括整个闪存的备份,即mtd0_spi01。凡是先备份,小心驶得万年船~

官方固件和刷保留官方分区的闭源OP stock固件后的mtd序号相同,BL2、Factory、FIP内容不变,Nvram、Bdata设置后内容有变,不过不影响,备份其中一个系统下面的即可,后面都是刷回备份后用小米救砖工具恢复。
不是官方系统或闭源OP的,刷X-Wrt和一些过渡固件的,注意cat /proc/mtd查看分区对应的mtd序号是否一样。
运行dd命令备份分区到tmp文件夹:
  1. dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
  2. dd if=/dev/mtd2 of=/tmp/mtd2_Nvram.bin
  3. dd if=/dev/mtd3 of=/tmp/mtd3_Bdata.bin
  4. dd if=/dev/mtd4 of=/tmp/mtd4_Factory.bin
  5. dd if=/dev/mtd5 of=/tmp/mtd5_FIP.bin
复制代码
然后WinSCP等SCP协议软件登录路由器,打开tmp文件夹,下载到电脑保存好。

备份好分区后,输入cat /proc/cmdline命令查看firmware,检查当前运行的系统在哪个分区:
  1. cat /proc/cmdline
复制代码
例如:
  1. console=ttyS0,115200n1 loglevel=8 firmware=1 uart_en=1
复制代码

设置nvram并刷写initramfs-factory.ubi
上传ax6000-ubootmod-initramfs-factory.ubi到tmp文件夹。
如果firmware=1则当前系统在ubi1,输入下面命令,设置下次从ubi启动并刷写ubi,最后reboot命令重启:
  1. nvram set boot_wait=on
  2. nvram set uart_en=1
  3. nvram set flag_boot_rootfs=0
  4. nvram set flag_last_success=0
  5. nvram set flag_boot_success=1
  6. nvram set flag_try_sys1_failed=0
  7. nvram set flag_try_sys2_failed=0
  8. nvram commit

  9. mtd erase ubi
  10. mtd write /tmp/ax6000-ubootmod-initramfs-factory.ubi ubi
  11. reboot
复制代码

如果firmware=0则当前系统在ubi,输入下面命令,设置下次从ubi1启动并刷写ubi1,最后reboot命令重启:
  1. nvram set boot_wait=on
  2. nvram set uart_en=1
  3. nvram set flag_boot_rootfs=1
  4. nvram set flag_last_success=1
  5. nvram set flag_boot_success=1
  6. nvram set flag_try_sys1_failed=0
  7. nvram set flag_try_sys2_failed=0
  8. nvram commit

  9. mtd erase ubi1
  10. mtd write /tmp/ax6000-ubootmod-initramfs-factory.ubi ubi1
  11. reboot
复制代码

【stock固件】如果你是保留官方分区刷了OpenWrt,即stock固件,需要将ax6000-ubootmod-initramfs-factory.ubi刷到ubi_kernel分区。
注意:如果还没有备份分区建议先备份,切记!!
运行dd命令备份分区到tmp文件夹:
  1. dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
  2. dd if=/dev/mtd2 of=/tmp/mtd2_Nvram.bin
  3. dd if=/dev/mtd3 of=/tmp/mtd3_Bdata.bin
  4. dd if=/dev/mtd4 of=/tmp/mtd4_Factory.bin
  5. dd if=/dev/mtd5 of=/tmp/mtd5_FIP.bin
复制代码
不是闭源OP的,刷X-Wrt和一些过渡固件的,注意cat /proc/mtd查看分区对应的mtd序号是否一样。
然后WinSCP等SCP协议软件登录路由器,打开tmp文件夹,下载到电脑保存好。

备份好之后,上传ax6000-ubootmod-initramfs-factory.ubi文件到tmp文件夹,然后刷写ubi_kernel分区,最后reboot命令重启:
  1. mtd erase ubi_kernel
  2. mtd write /tmp/ax6000-ubootmod-initramfs-factory.ubi ubi_kernel
  3. reboot
复制代码

【uboot固件】如果已刷hanwckf大佬的不死uboot,也可以先备份分区。
运行dd命令备份分区到tmp文件夹:
  1. dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
  2. dd if=/dev/mtd2 of=/tmp/mtd2_Nvram.bin
  3. dd if=/dev/mtd3 of=/tmp/mtd3_Bdata.bin
  4. dd if=/dev/mtd4 of=/tmp/mtd4_Factory.bin
  5. dd if=/dev/mtd5 of=/tmp/mtd5_FIP.bin
复制代码
不是闭源OP的,刷X-Wrt和一些过渡固件的,注意cat /proc/mtd查看分区对应的mtd序号是否一样。
然后WinSCP等SCP协议软件登录路由器,打开tmp文件夹,下载到电脑保存好。

接着可以直接进uboot的webui,直接刷ax6000-ubootmod-initramfs-factory.ubi


2.查看initramfs模式系统ubi分区
重启后进入initramfs模式系统,登录地址openwrt.lan或192.168.1.1(X-Wrt是x-wrt.lan或192.168.15.1)查看分区信息,ubi分区应该mtd5
  1. root@OpenWrt:~# cat /proc/mtd
  2. dev:    size   erasesize  name
  3. mtd0: 00100000 00020000 "BL2"
  4. mtd1: 00040000 00020000 "Nvram"
  5. mtd2: 00040000 00020000 "Bdata"
  6. mtd3: 00200000 00020000 "Factory"
  7. mtd4: 00200000 00020000 "FIP"
  8. mtd5: 07a80000 00020000 "ubi"
复制代码

3.上传四个文件到tmp文件夹
ax6000-ubootmod-initramfs-recovery.itb
ax6000-ubootmod-preloader.bin
ax6000-ubootmod-bl31-uboot.fip
ax6000-ubootmod-squashfs-sysupgrade.itb

4.加载kmod-mtd-rw
使用我的云编译OpenWrt已集成,不需要安装,可以执行命令临时加载kmod-mtd-rw:
  1. insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1
复制代码
此时mtd分区已经解锁了。其他需要安装kmod-mtd-rw的请看最后部分的内容,确定执行insmod加载无报错再进行下一步。

5.清除pstore
输入命令清除pstore中所有可能的崩溃转储,否则ubootmod会引导进入闪存恢复模式或TFTP恢复模式。
  1. rm -f /sys/fs/pstore/*
复制代码

6.格式化并关联ubi然后新建ubootenv卷
输入命令解除关联ubi然后格式化,再绑定ubi,然后新建ubootenv和ubootenv2卷:
  1. ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
  2. ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
  3. ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
复制代码
注意:解除绑定会报错ubidetach: error!: cannot detach "/dev/mtd5" error 19 (No such device),这个没问题,可以忽略。我想是不是实际分区中是没有/dev/mtd5所以解除绑定会报错。

7.【可选】闪存恢复功能
如果不需要ubootmod的闪存恢复功能,可以跳过这步。不用担心,ubootmod的自动TFTP恢复功能始终是开启的。
如果选择闪存恢复功能,需要新建recovery卷,卷的大小按你的initramfs-recovery.itb文件大小设置,比如OpenWrt官方的是8MB左右,recovery卷可以设置10MB,X-Wrt的是15MB左右,可以设置16MB,我的云编译OpenWrt是12左右,可以设置13MB。
这里用的是我云编译OpenWrt。当然这个会占用闪存空间,不想要后期也可以删除这个卷。
  1. ubimkvol /dev/ubi0 -n 2 -N recovery -s 13MiB
  2. ubiupdatevol /dev/ubi0_2 /tmp/ax6000-ubootmod-initramfs-recovery.itb
复制代码
注意:OpenWrt官方的initramfs-recovery.itb没有LuCI界面,如果initramfs模式系统里需要LuCI界面可以用自己编译的或者X-Wrt。

在这里说下如何使用ubootmod的TFTP恢复和闪存恢复,以便帮助大家选择是否需要闪存恢复功能。
首先刷好ubootmod之后,如果变砖了,可以按RESET键上电(经观察TTL输出需要上电2秒内按RESET才有效),按住5秒即可,然后ubootmod会进入自动TFTP恢复模式。
会从电脑的TFTP服务器获取initramfs-recovery.itb文件并启动进入initramfs模式系统,然后就可以刷固件或者其他操作了。
如果没有从TFTP服务器获取到对应文件,会进入闪存恢复模式,读取ubi的recovery卷中保存initramfs-recovery.itb,然后进入initramfs模式系统。

有闪存恢复功能可以不用TFTP恢复,但是占用一些闪存空间。如果不觉得开启TFTP麻烦,可以不要这个闪存恢复功能,能节约一些空间。

8.刷preloader和ubootmod
  1. md5sum /tmp/ax6000-ubootmod-preloader.bin
  2. mtd erase BL2
  3. mtd write /tmp/ax6000-ubootmod-preloader.bin BL2
  4. mtd verify /tmp/ax6000-ubootmod-preloader.bin BL2

  5. md5sum /tmp/ax6000-ubootmod-bl31-uboot.fip
  6. mtd erase FIP
  7. mtd write /tmp/ax6000-ubootmod-bl31-uboot.fip FIP
  8. mtd verify /tmp/ax6000-ubootmod-bl31-uboot.fip FIP
复制代码
注意查看上传的两个文件md5并和本地文件对比,查看两次mtd verify最后是否输出输出Success,没问题才可进行下一步。
因为是临时加载kmod-mtd-rw,如果提示Could not open mtd device,需要再加载一次kmod-mtd-rw。

刷ubootmod已经完成!!

9.更新系统
输入命令更新系统,或者直接在web更新也可,更新后会自动重启。
  1. sysupgrade -n /tmp/ax6000-ubootmod-squashfs-sysupgrade.itb
复制代码
注意:OpenWrt官方的sysupgrade.itb没有LuCI界面,如果需要LuCI界面可以用自己编译的或者X-Wrt,或者重启联网后命令安装。
  1. opkg update && opkg install luci
复制代码


注意:红米AX6000官方系统支持WAN、LAN切换,可以随意插网线自动识别,但是刷op后WAN口固定是1口(靠近电源插头的那个口),2-4口是LAN口,网线插LAN口才能获取到IP,登录路由器。

更新系统重启后,查看分区信息是这样的:
  1. root@OpenWrt:~# cat /proc/mtd
  2. dev:    size   erasesize  name
  3. mtd0: 00100000 00020000 "BL2"
  4. mtd1: 00040000 00020000 "Nvram"
  5. mtd2: 00040000 00020000 "Bdata"
  6. mtd3: 00200000 00020000 "Factory"
  7. mtd4: 00200000 00020000 "FIP"
  8. mtd5: 07a80000 00020000 "ubi"
  9. root@OpenWrt:~# cat /proc/partitions
  10. major minor  #blocks  name

  11.   31        0       1024 mtdblock0
  12.   31        1        256 mtdblock1
  13.   31        2        256 mtdblock2
  14.   31        3       2048 mtdblock3
  15.   31        4       2048 mtdblock4
  16.   31        5     125440 mtdblock5
  17. 254        0      15128 ubiblock0_3
  18. 259        0       9920 ubiblock0_3p1
  19. root@OpenWrt:~# ubinfo -a
  20. UBI version:                    1
  21. Count of UBI devices:           1
  22. UBI control device major/minor: 10:127
  23. Present UBI devices:            ubi0

  24. ubi0
  25. Volumes count:                           5
  26. Logical eraseblock size:                 126976 bytes, 124.0 KiB
  27. Total amount of logical eraseblocks:     980 (124436480 bytes, 118.6 MiB)
  28. Amount of available logical eraseblocks: 0 (0 bytes)
  29. Maximum count of volumes                 128
  30. Count of bad physical eraseblocks:       0
  31. Count of reserved physical eraseblocks:  20
  32. Current maximum erase counter value:     6
  33. Minimum input/output unit size:          2048 bytes
  34. Character device major/minor:            250:0
  35. Present volumes:                         0, 1, 2, 3, 4

  36. Volume ID:   0 (on ubi0)
  37. Type:        dynamic
  38. Alignment:   1
  39. Size:        2 LEBs (253952 bytes, 248.0 KiB)
  40. State:       OK
  41. Name:        ubootenv
  42. Character device major/minor: 250:1
  43. -----------------------------------
  44. Volume ID:   1 (on ubi0)
  45. Type:        dynamic
  46. Alignment:   1
  47. Size:        2 LEBs (253952 bytes, 248.0 KiB)
  48. State:       OK
  49. Name:        ubootenv2
  50. Character device major/minor: 250:2
  51. -----------------------------------
  52. Volume ID:   2 (on ubi0)
  53. Type:        dynamic
  54. Alignment:   1
  55. Size:        108 LEBs (13713408 bytes, 13.0 MiB)
  56. State:       OK
  57. Name:        recovery
  58. Character device major/minor: 250:3
  59. -----------------------------------
  60. Volume ID:   3 (on ubi0)
  61. Type:        dynamic
  62. Alignment:   1
  63. Size:        122 LEBs (15491072 bytes, 14.7 MiB)
  64. State:       OK
  65. Name:        fit
  66. Character device major/minor: 250:4
  67. -----------------------------------
  68. Volume ID:   4 (on ubi0)
  69. Type:        dynamic
  70. Alignment:   1
  71. Size:        720 LEBs (91422720 bytes, 87.1 MiB)
  72. State:       OK
  73. Name:        rootfs_data
  74. Character device major/minor: 250:5
复制代码

附上uboot固件下的ubinfo -a做对比:
  1. root@ImmortalWrt:~# ubinfo -a
  2. UBI version:                    1
  3. Count of UBI devices:           1
  4. UBI control device major/minor: 10:62
  5. Present UBI devices:            ubi0

  6. ubi0
  7. Volumes count:                           3
  8. Logical eraseblock size:                 126976 bytes, 124.0 KiB
  9. Total amount of logical eraseblocks:     880 (111738880 bytes, 106.5 MiB)
  10. Amount of available logical eraseblocks: 0 (0 bytes)
  11. Maximum count of volumes                 128
  12. Count of bad physical eraseblocks:       0
  13. Count of reserved physical eraseblocks:  19
  14. Current maximum erase counter value:     2
  15. Minimum input/output unit size:          2048 bytes
  16. Character device major/minor:            249:0
  17. Present volumes:                         0, 1, 2

  18. Volume ID:   0 (on ubi0)
  19. Type:        dynamic
  20. Alignment:   1
  21. Size:        27 LEBs (3428352 bytes, 3.2 MiB)
  22. State:       OK
  23. Name:        kernel
  24. Character device major/minor: 249:1
  25. -----------------------------------
  26. Volume ID:   1 (on ubi0)
  27. Type:        dynamic
  28. Alignment:   1
  29. Size:        356 LEBs (45203456 bytes, 43.1 MiB)
  30. State:       OK
  31. Name:        rootfs
  32. Character device major/minor: 249:2
  33. -----------------------------------
  34. Volume ID:   2 (on ubi0)
  35. Type:        dynamic
  36. Alignment:   1
  37. Size:        474 LEBs (60186624 bytes, 57.3 MiB)
  38. State:       OK
  39. Name:        rootfs_data
  40. Character device major/minor: 249:3
复制代码




【2】ubootmod的使用及recovery卷的删除添加
1.ubootmod的使用
根据ubootmod的env环境变量:
ipaddr=192.168.1.1
serverip=192.168.1.254
bootfile=openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-initramfs-recovery.itb
我们可以看到ubootmod启动后,TFTP(路由器)IP是192.168.1.1,TFTP服务器(电脑)IP是192.168.1.254。
上传文件名是openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-initramfs-recovery.itb

首先下载tftp64软件通过TFTP协议上传文件到路由器。
下载解压出软件,将initramfs-recovery.itb文件重命名为openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-initramfs-recovery.itb,然后放到软件根目录下即可。
设置电脑网卡IP:192.168.1.254/24,关闭电脑防火墙!!运行tftpd64软件,选择192.168.1.254的网卡。

路由器按住RESET键上电,按住5秒以上即可,会进入自动TFTP恢复模式,如果电脑端设置了TFTP服务器并且有文件名为openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-initramfs-recovery.itb的文件,会自动上传到路由器,并运行进入initramfs模式系统。
如果没发现TFTP文件,会进读取recovery卷中initramfs-recovery内容进入initramfs模式系统。如果当初没有新建recovery卷,则一直运行自动TFTP恢复模式。
用的是哪个initramfs模式系统,登录地址就是哪个的,比如:OpenWrt官方:openwet.lan或192.168.1.1,X-Wrt:x-wrt.lan或192.168.15.1。

2.recovery卷的删除添加
删除recovery前先备份OpenWrt配置到本地,以便重刷系统后可以恢复。
然后进入initramfs模式系统,查看含recovery卷的ubinfo -a可以看到5个卷:
Volume ID: 0 (on ubi0) Name: ubootenv
Volume ID: 1 (on ubi0) Name: ubootenv2
Volume ID: 2 (on ubi0) Name: recovery
Volume ID: 3 (on ubi0) Name: fit
Volume ID: 4 (on ubi0) Name: rootfs_data
删除ubootenv和ubootenv2卷之后的卷:
  1. ubirmvol /dev/ubi0 -N recovery
  2. ubirmvol /dev/ubi0 -N fit
  3. ubirmvol /dev/ubi0 -N rootfs_data
复制代码
再在initramfs模式系统不保留配置刷sysupgrade固件,系统启动后上传备份配置恢复设置。

想要增加同理,备份配置后进入进入initramfs模式系统,查看不含recovery卷的ubinfo -a可以看到4个卷:
Volume ID: 0 (on ubi0) Name: ubootenv
Volume ID: 1 (on ubi0) Name: ubootenv2
Volume ID: 2 (on ubi0) Name: fit
Volume ID: 3 (on ubi0) Name: rootfs_data
上传ax6000-ubootmod-initramfs-recovery.itb文件到tmp文件夹,删除ubootenv和ubootenv2卷之后的卷,增加recovery卷并更新其内容:
  1. ubirmvol /dev/ubi0 -N fit
  2. ubirmvol /dev/ubi0 -N rootfs_data
  3. ubimkvol /dev/ubi0 -n 2 -N recovery -s 13MiB
  4. ubiupdatevol /dev/ubi0_2 /tmp/ax6000-ubootmod-initramfs-recovery.itb
复制代码
注意recovery卷大小根据自己的initramfs-recovery.itb决定。
再在initramfs模式系统不保留配置刷sysupgrade固件,系统启动后上传备份配置恢复设置。



【3】ubootmod刷回官方固件、uboot固件
已安装kmod-mtd-rw的需要先加载,未安装的可以参考最后部分的内容来安装和加载。
  1. insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1
复制代码
然后上传你的官方固件下备份的BL2和FIP分区(或者uboot固件下备份的BL2或FIP)到tmp文件夹,输入命令刷写。
  1. md5sum /tmp/mtd1_BL2.bin
  2. mtd erase BL2
  3. mtd write /tmp/mtd1_BL2.bin BL2
  4. mtd verify /tmp/mtd1_BL2.bin BL2

  5. md5sum /tmp/mtd5_FIP.bin
  6. mtd erase FIP
  7. mtd write /tmp/mtd5_FIP.bin FIP
  8. mtd verify /tmp/mtd5_FIP.bin FIP
复制代码

【刷回官方系统后】如果恢复的是官方BL2和FIP,可以断电路由器,然后打开小米路由官方修复工具进行修复了。
小米路由官方修复工具 MIWIFIRepairTool.x86.zip
红米AX6000 RB06官方固件 miwifi_rb06_firmware_847e9_1.0.48.bin

网线接路由器和电脑,路由器断电,电脑退出杀毒软件,还有Windows的自带Windows Defender防火墙杀毒,必要时关闭电脑防火墙,打开小米路由修复工具,选择官方的rb06固件,网卡选择当前连接路由器的网卡,点下一步,工具会自动配置网卡IP为192.168.31.100/24,配置好后会显示刷机步骤,然后按住路由器RESET插电开机,大概12秒后等到黄灯闪烁后可以松开RESET,等待小米路由修复工具连接路由器开始上传固件,上传完后会刷机,刷机成功后蓝灯闪烁。等待10秒后重新断电插电即可恢复到官方系统。点击退出小米路由修复工具,网卡会自动恢复自动获取的配置。


【刷回uboot固件后】如果恢复的是uboot下BL2和FIP,则断电重启进入uboot webui刷固件即可。
注意:刷回hanwckf大佬不死uboot后,进入uboot的webui,重新刷固件,第一次刷会失败,可能因为之前ubi关了的是mtd5,现在uboot下ubi关联的是mtd8,所以会出现Failed to attach UBI。刷新192.168.31.1,重新上传刷一次即可。

恢复到官方分区或者uboot 110MB分区后,建议再擦除crash和crash_log分区。
  1. mtd erase crash
  2. mtd erase crash_log
复制代码


官方系统解锁SSH后可以直接擦除,但是重启后SSH会关闭,需要telnet重新打开。
telnet登录用户名root,密码用SN计算得到https://miwifi.dev/ssh,登录telnet后输入命令开SSH:
  1. bdata set boot_wait=on
  2. bdata commit
  3. nvram set ssh_en=1
  4. nvram set telnet_en=1
  5. nvram set uart_en=1
  6. nvram set boot_wait=on
  7. nvram commit
  8. sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
  9. /etc/init.d/dropbear restart
  10. echo -e 'admin\nadmin' | passwd root
复制代码
开SSH后,用户名root,密码admin。开启SSH后你才能通过scp协议上传文件到路由器。

uboot固件如果固件没有装kmod-mtd-rw,需要先安装才能擦除crash和crash_log分区。
可以到软件包中core软件源地址去下载,没mt7986的可以下mt7622的。
例如237大佬闭源固件kernel和kmod-mtd-rw可以下载这里的 18.06-k5.4-SNAPSHOT/targets/mediatek/mt7622/packages/
  1. opkg install /tmp/kernel_5.10.134.ipk
  2. opkg install /tmp/kmod-mtd-rw_5.10.134.ipk
复制代码
安装完最新的之后,加载$(uname -r)要替换为你最新的版本,如5.10.134,再执行命令:
  1. insmod /lib/modules/5.10.134/mtd-rw.ko i_want_a_brick=1
复制代码
为了避免安装kernel影响,擦写后重置下系统。



【4】安装加载kmod-mtd-rw
如果不使用我的OpenWrt云编译,建议下载OpenWrt官方刷机文件时同时下载最新的kmod-mtd-rw。
刷机文件 mediatek/filogic/
最新kmod-mtd-rw在目录最后一个文件夹 mediatek/filogic/kmods/

如果没有和刷机文件一起下载到kmod-mtd-rw,则进入initramfs模式系统后可先设置联网:
大部分固件默认联网模式是DHCP,上级路由网线接电源线旁边那个网口即可。

如果本路由的IP地址段和上级冲突上不了网可以改下IP段:
OpenWrt官网下固件默认没有LuCI界面的,需要SSH登录进行联网设置。
  1. uci set network.lan.ipaddr='192.168.10.1'
  2. uci commit network
  3. /etc/init.d/network restart
复制代码

如果没有上级路由,直接本路由pppoe拨号,输入命令(IP段不冲突可以不改):
  1. #uci set network.lan.ipaddr='192.168.10.1'
  2. uci set network.wan.proto='pppoe'
  3. uci set network.wan.username='宽带账号'
  4. uci set network.wan.password='宽带密码'
  5. uci commit network
  6. /etc/init.d/network restart
复制代码

联网运行opkg命令安装kmod-mtd-rw:
  1. opkg update && opkg install kmod-mtd-rw
复制代码
如果顺利安装完,可以执行命令临时加载kmod-mtd-rw:
  1. insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1
复制代码
$(uname -r)是你的内核版本号如5.15.87

或者先查询内核版本opkg list-installed | grep kernel,到下面网址下载对应内核的kmod-mtd-rw,手动上传安装
mediatek/filogic/kmods/

或者我建议直接下载最新的kernel和kmod-mtd-rw
kernel mediatek/filogic/packages/
kmod-mtd-rw mediatek/filogic/kmods/

上传tmp文件夹,然后直接先安装最新kernel,再安装kmod-mtd-rw,这样基本不会报错:
  1. opkg install /tmp/kernel_5.15.87.ipk
  2. opkg install /tmp/kmod-mtd-rw_5.15.87.ipk
复制代码
安装完最新的之后,加载$(uname -r)要替换为你最新的版本,如5.15.87,再执行命令:
  1. insmod /lib/modules/5.15.87/mtd-rw.ko i_want_a_brick=1
复制代码




评分

参与人数 8恩山币 +10 收起 理由
劍河 + 1 感谢大佬分享,6666
小牛试刀 + 1 整理编辑不易,感谢无私分享。
flamesky80 + 1 感谢你的分享,无论怎样,你都是最无私的人.
ericshehong + 1 大佬,我fork了你的自编译仓库,padavanonl.
娱乐 + 1 开门!查水表、抄煤气表了、抄电表了!!!
Armin1990 + 2 面对这种帖子,我内心复杂,真不知道说什么.
shuishou616 + 1 一看就是觉得高端、大气、上档次!
zixiang5288 + 2 一看就是觉得高端、大气、上档次!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2023-1-17 00:03 | 显示全部楼层
果然是神机
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 00:16 | 显示全部楼层
Nb,大佬,感谢感谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 00:16 | 显示全部楼层
Nb,大佬,感谢感谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 00:40 来自手机 | 显示全部楼层
Nb,大佬,感谢感谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 01:09 | 显示全部楼层
谢谢大佬的教程
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 01:11 | 显示全部楼层
三个字。真麻烦,为了多出10多兆和用开源,这也太折腾了,还是uboot和闭源简单啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 01:55 | 显示全部楼层
太详细了,还是hanwckf的不死uboot比较简单,考虑到官方OP的开源无线性能不太行,我还是选择hanwckf的uboot+闭源固件。

点评

其实237大神的官方布局闭源固件ubi是80M(合并了LAYOUT),完全够用了,AX6000又用不上Docker  详情 回复 发表于 2023-1-22 01:37
的确是闭源的无线性能好一点  详情 回复 发表于 2023-1-18 14:07
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 07:41 | 显示全部楼层
学习一下,谢谢分享。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 10:31 | 显示全部楼层
多谢!学习了。喜欢hanwckf_uboot。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 11:30 | 显示全部楼层
感谢辛苦制作分享,多谢楼主分享,非常不错,此处有你更精彩!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 11:32 | 显示全部楼层
感谢辛苦制作分享,多谢楼主分享,非常不错,此处有你更精彩!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 14:15 | 显示全部楼层
大佬nb,感谢教程!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 15:04 | 显示全部楼层
大佬牛皮,操作这么复杂还是开源驱动OP,估计没几个想尝试的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-17 20:19 | 显示全部楼层
感觉好麻烦复杂。。还是老老实实用110mb。hanwckf的不死uboot比较简单
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-20 04:08

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表