在中国移动 RAX3000M 上使用主线 openwrt 记录
·
sh1marin
- 上电,用网线把路由器 LAN1 和电脑连接。
- 浏览器打开 192.168.10.1,登录账户进入设置,关闭 2.4G WIFI 和 5G WIFI,设置 DHCP。
- 等待重启,然后再次登录,进入 192.168.10.1/#/home/manage/sysLog,点击日志管理,打开日志开关,日志等级设置 DEBUG
- 然后点击配置管理,点击导出文件
- 回到日志管理,ctrl-f 搜索 openssl,找到加密配置文件的命令:
openssl aes-256-cbc -pbkdf2 -k $CmDc#RaX30O0M@!$ -out /tmp/cfg_export_config_file.conf
- 这里
$CmDc
和最后一个$
实际上是会被 bash escape 的,实际密码是#RaX30O0M@!$
。(我怀疑这里是 unintended behaviour,有可能之后的固件他们会发现这个问题,然后给他们 quote 上) - 反过来用 -in 和 -out 来解压下载的 .conf 文件
openssl aes-256-cbc -d -pbkdf2 -k '#RaX30O0M@!$' -in cfg_export_config_file.conf -out cfg_export.tar.gz
,得到一个 gzip 压缩文件。 - 解压
mkdir cfg && tar -zxf cfg_export.tar.gz -C cfg
,在 cfg 文件夹下有个 etc 文件夹。 - 编辑 /etc/shadow 删掉 root 密码,修改成
root::19797:0:99999:7:::
- 编辑 /etc/config/dropbeat ,将 enable 改成
option enable '1'
启动 ssh service。 - 用同样的方式把配置重新打包:
tar -zcf cfg_modified.tar.gz -C cfg etc
,可能会有权限报错,可以不管。 - 然后用同样的方式加密回去
openssl aes-256-cbc -pbkdf2 -k '#RaX30O0M@!$' -in cfg_modified.tar.gz -out cfg_export_config_file_new.conf
。 - 上传,等待它重启完毕之后,尝试 ssh 上去:
ssh [email protected]
- 接下来跟着这个 commit 走。
commit 里面没讲的一些东西
- 所有需要的固件可以在清华源下载到: https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/targets/mediatek/filogic/
- commit 里面有两种 Flash 类型的教程,注意分清楚。Flash 类型可以用
mtdinfo /dev/mtd0
来分辨,清华源里的固件也会标注好固件可用的 Flash 类型。 - Factory 备份: Factory 的具体位置可以
cat /proc/mtd
看,我的版本是 mtd3,那就dd if=/dev/mtd3 of=/tmp/factory.bin
,然后scp -O [email protected]:/tmp/factory.bin .
拉下来备份。 - 包装盒上会写生产批次,如果是生产日期是 1127 之后的,mtd1 可能是只读的,mtd erase BL2 会 fail。 这个时候可以用这个方法来绕过。记得确认一下 md5sum 的值,确定是同个 block。如果这样还不行,那就先刷 immortalwrt,在里面解锁 BL2 分区之后再刷回官方 openwrt。
- FIP 应该暂时没什么影响,正常按照 commit message 教的来刷就好
- tftp server 可以看 archwiki 教的来起,刷进去的固件会尝试从 192.168.1.254 上的 tftp server 拉取
openwrt-mediatek-filogic-cmcc_rax3000m-initramfs-recovery.itb
文件来起 initrd。 可以把电脑直接接到路由器的 LAN1 口上,然后设置本机静态 IP 再起 tftp。 记得用 tftp 的 get 命令测一下确实能拉的下来文件。从清华源下载的固件,丢到 /srv/tftp 前,记得要去掉文件名里面的版本号。 - 用 ip addr add 来设置本机静态 IP 的话,可能会在插拔电的过程中掉线,最好还是持久化。比如我用 NetworkManager,那就用 nm-connection-editor 设置。
- NAND recovery boot 可以不要,20MB 空间还是挺宝贵的
- sysupgrade 是在 openwrt 的 web 操作,把
*-squashfs-sysupgrade.itb
拖进去就行。
最后,感谢 cyyself 带着我走出这一个又一个的坑。