CMCC RAX3000M算力版本20230626刷机

发布于 2025年12月10日

刷机有风险,请谨慎,后果自负。

1、路由器背部查看版本

生产批次是20230626 ,ch ec版本

2、登录路由后台

网线连接电脑和路由器LAN口,浏览器打开 192.168.10.1登录后台。查看一下设备信息

3、导出配置文件

检查是否加密的方法:

查看配置文件是否加密,使用WinHex之类的二进制软件,查看文件开头有Salted__字符串,就是openssl的加盐加密。
或者直接当压缩文件用7z打开,能打开的是不加密的,打不开的一般是加密的,需要到固件代码中找加密命令和密码。

使用Winrar能打开,代表未加密。

4、开启SSH

#1、将配置文件上传到linux系统中解压,修改对应文件,再重新压缩。
#2、解压
tar -zxf cfg_export_config_file.conf
#3. 编辑“etc/config/dropbear”,将“enable”设置为“1”。
vi etc/config/dropbear
#4.编辑“etc/shadow”,更新(删除)root密码:
vi etc/shadow
#确保root那行如下
'root::19523:0:99999:7:::'
#5. 重新打包“etc”目录:
tar -zcf cmcc-rax3000m_emmc_config_file_enable_ssh_nopasswd20230626.conf etc/
#* 如果您发现有关“etc/wireless/mediatek/DBDC_card0.dat”的错误,忽略它即可。
#6. 通过 Web 界面上传新配置,现在您可以 SSH 到 RAX3000M。
#root 密码为空

检查存储类型:
检查设备背面的标签:
“CH EC CMIIT ID: xxxx”是eMMC版本
“CH CMIIT ID: xxxx”是NAND版本

5、备份

SSH 到 RAX3000M,并备份所有内容,尤其是“factory”部分。    (‘data’分区可以忽略,没有用。)

直接复制下面全部命令,粘贴执行即可:

dd if=/dev/mmcblk0boot0 bs=512 count=2048 of=/mnt/mmcblk0p12/boot0_bl2.bin conv=fsync
dd if=/dev/mmcblk0 bs=512 count=34 of=/mnt/mmcblk0p12/mmcblk0_GPT.bin conv=fsync
dd if=/dev/mmcblk0 bs=512 skip=34 count=8158 of=/mnt/mmcblk0p12/mmcblk0_unpartitioned.bin conv=fsync
dd if=/dev/mmcblk0p1 of=/mnt/mmcblk0p12/mmcblk0p1_u-boot-env.bin conv=fsync
dd if=/dev/mmcblk0p2 of=/mnt/mmcblk0p12/mmcblk0p2_factory.bin conv=fsync
dd if=/dev/mmcblk0p3 of=/mnt/mmcblk0p12/mmcblk0p3_fip.bin conv=fsync
dd if=/dev/mmcblk0p4 of=/mnt/mmcblk0p12/mmcblk0p4_kernel.bin conv=fsync
dd if=/dev/mmcblk0p5 of=/mnt/mmcblk0p12/mmcblk0p5_rootfs.bin conv=fsync
dd if=/dev/mmcblk0p6 of=/mnt/mmcblk0p12/mmcblk0p6_kernel2.bin conv=fsync
dd if=/dev/mmcblk0p7 of=/mnt/mmcblk0p12/mmcblk0p7_rootfs2.bin conv=fsync
dd if=/dev/mmcblk0p8 of=/mnt/mmcblk0p12/mmcblk0p8_rootfs_data.bin conv=fsync
dd if=/dev/mmcblk0p9 of=/mnt/mmcblk0p12/mmcblk0p9_plugins.bin conv=fsync
dd if=/dev/mmcblk0p10 of=/mnt/mmcblk0p12/mmcblk0p10_fwk.bin conv=fsync
dd if=/dev/mmcblk0p11 of=/mnt/mmcblk0p12/mmcblk0p11_fwk2.bin conv=fsync
sync

耐心等待执行完成,最后一行sync回车执行即可,注意看最后一个fwk2分区是否备份完成。
然后使用WinSCP之类的软件登录路由器,到/mnt/mmcblk0p12下载下来保存到电脑。
WinScp软件登录路由器,协议SCP,IP 192.168.10.1,端口22,点击高级,高级站点设置-连接 去掉勾选“优化连接缓冲大小”,再点击登录。

6、刷Uboot

RAX3000M算力版的uboot是mt7981_cmcc_rax3000m-emmc-fip_legacy-and-fit_20241007.bin
WinSCp之类的软件上传对应机型的单分区uboot文件到tmp文件夹。
SSH输入命令验证md5:

md5sum /tmp/mt7981_cmcc_*fip*.bin
#2024.10.26版的uboot,是编译输出的fip文件刷入fip分区后的分区备份,所以有2MB大小,md5sum是:
root@RAX3000M:~# md5sum /tmp/mt7981_cmcc_*fip*.bin
26ab5703bc760e5ec1e15815bc583dfd  /tmp/mt7981_cmcc_rax3000m-emmc-fip_legacy-and-fit_20241026.bin
2946aae3df18ee8b3f207ce1aee4fbef  /tmp/mt7981_cmcc_xr30-emmc-fip_legacy-and-fit_20241026.bin

核对上传uboot的md5正常后,输入命令刷写uboot所在的fip分区。
RAX3000M eMMC算力版用这个命令:

