捷稀 JCG Q30 Pro 刷机说明 - 拆机版
TL;DR: 现在已有免拆刷机方案here,以下内容仅供参考,可以不看。
提示
近期出现了一批原厂 512M 内存的 JCG Q30 Pro(非硬改 512M),根据 ImmortalWrt 群友的消息,与 256M 版本刷机步骤完全一致,请放心操作。
原厂固件默认采用移动 DNS,且自带上报插件,刷机似乎是必需的。由天灵 @1715173329 维护的 OpenWrt 分支 ImmortalWrt 已经在 23.05-SNAPSHOT 开始提供了对这款机型,以及其他一些采用 MTK Filogic SoC 设备的支持。
不幸的是,目前并没有免拆机方案。这款机器采用了类似部分安卓手机的 A/B 分区方案,ubi 里有两个 kernel 两个 rootfs 和一个 backup,并且默认不开启 telnet 等连接方式,网页端也暂时没有办法开启。(天灵大佬远程在我机器上调试了一个下午也没搞定,悲)
好消息是,这款机器拆机相对简单,并且固件支持也相对完善,刷机步骤不算太复杂。 237 大佬已经搞定了免拆过渡固件。
目前咸鱼已经买不到这款,据说最近会补货。MT7981 的机器还有很多,不要吊死在一棵树上。囤货涨价的行为没有意义。
正常的互联网连接,可靠的电力供应,避免刷写途中断电。
拆机非常简单,卸下背面四颗螺丝,然后就可以回到正面开始翘了。笔者是从正面左下角入手,然后撬开侧面的卡口。
接下来找到主板正面右上角的 UART 位置。使用插针将其连接到 CH340。通常不需要焊接,稍微给一点压力保持连接即可。
连接方式如下:
然后即可将 CH340 连接到 PC。
接下来打开设备管理器,选择 端口(COM 和 LPT),记下系统给 CH340 分配的 COM 端口号。如下图,为 COM4。
启动
Putty 会启动一个会话,目前是黑屏。现在可以给路由器上电了。
路由器上电后,稍等片刻会出现如下输出:
等待自动进入系统,或者直接回车即可。
此屏幕过后,不断按 F 和回车,直到进入 OpenWrt 的 failsafe 模式,如下图。
输入用户名
执行
接下来,在 PC 上启动一个终端,或者 cmd/powershell。执行如下命令:
然后,在 telnet 中执行如下命令。注意将
结束后会在 cmd/powershell 执行目录获得 mtd0~mtd5 共六个备份文件。保存好以备不时之需。
U-Boot 刷写有两种方法,借助 telnet 连接在原厂系统中直接刷写,或者借助 USB-TTL 串口连接在 U-Boot 中刷写。笔者使用前一种方式。如果您在 U-Boot 中刷写 FIP 遇到问题,请直接使用第一种方式在系统中刷写。
还记得刚开始使用 Putty 时候出现的 U-Boot 启动菜单吗?选择
然后选择
接下来前三项可以默认,第三项修改为我们 U-Boot 的文件名:
输入完文件名后先别急着敲回车。打开系统的网络设置,手动设置 IP 地址:
打开
在
电脑浏览器打开 http://192.168.1.1 ,点击 upload 上传 Factory 固件。注意检查固件 MD5 是否正确。
上传完成后点击
默认用户名
Enjoy.
提示
近期出现了一批原厂 512M 内存的 JCG Q30 Pro(非硬改 512M),根据 ImmortalWrt 群友的消息,与 256M 版本刷机步骤完全一致,请放心操作。
0.背景信息 ~ simple introduction.
JCG Q30 Pro 是一款采用了联发科技 Filogic 820 / MT7981 SoC 的 AX3000 WiFi 6 无线路由器,目前售价相对亲民(100 元左右),性价比较高。原厂固件默认采用移动 DNS,且自带上报插件,刷机似乎是必需的。由天灵 @1715173329 维护的 OpenWrt 分支 ImmortalWrt 已经在 23.05-SNAPSHOT 开始提供了对这款机型,以及其他一些采用 MTK Filogic SoC 设备的支持。
好消息是,
目前咸鱼已经买不到这款,据说最近会补货。MT7981 的机器还有很多,不要吊死在一棵树上。囤货涨价的行为没有意义。
笔者不对任何拆机 & 刷机导致的问题负责。
1. 事先准备 ~ prerequisites.
硬件方面:- 捷稀 JCG Q30 Pro 无线路由器一台 * 1
- DC 5.5 * 2.5mm 12V 电源 * 1(机器附带)
- 适当长度的网线 * 2(机器附带一条,需要自行准备一条)
- CH340 或其他 USB 转串口工具 * 1
- 用于连接路由器和 CH340G 的杜邦线 3,插针 3
- 一台 PC,本文默认以 Windows 进行演示,其他系统的用户请自行寻找替代方案
- 螺丝刀一把,塑料翘片若干,用于拆机
- CH341SER.exe(CH340/341 系列芯片的通用驱动程序,系统无法识别串口时请手动安装)- 下载-南京沁恒官网
- Putty(用于连接串口和 telnet)- 官网 / 下载
- tftpd64(用于上传 Bootloader 到机器)- 官网 / [下载]()https://bitbucket.org/phjounin/tftpd64/downloads/tftpd64.464.zip
- netcat (可用 scoop 或其他方式安装)- Windows 版官网 / 下载(v1.12)
- 天灵的自定义 U-Boot for JCG Q30 Pro: mt7981-jcg_q30-fip-expand.bin
- ImmortalWrt 23.05-SNAPSHOT for JCG Q30 Pro: ImmortalWrt Firmware Selector
注意,固件请下载 Factory 镜像,U-Boot 选用 expand 分区版。其他:
正常的互联网连接,可靠的电力供应,避免刷写途中断电。
2. 开启 telnet ~ establishing connection.
为了刷入 ImmortalWrt 以及自定义 U-Boot,开启 telnet 是必需的前置依赖。目前 JCG Q30 Pro 仅能通过拆机连接 UART 的方式开启 telnet。拆机非常简单,卸下背面四颗螺丝,然后就可以回到正面开始翘了。笔者是从正面左下角入手,然后撬开侧面的卡口。
接下来找到主板正面右上角的 UART 位置。使用插针将其连接到 CH340。通常不需要焊接,稍微给一点压力保持连接即可。
连接方式如下:
路由器主板 | CH340 |
---|---|
VCC | NC(不接),接了可能会烧主板 |
RX | TXD |
TX | RXD |
GND | GND |
接下来打开设备管理器,选择 端口(COM 和 LPT),记下系统给 CH340 分配的 COM 端口号。如下图,为 COM4。
启动
Putty
。选择 Serial
,Serial Line
选择设备管理器的端口号,COM4
,Speed
/波特率 填入 115200
,点击 Open
。Putty 会启动一个会话,目前是黑屏。现在可以给路由器上电了。
2.1. 如果出现乱码
请检查波特率。2.2. 如果无输出
请检查是否接触不良,以及 TX/RX 是否接反。2.3. 如果 Putty 无法打开 COM 端口
请检查设备管理器中驱动是否正常安装。路由器上电后,稍等片刻会出现如下输出:
等待自动进入系统,或者直接回车即可。
此屏幕过后,不断按 F 和回车,直到进入 OpenWrt 的 failsafe 模式,如下图。
对,自带的固件是基于 OpenWrt 21.02-SNAPSHOT 魔改的。在 Putty 终端中,执行:
mount_root
输出如下:root@(none):/# mount_root
[ 2776.795678] mount_root: loading kmods from internal overlay
[ 2776.811117] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[ 2776.819610] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[ 2777.593048] UBIFS (ubi0:4): Mounting in unauthenticated mode
[ 2777.598922] UBIFS (ubi0:4): background thread "ubifs_bgt0_4" started, PID 901
[ 2777.627414] UBIFS (ubi0:4): recovery needed
[ 2777.715239] UBIFS (ubi0:4): recovery completed
[ 2777.719749] UBIFS (ubi0:4): UBIFS: mounted UBI device 0, volume 4, name "rootfs_data"
[ 2777.727574] UBIFS (ubi0:4): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[ 2777.737476] UBIFS (ubi0:4): FS size: 7237632 bytes (6 MiB, 57 LEBs), journal size 1015809 bytes (0 MiB, 6 LEBs)
[ 2777.747550] UBIFS (ubi0:4): reserved for root: 341850 bytes (333 KiB)
[ 2777.753983] UBIFS (ubi0:4): media format: w5/r0 (latest is w5/r0), UUID 9444B876-C077-469E-97D8-0AB7ADF55446, small LPT model
[ 2777.766320] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[ 2777.777126] block: extroot: not configured
[ 2777.781355] UBIFS (ubi0:4): un-mount UBI device 0
[ 2777.786069] UBIFS (ubi0:4): background thread "ubifs_bgt0_4" stops
[ 2777.794808] UBIFS (ubi0:4): Mounting in unauthenticated mode
[ 2777.800566] UBIFS (ubi0:4): background thread "ubifs_bgt0_4" started, PID 904
[ 2777.844293] UBIFS (ubi0:4): UBIFS: mounted UBI device 0, volume 4, name "rootfs_data"
[ 2777.852130] UBIFS (ubi0:4): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[ 2777.862033] UBIFS (ubi0:4): FS size: 7237632 bytes (6 MiB, 57 LEBs), journal size 1015809 bytes (0 MiB, 6 LEBs)
[ 2777.872108] UBIFS (ubi0:4): reserved for root: 341850 bytes (333 KiB)
[ 2777.878541] UBIFS (ubi0:4): media format: w5/r0 (latest is w5/r0), UUID 9444B876-C077-469E-97D8-0AB7ADF55446, small LPT model
[ 2777.892395] mount_root: loading kmods from internal overlay
[ 2777.906672] kmodloader: loading kernel modules from /tmp/overlay/upper/etc/modules-boot.d/*
[ 2777.916348] kmodloader: done loading kernel modules from /tmp/overlay/upper/etc/modules-boot.d/*
[ 2778.609220] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[ 2778.618570] block: extroot: not configured
[ 2778.624356] mount_root: switching to ubifs overlay
root@(none):/#
接下来执行:vi /etc/rc.local
在开头两行注释后添加如下内容:# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
busybox telnetd
vi 操作说明:按修改完成后,执行i
进入编辑模式,编写好内容后,按ESC
退出编辑模式;输入:wq
保存并退出。
reboot
或者直接断电,重启路由器。至此,telnet
开启完成。3. 备份固件 ~ just in case.
同样是使用Putty
,选择 Others - Telnet
。Hostname/IP
地址填写路由器 IP 地址,默认为 192.168.10.1
。端口号不变。点击 Open
。输入用户名
root
, 密码和 WebUI 默认登录密码一致,可查看路由器底面或包装盒上的标签。执行
cat /proc/mtd
查看分区表。默认的分区表如下:root@Q30PRO:~# cat /proc/mtd
dev: size erasesize name
mtd0: 08000000 00020000 "spi0.0"
mtd1: 00100000 00020000 "BL2"
mtd2: 00080000 00020000 "u-boot-env"
mtd3: 00200000 00020000 "Factory"
mtd4: 00200000 00020000 "FIP"
mtd5: 04000000 00020000 "ubi"
接下来,在 PC 上启动一个终端,或者 cmd/powershell。执行如下命令:
nc -lvp 33333 > mtd0.bin
如果弹出防火墙提示,请放行。然后,在 telnet 中执行如下命令。注意将
192.168.10.172
修改为电脑的实际 LAN IP 地址。cat /dev/mtd0 | nc 192.168.10.172 33333
执行结束后,电脑和路由器的 nc 会自动退出。用同样的方法,继续备份 mtd1~mtd5。注意修改文件名。结束后会在 cmd/powershell 执行目录获得 mtd0~mtd5 共六个备份文件。保存好以备不时之需。
4. 刷入 U-Boot ~ rebootstrap.
备份结束后,可以放心刷入天灵的修改版 U-Boot 和固件了。U-Boot 刷写有两种方法,借助 telnet 连接在原厂系统中直接刷写,或者借助 USB-TTL 串口连接在 U-Boot 中刷写。笔者使用前一种方式。如果您在 U-Boot 中刷写 FIP 遇到问题,请直接使用第一种方式在系统中刷写。
4.1. 在原厂系统中刷入修改版 U-Boot
使用先前 #3 的方法连接到 telnet 并登录。执行:curl https://firmware.download.immortalwrt.eu.org/uboot/mediatek/mt7981-jcg_q30-fip-expand.bin -Lo /tmp/mt7981-jcg_q30-fip-expand.bin
echo '410c21ead5fd999bfe8c50e86958f7591e1d1f93dc465233797c0823a0fc3a8a /tmp/mt7981-jcg_q30-fip-expand.bin' | sha256sum -c - || exit 1
mtd write /tmp/mt7981-jcg_q30-fip-expand.bin FIP
务必确定 sha256 校验通过后再进行 mtd 刷写操作。4.2. 在原厂 U-Boot 中刷入修改版 U-Boot
断电,重启路由器。还记得刚开始使用 Putty 时候出现的 U-Boot 启动菜单吗?选择
Upgrade ATF FIP
并回车。然后选择
0 - TFTP client
,或者直接回车。接下来前三项可以默认,第三项修改为我们 U-Boot 的文件名:
mt7981-jcg_q30-fip-expand.bin
输入完文件名后先别急着敲回车。打开系统的网络设置,手动设置 IP 地址:
打开
tftpd64
所在目录,将先前下载的 U-Boot
放置在和 tftpd64
主程序同级目录下。启动 tftpd64
,如有防火墙提示请放行。在
tftpd64
中的 server interfaces
选择连接了路由器的网卡。现在可以在 Putty 那边回车刷入了。5. 刷入 ImmortalWrt SNAPSHOT ~ in a flash.
使用上述任意一种方式刷入后,给路由器断电,按住Reset
按钮上电,大约不到 10s 后红灯闪烁三下,然后蓝灯常亮,代表进入了 U-Boot 恢复模式的 WebUI。目前 U-Boot 的 DHCP 可能不工作,需要手动设置 IP,和 #4.2. 一致。电脑浏览器打开 http://192.168.1.1 ,点击 upload 上传 Factory 固件。注意检查固件 MD5 是否正确。
上传完成后点击
Update
,等待系统重启的途中可以将电脑网络切换回 DHCP 模式。6. 结束 ~ Voilà!
至此,你已经成功将 ImmortalWrt 刷入 JCG Q30 Pro。现在可以把路由器上盖装回去上好螺丝,网页端打开 http://192.168.1.1 开始体验。默认用户名
root
,密码 password
。Enjoy.
9. 一些其他优化 ~ minor tweaks.
目前固件默认没完全开启 WiFi 硬件转发加速,天灵修改这个配置之前,可能需要手动开启。SSH 或 TTYD 连接到路由器并执行:opkg update && opkg install bridger
echo 'mt7915e wed_enable=Y' > /etc/modules.d/mt7915e
执行完成后,reboot
重启路由器。现在 WiFi 跑满的时候不会再拉炸 CPU 了。
请问你这个刷出来的没有 服务 这栏,怎么配置插件?
直接在包管理里安装软件包即可,服务栏会自动安装