rax3000m
参见:[rax3000m搞机目录][https://blog.codee.top/rax3000m%E6%90%9E%E6%9C%BA%E7%9B%AE%E5%BD%95/]
注意:rax3000m分为nand版本和emmc版本,无论是哪个本部解锁ssh权限都是同样操作,所以下面先进行解锁ssh。
开放ssh权限
登录原版固件的web界面,默认是192.168.10.1
账号:user
密码:查看设备背面,每个可能不一样
进入【主页 -> 更多 -> 管理 -> 配置管理 -> 导出文件】 -> 得到
cfg_export_config_file.conf解压加密文件
配置存放路径:
/home/book/works/cfg_export_config_file.conf解压后的输出路径:
/home/book/works/rax3000m
cd ~/works # 导出来配置就在该目录下 mkdir rax3000m && cd rax3000m #执行解压 openssl aes-256-cbc -d -pbkdf2 -k $CmDc#RaX30O0M@\!$ -in /home/book/works/cfg_export_config_file.conf -out - | tar -zxvf -
**注意:**如果没有加密,比如以前的设备,就直接解压
tar -xvzf /home/book/works/cfg_export_config_file.conf -C /home/book/works/rax3000m
取消root密码
修改
/etc/shadow文件第一行的
root:$1$qGTu1wd4$yiAfPwmzssbtVqjln/aXw0:19179:0:99999:7:::
修改为
root::19179:0:99999:7:::
修改后的效果

开启ssh服务
修改
etc/config/dropbear文件
从新打包配置
sudo tar -zcvf - etc | openssl aes-256-cbc -pbkdf2 -k $CmDc#RaX30O0M@\!$ -out ../cfg_export_config_file_new.conf
得到新的
cfg_export_config_file_new.conf配置**注意:**如果不是加密版本直接压缩即可
tar -zcvf cfg_export_config_file_new.conf etc
通过web界面上传新的配置
使用ssh登录rax3000m,默认ip 192.168.10.1
这是时候就可以确定是emmc还是nand了
df -h
查看下大小即可,
这个设备支持usb3.0,找个空U盘插到设备上,开启下面的就可以访问这个U盘

基于samba服务的,所以可以在pc上直接访问
下面就是刷机部分,分为nand和emmc不要搞错。
Nand版本
备份原厂固件
首先查看分区信息

**注意:**该步骤不是必须,由于上面插了个U盘,我们直接备份数据到U盘中
dd if=/dev/mtd0 of=/mnt/usb/sda1/mtd0_spi0.0.bin.gz
dd if=/dev/mtd1 of=/mnt/usb/sda1/mtd1_BL2.bin
dd if=/dev/mtd2 of=/mnt/usb/sda1/mtd2_u-boot-env.bin
dd if=/dev/mtd3 of=/mnt/usb/sda1/mtd3_Factory.bin
dd if=/dev/mtd4 of=/mnt/usb/sda1/mtd4_FIP.bin
dd if=/dev/mtd5 of=/mnt/usb/sda1/mtd5_ubi.bin
dd if=/dev/mtd6 of=/mnt/usb/sda1/mtd6_plugins.bin
dd if=/dev/mtd7 of=/mnt/usb/sda1/mtd7_fwk.bin
dd if=/dev/mtd8 of=/mnt/usb/sda1/mtd8_fwk2.bin
备份后数据如下:

刷入uboot
mtd write mt7981_cmcc_rax3000m-fip-fixed-parts.bin FIP
刷入内核
默认ip192.168.1.1,按下RESET按钮,5s左右,指示灯变绿色,松开按钮,pc登录192.168.1.1,可以进入刚刚刷入的uboot 的web界面,

immortalwrt-23.05.0-mediatek-filogic-cmcc_rax3000m-nand-ubootmod-squashfs-sysupgrade.bin
然后选择自己的内核固件上传即可。
Emmc版本
刷入uboot
网上关于rax3000m的uboot版本主要有下面的三个版本:
OpenWrt官方版本
immortalwrt官方版本
大神hanwckf基于immortalwrt的定制版本
下面一个一个介绍
OpenWrt版本
该版本的分区信息如下:

GPT分区:openwrt-mediatek-filogic-cmcc_rax3000m-emmc-gpt.bin
bl2分区:openwrt-mediatek-filogic-cmcc_rax3000m-emmc-preloader.bin
uboot分区:openwrt-mediatek-filogic-cmcc_rax3000m-emmc-bl31-uboot.fip
参见项目[地址][https://github.com/openwrt/openwrt/pull/13513#issue-1909808957]
把openwrt-mediatek-filogic-cmcc_rax3000m-emmc-gpt.bin文件的前17408(512*32)字节写入/dev/mmcblk0 分区,即GPT分区(0~17408)
dd if=openwrt-mediatek-filogic-cmcc_rax3000m-emmc-gpt.bin of=/dev/mmcblk0 bs=512 seek=0 count=34 conv=fsync
告诉系统不要把强制只读模式
echo 0 > /sys/block/mmcblk0boot0/force_ro
烧写bl2分区
dd if=/dev/zero of=/dev/mmcblk0boot0 bs=512 count=8192 conv=fsync dd if=openwrt-mediatek-filogic-cmcc_rax3000m-emmc-preloader.bin of=/dev/mmcblk0boot0 bs=512 conv=fsync
烧写uboot分区
dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=13312 count=8192 conv=fsync dd if=openwrt-mediatek-filogic-cmcc_rax3000m-emmc-bl31-uboot.fip of=/dev/mmcblk0 bs=512 seek=13312 conv=fsync
immortalwrt官方
参见[项目地址][https://github.com/AngelaCooljx/Actions-rax3000m-emmc]
该版本和OpenWrt分区信息一样,只是编译出来的固件名字不一样,uboot阶段支持dhcp
GPT分区:mt7981-cmcc_rax3000m-emmc-gpt.bin
bl2分区:mt7981-cmcc_rax3000m-emmc-bl2.bin
uboot分区(fib):mt7981-cmcc_rax3000m-emmc-fip.bin
dd if=mt7981-cmcc_rax3000m-emmc-gpt.bin of=/dev/mmcblk0 bs=512 seek=0 count=34 conv=fsync
echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=/dev/zero of=/dev/mmcblk0boot0 bs=512 count=8192 conv=fsync
dd if=mt7981-cmcc_rax3000m-emmc-bl2.bin of=/dev/mmcblk0boot0 bs=512 conv=fsync
dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=13312 count=8192 conv=fsync
dd if=mt7981-cmcc_rax3000m-emmc-fip.bin of=/dev/mmcblk0 bs=512 seek=13312 conv=fsync
hanwckf基于immortalwrt的定制版
[项目地址][https://github.com/hanwckf/bl-mt798x]
dd if=/tmp/mt7981_cmcc_rax3000m-emmc-fip.bin of=/dev/mmcblk0p3
sync
注意hanwckf的uboot 没有更新分区表,仅仅更新了uboot分区。所以无法刷入稍微大一点的内核固件,原因是没有更新分区表,由于没有找到于hanwckf的uboot相关的刷分区表命令,不敢乱刷分区表,而是仅仅更新了uboot。
查看分区情况
parted /dev/mmcblk0 print
刷入内核
OpenWrt官方
**注意:**官方版本的固件只能由官方的uboot刷入,和第三方固件不兼容
参考: itb 格式怎么刷? https://www.right.com.cn/forum/thread-8316238-1-1.html
lede官方内核
进uboot刷即可,但是hanwckf的uboot无法刷入稍微大一点的固件(70M左右),40兆左右的固件则可以刷入,是因为刷h大的uboot步骤没有更新分区表,导致了分配给刷固件的空间有限。因此建议刷immortal的uboot。
immortalwrt
挂载剩余分区
刷好固件后,发现有50多G的空间不见了,这是因为分区表变了,有一部分空闲空间未分配,你可以通过cfdisk命令创建新分区
创建分区
opkg update
opkg install cfdisk
cfdisk /dev/mmcblk0
找到最下面的Fress Space,选择New

会自动分配最大内存,然后回车

则创建了一个56.9G大小的新分区,光标移动到Write

然后输入yes,回车,然后键盘按下q退出

格式化
opkg install e2fsprogs
mkfs.ext4 /dev/mmcblk0p7
挂载
去web界面找到挂载点挂载即可