dd if=/tmp/mt7981_cmcc_rax3000m-emmc-fip_legacy-and-fit_20241026.bin of=$(blkid -t PARTLABEL=fip -o device) conv=fsync

验证fip分区的md5和刷入文件一样即可,输入命令:

md5sum $(blkid -t PARTLABEL=fip -o device)

RAX3000M eMMC算力版:

root@RAX3000M:~# md5sum $(blkid -t PARTLABEL=fip -o device)
26ab5703bc760e5ec1e15815bc583dfd  /dev/mmcblk0p3

到这里uboot已经刷好了,电脑需要设置ip 192.168.1.2/24,连接网线到路由器lan口,路由上电按reset,等待灯变为蓝色,说明uboot webui已启动,可以松开按钮,浏览器打开192.168.1.1,进uboot刷ImmortalWrt固件,然后接着刷gpt分区表。

7、刷gpt分区

上传你需要rootfs/production大小的gpt分区表文件到路由器/tmp目录,先验证md5:

md5sum /tmp/rax3000m-emmc_xr30-emmc_*gpt.bin
root@ImmortalWrt:~# md5sum /tmp/rax3000m-emmc_xr30-emmc_*gpt.bin
e447f6f88bb8262055a9bd6547ce54df  /tmp/rax3000m-emmc_xr30-emmc_rootfs1024M_production1024M-gpt.bin
fa05fab1fe5fdd08324a9552fd68f312  /tmp/rax3000m-emmc_xr30-emmc_rootfs256M_production256M-gpt.bin
ccfd75bea7d8d2f4d5d75fc2d139cd8a  /tmp/rax3000m-emmc_xr30-emmc_rootfs512M_production512M-gpt.bin

你上传的文件的md5信息和上面对应文件的md5对比,没问题即可。
下面的命令以rootfs/production512M的分区表为例,如果换其他的分区表,只修改if参数中的gpt分区表文件名即可,其他不要改。
第1条dd命令是写入gpt分区表文件到/dev/mmcblk0的前34个扇区
第2条sgdisk命令是用未分配空间新建data分区,-1G代表末尾的1G空间留白,可自行调整
第3条sync命令主要是为了方便多行命令一起复制粘贴执行,不会遗漏上面的命令
接着一起复制下面3条命令,一起粘贴执行:

dd if=/tmp/rax3000m-emmc_xr30-emmc_rootfs512M_production512M-gpt.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
sgdisk -e -n 0:0:-1G -c 0:data -t 0:0FC63DAF-8483-4772-8E79-3D69D8477DE4 -u 0:3C058515-54C3-452F-9B87-7A4F957B5CD1 -p /dev/mmcblk0
sync

建议此时备份下载修改后的分区表,以后有问题进不了系统,可以直接uboot刷这个分区表。
当然重刷分区表后再新建分区也行,一样的。

dd if=/dev/mmcblk0 bs=512 count=34 of=/tmp/mmcblk0_GPT_sgdisk.bin
都没有问题可以断电,按reset上电进uboot刷固件了。

##【刷分区表的一点小提示】##
不建议用diskman磁盘管理修改分区,可能会导致系统不能启动。建议用fdisk、gdisk之类的工具修改分区。
如果不慎修改后系统不能启动,可以进入uboot,浏览器输入 http://192.168.1.1/gpt.html 重新刷正常的gpt分区表即可。

8、刷固件

电脑需要设置ip 192.168.1.2/24,连接网线到路由器lan口,路由上电按reset,等待灯变为蓝色,说明uboot webui已启动,可以松开按钮,浏览器打开192.168.1.1,上传固件刷写成功后绿灯会亮3秒,然后重启。

uboot刷好第三方OP系统后,SSH登录用命令格式化下最后一个data分区。

mkfs.ext4 $(blkid -t PARTLABEL=data -o device)

需要把data分区挂载给docker,则在系统->挂载点菜单,添加挂载点,UUID选择最大那个分区,我的分区表最大分区对应的是mmcblk0p7,输入自定义挂载位置/opt,回车,然后保存,再在外层点保存并应用,最后重启系统即可。
最后检查系统->挂载点菜单,已挂载的文件系统中,挂载点/overlay对应的文件系统:
刷写master开源固件后,/overlay对应的文件系统为/dev/fitrw
刷写23.05开源固件后,/overlay对应的文件系统为/dev/mmcblk0p66
刷写闭源固件后,/overlay对应的文件系统为/dev/loop0
如果没有重新在备份与升级菜单升级下固件,直至有。

直接uboot刷闭源固件(.bin格式Legacy image)或者openwrt、immortalwrt主线master/23.05分支固件(.itb格式FIT image),可以直接启动。
【注意】openwrt、immortalwrt主线master/23.05分支固件(.itb格式FIT image)固件第一次启动有点慢,特别是集成docker的固件,第一次启动可能需要5分钟,耐心等待,后面再启动就快了。

9、相关工具及固件

https://ai.feishu.cn/drive/folder/Wi6af4QWdlKYQKdTg7ZcUd2DnLf?from=from_copylink

10、参考教程

参考文档1:https://github.com/lgs2007m/Actions-OpenWrt

参考文档2:移动RAX3000M 64G EMMC 算力版开启ssh以及刷uboot和刷机教程-OPENWRT专版-恩山无线论坛 - Powered by Discuz!



评论