提示

近期出现了一批原厂 512M 内存的 JCG Q30 Pro(非奸商硬改的 512M),根据 ImmortalWrt 群友的消息,与 256M 版本刷机步骤完全一致,刷机包通用;目前有朋友回报刷入过渡固件失败,不过是会直接提示固件过大没刷进去,并不会变砖,请放心操作。失败了再说,理论上你依然可以尝试拆机通过 TTL/UART 刷机 :)

顺便友情推荐蝈蝈大佬开发的 mtk_uartboot 工具,万一真的刷砖了也能轻松救砖而无须拆片子上编程器了:

https://github.com/981213/mtk_uartboot

0.背景信息 ~ simple introduction.

JCG Q30 Pro 是一款采用了联发科技 Filogic 820 / MT7981 SoC 的 AX3000 WiFi 6 无线路由器,目前售价相对亲民(100 元左右),性价比较高。

原厂固件默认采用移动 DNS,且自带上报插件,加之移动定制路由器有锁机的传统艺能,刷机似乎是必需的。由天灵 @1715173329 维护的 OpenWrt 分支 ImmortalWrt 已经在 23.05-SNAPSHOT 开始提供了对这款机型,以及其他一些采用 MTK Filogic SoC 设备的支持。

感谢 OpenWrt NanoPi R2S 群的 kan kan /237 大佬,目前已经搞定了免拆方案。步骤更加简单。先前的拆机教程先暂且留下了,仅供纪念。
大佬出手,直接白给
目前咸鱼已经买不到这款,据说最近会补货。 补货了 又没货了。MT7981 的机器还有很多,比如 CT3003、RAX3000M、AX3000T 等等,不要吊死在一棵树上。囤货涨价的行为没有意义。
这些 MT7981 机器不推荐也没必要硬改,再次警告各位不要去购买某些人的修改版本。部分硬改卖家的焊接手艺饱受诟病,硬改后反而会造成设备无法正常运行,且各大固件也不会特意去为了硬改用户提供支持。要高配建议直接买大内存机器。
大佬再次出手,现在刷入过渡固件之后会自动刷入 U-Boot,稍等一两分钟就可以直接重启进入 U-Boot 刷 Factory 固件了。
笔者不对任何拆机 & 刷机导致的问题负责。

1. 事先准备 ~ prerequisites.

硬件方面:
  • 捷稀 JCG Q30 Pro 无线路由器 * 1
  • DC 5.5 * 2.5mm 12V 电源 * 1(机器附带)
  • 适当长度的网线 * 2(机器附带一条,需要自行准备一条)
  • 一台 PC,本文默认以 Windows 进行演示,其他系统的用户请自行寻找替代方案
软件方面:
注意,固件请下载 Factory 镜像,U-Boot 选用 expand 分区版。
或者,如果您不喜欢 ImmortalWrt 的话,也可以选用 Lean 的 QWRT,或者自行编译 MTK SDK 版本的:padavanonly/immortalwrtARM / hanwckf/immortalwrt-mt798x

Project Railgun 目前已对 JCG Q30 Pro 提供实验性支持。

(OpenWrt / ImmortalWrt 主线支持已接近完善,加之这两者有完善的更新、软件源服务器以及更新机制,除非对 MTK SDK 的稳定性和功能有需求,已无必要自行编译。)

笔者使用的软件包列表(在默认基础上添加如下内容):
luci-i18n-passwall-zh-cn luci-i18n-homeproxy-zh-cn luci-i18n-upnp-zh-cn luci-i18n-vlmcsd-zh-cn luci-proto-wireguard luci-i18n-vnstat2-zh-cn luci-i18n-firewall-zh-cn luci-i18n-ttyd-zh-cn luci-i18n-opkg-zh-cn luci-i18n-attendedsysupgrade-zh-cn luci-i18n-msd_lite-zh-cn luci-i18n-ddns-zh-cn luci-i18n-sqm-zh-cn luci-i18n-wol-zh-cn zram-swap htop dmesg drill ddns-scripts-cloudflare
其他内容:
  • 正常的互联网连接。
  • 可靠的电力供应,避免刷写途中断电损坏设备软硬件。
正常情况下大概用不到的东西:
正常情况下绝对用不到的东西:
  • 原厂分区布局 Factory 固件 - Telegram | 本站分流, sha256sum: 352a645d733b85b681ee7f553523589f3118c7aaf0e1a7203b9a4b64bc4124bf
用途:如果你错误刷入了 Factory/原厂分区布局的 U-Boot(除非你知道你在做什么,任何情况下不应该进行此操作!),可以刷这个固件作为过渡固件,然后重启进入系统后重新刷 expand 版 U-Boot。

