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权限

  1. 登录原版固件的web界面,默认是192.168.10.1

    • 账号:user

    • 密码:查看设备背面,每个可能不一样

  2. 进入【主页 -> 更多 -> 管理 -> 配置管理 -> 导出文件】 -> 得到 cfg_export_config_file.conf

  3. 解压加密文件

    • 配置存放路径: /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
    
  4. 取消root密码

    修改/etc/shadow文件

    第一行的

    root:$1$qGTu1wd4$yiAfPwmzssbtVqjln/aXw0:19179:0:99999:7:::
    

    修改为

    root::19179:0:99999:7:::
    

    修改后的效果

  5. 开启ssh服务

    修改etc/config/dropbear文件

  6. 从新打包配置

    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
    
  7. 通过web界面上传新的配置

  8. 使用ssh登录rax3000m,默认ip 192.168.10.1

  9. 这是时候就可以确定是emmc还是nand了

    df -h
    

    查看下大小即可,

  10. 这个设备支持usb3.0,找个空U盘插到设备上,开启下面的就可以访问这个U盘

    image-20240327192616526

    基于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界面,

image-20240327194246666

immortalwrt-23.05.0-mediatek-filogic-cmcc_rax3000m-nand-ubootmod-squashfs-sysupgrade.bin

然后选择自己的内核固件上传即可。

Emmc版本

刷入uboot

网上关于rax3000m的uboot版本主要有下面的三个版本:

  1. OpenWrt官方版本

  2. immortalwrt官方版本

  3. 大神hanwckf基于immortalwrt的定制版本

下面一个一个介绍

OpenWrt版本

该版本的分区信息如下:

![](media/Pasted image 20240228175932.png)

  • 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]

  1. 把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
    
  2. 告诉系统不要把强制只读模式

    echo 0 > /sys/block/mmcblk0boot0/force_ro
    
  3. 烧写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
    
  4. 烧写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

![](media/Pasted image 20240302150128.png)

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

![](media/Pasted image 20240302150153.png)

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

![](media/Pasted image 20240302150316.png)

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

![](media/Pasted image 20240302150402.png)

格式化
 opkg install e2fsprogs 
 mkfs.ext4 /dev/mmcblk0p7

挂载

去web界面找到挂载点挂载即可