2. 刷入过渡固件 ~ middle land.

登录路由器默认后台 http://192.168.10.1 。密码和路由器背面/包装盒上的贴纸一致。

进入高级设置中的升级固件,选择先前下载的过渡固件 immortalwrt_mediatek_mt7981_mt7981_spim_nand_rfb_squashfs_sysupgrade.bin取消勾选保留配置,直接升级。

升级

3. 刷入 ImmortalWrt 固件 ~ in a flash.

237 大佬上传了一版新的过渡固件,开机后直接自动刷写 U-Boot。无须手动刷入。固件链接已经更新。

上一步刷完固件之后,等待大约两分钟,然后断电,按住机身背部的 Reset 按键,上电开机。等待不到 10s 左右,红灯闪烁三下然后变成蓝灯,代表已进入 U-Boot 的恢复模式 WebUI。

目前 U-Boot 的 DHCP 可能不工作,需要电脑设置静态 IP: 天灵已经为 MT7981 机器的 U-Boot 全部添加了 DHCP(Source: https://t.me/nanopi_r2s/630),但过渡固件并未更新,需要手动下载并刷入:
  1. 确保路由器已经联网
  2. SSH 登录路由器后台,执行如下指令:
curl -L https://firmware.download.immortalwrt.eu.org/uboot/mediatek/mt7981-jcg_q30-fip-expand.bin -o /tmp/FIP.bin
mtd write /tmp/FIP.bin FIP
等待写入完成即可重启进入带 DHCP 的 U-Boot。

IP:192.168.1.2
网关:192.168.1.1
网关掩码:255.255.255.0
DNS 服务器:192.168.1.1(或不填)

静态 IP

然后浏览器打开 http://192.168.1.1/ ,点击 upload 上传 Factory 固件。注意检查固件 MD5 是否正确。

上传完成后点击 Update等待系统重启的途中可以将电脑网络切换回 DHCP 模式。

U-Boot

刷写固件

4. 结束 ~ Voilà!

至此,你已经成功将 ImmortalWrt 刷入 JCG Q30 Pro。现在可以网页端打开 http://192.168.1.1 开始体验。

默认用户名 root,密码 password

5. 其他优化 ~ minor tweaks.

观测到天灵已经添加了 mt76 的 patch: https://github.com/immortalwrt/immortalwrt/compare/225cf3282ebb...91ad71759131 ,已不再需要下面的优化,因为已经集成进驱动了。
进入系统后有一些其他事情可以优化。目前固件默认没完全开启 WiFi 硬件转发加速,天灵修改这个配置之前,可能需要手动开启。SSH 或 TTYD 连接到路由器并执行:
opkg update && opkg install bridger
echo 'mt7915e wed_enable=Y' > /etc/modules.d/mt7915e
执行完成后,reboot 重启路由器。现在 WiFi 跑满的时候不会再拉炸 CPU 了。

6. 致谢 ~ Credits.

天灵 @1715173329 - Project ImmortalWrt Creator & Maintainer、修改版 U-Boot、刷机指导。

@237176253 大佬提供的 Factory 救场固件和过渡固件。

标签: 技术, 路由器, OpenWrt, ImmortalWrt, MTK, MT7981, MTK Filogic, 刷机, 教程, 无线路由器

已有 68 条评论

  1. zhu zhu

    当前版本:V1.0.2

    刷过度系统提示上传失败 版本不同 怎么办?

    1. 试试拆机的方法吧。在另一篇文章里。

  2. 求助 求助

    刷入UBOOT后重启 蓝灯 刷入提供的那个237 大佬的原厂分区过渡固件/底包 结果一直转圈 求帮忙

  3. 粉丝 粉丝

    刷成功了,感谢大佬。

  4. DL53 DL53

    U-boot上传固件很慢有碰到的么?大概要好几十分钟。。

  5. 流年 流年

    mtk_spi_can_dma+0x0/0x30
    [ 0.617024] lr : mtk_spi_interrupt+0x60/0x358
    [ 0.621366] sp : ffffffc010003e70
    [ 0.624666] x29: ffffffc010003e70 x28: ffffff80030a8000
    [ 0.629963] x27: 0000000000000060 x26: ffffffc010881388
    [ 0.635261] x25: ffffffc010a1f41b x24: ffffff801e0f3e00
    [ 0.640557] x23: 0000000000000053 x22: ffffffc010003f3c
    [ 0.645854] x21: 0000000000000000 x20: ffffff801e1da800
    [ 0.651151] x19: ffffff801e1dae00 x18: 0000000000000010
    [ 0.656448] x17: 00000000eeb09952 x16: 000000008de85bb2
    [ 0.661744] x15: ffffffffffffffff x14: ffffffc0108ee438
    [ 0.667041] x13: ffffffc090023857 x12: 0140000000000000
    [ 0.672337] x11: 0000000000000038 x10: 0000000000000040
    [ 0.677634] x9 : ffffffc0109c9eb0 x8 : ffffffc0109c9ea8
    [ 0.682931] x7 : ffffff801e45fc20 x6 : 0000000000000000
    [ 0.688228] x5 : ffffff801e45fb60 x4 : ffffffc00f520000
    [ 0.693525] x3 : ffffffc0104be600 x2 : 0000000000000000
    [ 0.698821] x1 : 0000000000000000 x0 : ffffff801e1da800
    [ 0.704118] Call trace:
    [ 0.706554] mtk_spi_can_dma+0x0/0x30
    [ 0.710205] __handle_irq_event_percpu+0x54/0x148
    [ 0.714894] handle_irq_event_percpu+0x1c/0x60
    [ 0.719324] handle_irq_event+0x40/0xb0
    [ 0.723147] handle_fasteoi_irq+0xdc/0x190
    [ 0.727229] generic_handle_irq+0x24/0x38
    [ 0.731226] __handle_domain_irq+0x60/0xb8
    [ 0.735309] gic_handle_irq+0xc0/0x158
    [ 0.739045] el1_irq+0xb8/0x140
    [ 0.742174] __setup_irq+0x454/0x858
    [ 0.745737] request_threaded_irq+0xe4/0x190
    [ 0.749993] devm_request_threaded_irq+0x74/0xe8
    [ 0.754596] mtk_spi_probe+0x26c/0x6a0
    [ 0.758335] platform_drv_probe+0x50/0xa0
    [ 0.762330] really_probe+0xd8/0x300
    [ 0.765892] driver_probe_device+0x54/0xe8
    [ 0.769975] device_driver_attach+0x6c/0x78
    [ 0.774144] __driver_attach+0x60/0xe8
    [ 0.777881] bus_for_each_dev+0x60/0x98
    [ 0.781703] driver_attach+0x20/0x28
    [ 0.785265] bus_add_driver+0x180/0x1f0
    [ 0.789088] driver_register+0x60/0x110
    [ 0.792911] __platform_driver_register+0x44/0x50
    [ 0.797602] mtk_spi_driver_init+0x18/0x20
    [ 0.801685] do_one_initcall+0x74/0x1d0
    [ 0.805509] kernel_init_freeable+0x200/0x2b0
    [ 0.809852] kernel_init+0x10/0xfc
    [ 0.813241] ret_from_fork+0x10/0x1c
    [ 0.816808] Code: 2a0203e4 52800003 17ffffe6 d503201f (b9401041)
    [ 0.822896] ---[ end trace efa0b2f61b993d39 ]---
    [ 0.827498] Kernel panic - not syncing: Fatal exception in interrupt
    [ 0.833837] SMP: stopping secondary CPUs
    [ 0.837747] Kernel Offset: disabled
    [ 0.841222] CPU features: 0x00002,20002008
    [ 0.845303] Memory Limit: none
    [ 0.848345] Rebooting in 1 seconds..

    F0: 102B 0000
    FA: 1040 0000
    FA: 1040 0000 [0200]
    F9: 3903 0041
    F3: 1001 0000 [0200]
    F3: 1001 0000
    F6: 102C 0000
    F5: 480A 0031
    00: 1005 0000
    FA: 1040 0000
    FA: 1040 0000 [0200]
    F9: 3903 0041
    F3: 1001 0000 [0200]
    F3: 1001 0000
    F6: 102C 0000
    01: 102A 0001
    02: 1005 0000
    BP: 2000 00C0 [0001]
    EC: 0000 0000 [1000]
    T0: 0000 00ED [010F]
    System halt!

  6. 虾辣夹烟 虾辣夹烟

    你好,想问下,怎么安装交换机插件的,原版没有交换机的功能了,网络-交换机,插件叫什么名字啊,没找到,谢谢!

    1. 主线已经切换至 DSA,和以前传统的 swconfig /交换机配置稍微有点区别,应该是在接口-物理里面。
      如果你想要老的交换机配置界面,刷 padavanonly 或者 hanwckf 的固件。

      1. 虾辣夹烟 虾辣夹烟

        网络-接口-wan/lan里面也没有物理设置属性了,lean大的固件就两个都有(wan/lan-物理设置、交换机),应该是固件版本不同了,还没弄明白

  7. 刚田武 刚田武

    我在刷完过渡固件之后,断电按reset通电,电脑显示的未识别网络,请问该如何进入ssh。

    1. 请仔细重新阅读文章。

  8. 刚田武 刚田武

    博主,你好。我按照您的方法,我连第一个过渡固件都刷不进去,没有保留配置,刷完进的也是原厂,512m版本的。请问您清楚是什么原因吗?

    1. 我这边也没机器,无法确认。只是看到有群友说没问题。

  9. Jane Jane

    我小白,刷成功了ImmortalWrt系统,可是我主要是想用Wireguard的服务器。然后我电脑端做客户端。可是找不到VPN页面下的Wireguard

    1. 在 网络 -> 接口 里面,新建一个接口,协议选 WireGuard。
      不知道你是用 WireGuard 服务器做什么。

      1. Jane Jane

        我主要是做工业控制的,我有设备在异地。想借用WireGuard实现异地组网,我电脑端可以异地对路由器那边的设备进行访问,维护。

  10. 虾辣夹烟 虾辣夹烟

    请问现在512内存版本可以刷了吗

    1. 有人成功了,有人失败了。我没机器,不知道。

      1. 虾辣夹烟 虾辣夹烟

        你好,我今天单独发了一份邮件给你,可以回复下吗?谢谢

  11. 请教下固件支持漫游吗(802.11V和802.11R)?

  12. Byt1E Byt1E

    大佬,我想问下,我买了一个刷完qwrt的,有不死,我是不是直接可以不死上传固件,下载

    1. 天灵的 U-Boot 应该是可以刷 Q-WRT 的。不太确定,做好备份再试。

  13. 二娃 二娃

    大佬,求教。入手了一个刷好qwrt的,试了下上面的uboot都不支持openwrt主线固件,不确定分区有没有被修改,想用主线该咋办?试着刷原厂分区布局 Factory 固件,没能成功,现在不知所措

    1. 刷主线 ROM 就直接用主线的 U-Boot。刷哪个 ROM 就用谁的 U-Boot。
      其实我现在还是更推荐 hanwckf/immortalwrt-mt798x。

      1. 二娃 二娃

        主线用习惯了,功能也够。不知道是分区表变了还是其他什么原因。写入主线bl2,fip都正常,也正常启用恢复模式加载了 initramfs-recovery.itb,但在这之下刷写sysyupgrade.itb固件没有效果。重启了还是initramfs-recovery状态,就很尴尬

        1. 主线主要还是缺硬件加速/MTK 特色功能。我也没实际试过,不好说。

  14. 嘻嘻嘻小四 嘻嘻嘻小四

    大佬,有没有原厂固件。我刷完后链接wifi有部分手机应用连接不到网络

  15. 呆呆兽 呆呆兽

    玩了两天,砖了。按reset开机蓝灯后http://192.168.1.1/进入不了。大佬能救不?

    1. TTL/UART 还有无输出?

  16. 呆呆兽 呆呆兽

    请教大佬命令找不到怎么整啊
    root@ImmortalWrt:/tmp# mtr write /tmp/FIP.bin FIP
    -bash: mtr: command not found

    1. 打错了,是 mtd,已更正。

  17. w w

    帖子里面得过度固件有更新过吗,是不是不包含9月份更新支持DHCP的uboot ?

    1. 没有更新,刷入过渡固件之后需要手动更新 U-Boot。稍候我会更新教程。

  18. Faramita Faramita

    MR3000DCIQ和这个Q30是一样的,不知道能不能按照这套来刷,MR3000D有512M的rom

    1. https://firmware-selector.immortalwrt.org/?version=23.05.1&target=mediatek%2Ffilogic&id=jcg_q30-ubootmod
      看了一下,ImmortalWrt 现在把他俩当同一个设备处理,提供一样的固件,那看来是一模一样了。理论上可以通刷。

  19. [...]0. 前情提要 ~ simple introduction.如我在 JCG Q30 Pro 的刷机说明中所说的,MT7981 的机器有很多,且随着时间推移,主线 OpenWrt 和 ImmortalWrt 对 MTK Filogic 的支持已日趋完善。截止本文编写时,ImmortalWrt 23.05 RC4 已经发布,各种特性(包括硬件加速)已趋于稳定。正好趁着中秋国庆双节回家,花了点小钱购入了[...]

  20. [...]0. 前情提要 ~ simple introduction.如我在 JCG Q30 Pro 的刷机说明中所说的,MT7981 的机器有很多,且随着时间推移,主线 OpenWrt 和 ImmortalWrt 对 MTK Filogic 的支持已日趋完善。截止本文编写时,ImmortalWrt 23.05 RC4 已经发布,各种特性(包括硬件加速)已趋于稳定。正好趁着中秋国庆双节回家,花了点小钱购入了[...]

添加新评论