👁 2760

这台京东云盒 Athena AX6600 在我桌上摆了大半年,一直当京东 PCDN 跑,吃灰得厉害。终于趁周末把它折腾了——目标是刷成 GWRT,跑 Docker、SSH、自定义插件,把 IPQ6018 + 1G RAM 的硬件资源真正榨出来。

整套流程拆开来其实就五件事:在线开 telnet → 备份 eMMC → 刷第三方 U-Boot → 刷扩容 GPT → 刷 GWRT 固件。其中 75% 的时间花在”想清楚每一步在干嘛”和”备份”上,真正的刷写动作只占几分钟。这篇就把整个折腾过程一点不漏地记下来,包括踩过的坑、走过的弯路,给后来人当参考。

另外说一下,IPQ6018 这颗 SoC 京东云一口气出了好几台机器,分区结构完全一致,只有 U-Boot 和固件不同:

  • JDBox Athena AX6600(本文主角)→ jdcloud_re-cs-02,三频 WiFi6,平时功耗 ~12W
  • JDBox AX1800 Pro → jdcloud_re-ss-01,双频 WiFi6
  • JDBox 太乙(PCDN/NAS 专用,没 WiFi)→ jdcloud_re-cs-07,就是 cs-02 砍掉 WiFi 的版本

所以这篇虽然以 AX6600 为例,AX1800Pro 和太乙的兄弟们看了直接照搬就行,只换 U-Boot 文件。

京东云 IPQ6018 系列折腾全流程 AX6600 / AX1800Pro / 太乙 通用 · 在线开 telnet → 备份 → 刷 U-Boot → 扩容 → 刷 GWRT → 重建 阶段一 · 拿到 shell:在线开 telnet(不拆机不焊串口) A1. 设置登录密码 首次登录 192.168.68.1 设个 root 密码(telnet 也用它) → 不需要绑京东 App A2. 浏览器书签脚本一键开 登录路由后台 → 点书签 JavaScript 调内部接口开 23 口 同样的脚本能再点一下关掉 A3. telnet 192.168.68.1 root / 登录路由的同一个密码 fdisk -l /dev/mmcblk0 → 确认是 27 分区 IPQ6018 阶段二 · 备份全部 eMMC 分区(救命的一步) B1. 备份脚本一把梭 jdbox_emmc_backup.sh 备份目标:storage 分区 p1~p25 + GPT 头 / 尾 约 1.28 GB B2. MD5 校验 md5sum *.bin > md5sums.txt 拷出后再校验一次 ⚠ ART/MAC/校准 全在 p15 B3. 拷出 + 异地保存 scp / nc / SMB 建议 3 份,至少 1 份离线 → 才有底气往下刷 阶段三 · 刷第三方 U-Boot(机型不同,文件不同) AX6600 / Athena IPQ6018 + QCN9074 jdcloud_re-cs-02 三频 WiFi6(2.4G+5G+5G) 平时功耗 ~12W · 本文主刷对象 AX1800 Pro IPQ6018 双频 jdcloud_re-ss-01 2.4G + 5G 双频 用 AX1800Pro 的 GPT 模板 太乙 IPQ6018 · 无 WiFi 模块 jdcloud_re-cs-07 就是 cs-02 的去 WiFi 版 PCDN/NAS 专用 C1. dd 写入 A/B 槽位 dd if=uboot.bin of=/dev/mmcblk0p13 bs=128K dd if=uboot.bin of=/dev/mmcblk0p14 bs=128K A/B 都刷,任一槽能引导 C2. 按 reset 进 U-Boot Web 断电 → 按住 reset → 上电 → 等灯闪 浏览器访问 192.168.1.1 看到刷机界面 = 成功 ✓ 阶段四 · 扩容 GPT 分区表(rootfs 60M → 2G) D1. 挑对应 GPT 模板 AX6600 / 太乙 → AX6600 模板 AX1800Pro → AX1800Pro 模板 推荐 rootfs2048M_HLOS12M D2. U-Boot Web 刷 GPT “GPT 分区表”位置上传 只覆盖前 34 个扇区 ⚠ 一定不要选”全盘镜像” D3. 只少最后一个分区 no-last-partition GPT storage 不见,前面分区都还在 → 阶段五手动建 storage 阶段五 · 刷 GWRT 固件 + 重建后置分区 E1. 刷 factory 镜像 U-Boot Web → factory.bin 含 kernel + rootfs,首刷必走 机型对应:AX6600/Athena 固件 E2. 重启进 GWRT 默认 192.168.1.1 root / 空密码 先改密码 → 接外网 → opkg update E3. 新建后置分区 fdisk / parted /dev/mmcblk0 plugin / log / swap / storage mkfs.ext4 + fstab 自动挂载 🎉 GWRT 全功能可用 SSH · Docker · 第三方插件 · sysupgrade 升级 兜底 · 救砖优先级(变砖也别慌) 1.9008 短接 → 救砖工具引导 → U-Boot Web 单分区刷回(90% 能救) 2.9008 引导 → 按顺序逐分区重写(全盘数据损坏) 3.编程器写入 / 换 eMMC(9008 也进不去 / eMMC 物理损坏)
JDBox 全流程刷机记录图

一、为什么要刷?先看清楚分区

京东云盒系统是 OpenWrt 18.06 魔改的,闭源、阉割得很狠。最致命的是 rootfs 只给了 60MB——不只是慢,是装不下任何稍微像样的第三方插件。装个 SmartDNS、UnblockNeteaseMusic 啥的就喊空间不足,更别提 Docker。

用 fdisk -l /dev/mmcblk0 看 eMMC 分区,27 个分区,密密麻麻。挑出关键的几个:

分区 名称 大小 作用 能不能动
p1 SBL1 512K 一级引导(写在 ROM 里指定位置) ❌ 千万别碰,刷坏只能编程器救或合成镜像一起刷
p2/p3 BOOTCONFIG 32K 记录当前活跃槽位 A/B A/B 切换才动 在线刷uboot后一般察除它
p4~p9 QSEE/DEVCFG 等 ~6MB 高通固件、TZ、DPR 等 不要动,跟 SoC 强绑定
p10/p11 CDT 32K 内存识别表 ❌ 硬改内存才碰,乱刷其他必砖风险大
p13/p14 APPSBL (U-Boot) 512K x2 U-Boot 引导器(A/B) ✅ 这就是要刷的
p15 0:ART 1MB MAC/SN/WiFi 校准 ❌ 每台唯一,丢了只能下别人的  修改mac可以改这个永久
p16/p17 HLOS 6M x2 Linux 内核(A/B) ✅ 刷固件时改
p18~p23 rootfs / rootfs_data 60M x2 + … 根文件系统(A/B) ✅ 太小了所以要扩容
p24~p26 plugin/log/swap 各几十MB~1G 用户数据 不跑分了这几个分区用不到可以删除合并到后面分区 swap交换分区没有数据,前面分区调整可以先删除再建这是给内存小的机器用大内存的一半用不到
p27 storage 剩余 大容量用户数据 用 no-last-partition GPT 后只这个会消失,进系统手动建

所以刷机的真实动作就两个:刷 p13/p14(换 U-Boot),然后扩容 p18/p20 的 rootfs。其余一切折腾都是围绕这两件事服务的。

二、阶段一:在线开 telnet(不拆机,不绑 App)

老办法是拆机焊串口(TTL 转 USB),但这台机器外壳卡得紧、PCB 走线也不是 TX/RX/GND 一字排开那种好焊的——能不拆机就坚决不拆机。而且实际操作下来,连京东 App 都用不上,全程浏览器搞定。

2.1 进 Web 后台设个登录密码

新机或者重置过的机器接通电源,电脑用网线接 LAN 口,浏览器访问 192.168.68.1。第一次进去会让你设管理员密码——就设一个你能记住的,比如随便一个 jdbox888 之类的。

这个密码很重要,因为它有双重身份:

  • Web 后台登录密码
  • 等下 telnet 进系统时的 root 密码(同一个,京东云盒就这么设计的)

设完密码登录进 Web 后台,能看到熟悉的状态页就行。不需要下载京东 App,不需要账号绑定,不需要跑 PCDN。这是很多教程上来就让你装 App 的最大误区,其实纯本地操作就够。

2.2 浏览器书签脚本一键开 telnet

京东云盒系统里的 telnet 服务是带着的,只是默认没启动。社区已经反编译出后台调用接口,写成了一段 JavaScript bookmarklet(书签栏脚本)——把脚本代码作为 URL 存到浏览器书签栏,登录路由后台之后点一下书签,它就用你已经登录的 session 调内部接口把 23 端口开起来。再点一下能反过来关掉。

 可以直接看这里在线开 telnet :https://gwrt.uk/jdc-arthur-telnet-4546.html

用法非常傻瓜:

  1. 在浏览器书签栏新建一个书签,名字随便(比如 JDBox开/关 telnet)
  2. 地址栏填那段 javascript:... 开头的脚本
  3. 登录路由后台 192.168.68.1
  4. 点书签 → 弹窗提示成功 → telnet 已开
  5. 用完之后再点一次书签 → 关掉

原理就是调用后台自己的内部接口,跟京东服务端没关系——这就是为什么不需要 App、不需要绑账号。比起需要 SN/App/抓包的老方案,这个是目前最干净的一种。

2.3 telnet 连进去

电脑还在 192.168.68.x 段(DHCP 拿的),直接 telnet:

telnet 192.168.68.1
# login: root
# Password: (刚才在 Web 后台设的那个密码)

注意 telnet 不是无密码——账户 root,密码就是 Web 后台密码,端口默认 23。这点跟一些老教程不一样(早年的 XOS 老固件确实有过无密码的版本,新固件都改了)。

进去先确认两件事:

# 看分区表,确认是 IPQ6018 的 27 分区
fdisk -l /dev/mmcblk0

# 看 rootfs 实际大小(验证扩容前的必要性)
df -h

能看到 /dev/mmcblk0p18 或 p20 挂在 /,大小 60MB 出头——确认这就是要扩容的对象。

三、阶段二:备份 eMMC(救命的一步)

这一步我多花了半小时,因为p15 ART 真的是丢了就 GG——它存着这台机器的 MAC 地址、序列号、WiFi 射频校准数据,每台都不一样。即便你能从别人那里搞到同型号的 ART,刷上去 WiFi 也会因为校准不对而表现奇怪(信号弱、温飘大、断流)。

3.1 准备备份目录

eMMC 总共 8GB,所有分区一起 dd 出来大概 1.28GB。机器内的 storage 分区(p27)有几个 G 富余可以临时放。备份完之后立刻拷到电脑、NAS、网盘,至少 3 个位置,离线再单独留 1 份。

# 在机器上找一个能写的大目录
df -h | grep -E 'storage|plugin'
# 假设 p27 是 storage,挂载在 /mnt/mmcblk0p27
mkdir -p /mnt/mmcblk0p27/emmc_backup
cd /mnt/mmcblk0p27/emmc_backup

3.2 一把梭备份脚本

p1 到 p25 全备(p26/p27 是用户数据可选):

for i in $(seq 1 25); do
    echo "dumping p$i..."
    dd if=/dev/mmcblk0p$i of=p$i.bin bs=1M 2>/dev/null
done

# GPT 头(最前面 34 个扇区)
dd if=/dev/mmcblk0 of=gpt_primary.bin bs=512 count=34

# GPT 备份头(在 eMMC 末尾)—— 看 fdisk 输出的总扇区数 N,N-33 到 N
SEC=$(blockdev --getsz /dev/mmcblk0)
dd if=/dev/mmcblk0 of=gpt_backup.bin bs=512 skip=$((SEC-33)) count=33

# 校验
md5sum *.bin > md5sums.txt
ls -lh *.bin
du -sh .

3.3 拷出来 + 二次校验

拷出来的方式很多种,挑顺手的:

# 法 1:起个 HTTP server 直接浏览器拉
busybox httpd -p 8080 -h /mnt/mmcblk0p27/emmc_backup
# 浏览器访问 http://192.168.68.1:8080/

# 法 2:nc 单文件
# 电脑端先:nc -l -p 9999 > p15.bin
# 机器端:nc 192.168.68.100 9999 < p15.bin

# 法 3:scp(如果 dropbear 在跑)
scp *.bin [email protected]:/path/

拷到电脑后再 md5sum 一次,跟机器上的 md5sums.txt 对一对,一字不差才算备份完。

这一步我推荐写个备份脚本一把梭,按顺序 dd 完所有分区、生成 md5、再统一拷出去。脚本怎么写第三章 3.2 已经给了,照抄即可。

四、阶段三:刷第三方 U-Boot

这是整个流程里最关键也最危险的一步——U-Boot 是引导器,刷错了机器就开不了机。但 IPQ6018 的好处是 A/B 双槽设计,即便一个槽刷坏了,另一个槽还能引导,所以稳妥起见两个槽都刷。

4.1 挑对 U-Boot 文件 + 期望 MD5

开头列过对应关系。三个机型对应三个 U-Boot 文件,我已经传到 godsun.pro,下面就直接用 curl 在 telnet 里拉。每个文件都标了期望 md5sum,下载完一定要对一下。

机型 U-Boot 文件 期望 MD5
AX6600 / Athena uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin 0c74af00d882d462f43fe10bf9e0aaf4
AX1800 Pro uboot-ipq60xx-emmc-jdcloud_re-ss-01.bin 2266697f5106c170a91e283adf7a3d19
太乙 uboot-ipq60xx-emmc-jdcloud_re-cs-07.bin c862a792447131e832fd2daf7546fbf0

文件 640KB 比官方分区 512KB 大——这是正常的,第三方 U-Boot 加了 Web 刷机界面,但实际写入 eMMC 的部分仍在分区大小内。

4.2 在线下载 + MD5 校验(推荐)

京东云盒原厂固件就能联网,所以前面把 telnet 开通后,直接 telnet 里 curl 我博客上的附件最方便——不用搭本地 httpd、不用 scp、不用 U 盘。在 telnet 里:

# 1) 切到 tmpfs(写在内存里,刷完一断电就清,干净)
cd /tmp

# 2) 一行下载 + 立刻 md5sum(AX6600 为例)
curl -fLO https://godsun.pro/wp-content/uploads/flash-files/uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin && md5sum uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin

看到输出的 md5 跟上表里的 0c74af00d882d462f43fe10bf9e0aaf4 完全一致才能继续。如果对不上(或者 curl 中途断了),就再来一次:

# 不对就删掉重新拉,网络抖一下很常见
rm -f uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin
curl -fLO https://godsun.pro/wp-content/uploads/flash-files/uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin && md5sum uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin

AX1800 Pro 和太乙换对应文件名和 MD5 即可。MD5 一致再往下,不一致绝不 dd——错的 U-Boot 写下去就是开机黑屏。

顺便也把全部 MD5 列表传上了,懒得抄表的话直接拉:

curl -s https://godsun.pro/wp-content/uploads/flash-files/MD5SUMS
# 然后 md5sum -c 一把对比所有 .bin
curl -s https://godsun.pro/wp-content/uploads/flash-files/MD5SUMS > MD5SUMS
md5sum -c MD5SUMS 2>/dev/null | grep -E 'cs-02|ss-01|cs-07'

4.3 dd 写入 p13/p14

MD5 对上之后,在 telnet 里直接干(AX6600 为例,其他机型替换文件名):

# A 槽
dd if=uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin of=/dev/mmcblk0p13 bs=128K
sync
# B 槽
dd if=uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin of=/dev/mmcblk0p14 bs=128K
sync

每条 dd 完都立刻 sync,防止数据还在缓存里。两条都写完之后,先别重启,回读对比一下两个分区:

# 算源文件大小对应的扇区数(128K 块为单位)
SRC=uboot-ipq60xx-emmc-jdcloud_re-cs-02.bin
BLOCKS=$(($(stat -c%s $SRC) / 131072))   # 640K/128K = 5

# 回读 A/B 同样块数,跟源文件比 md5
dd if=/dev/mmcblk0p13 bs=128K count=$BLOCKS 2>/dev/null | md5sum
dd if=/dev/mmcblk0p14 bs=128K count=$BLOCKS 2>/dev/null | md5sum
md5sum $SRC

三行 md5 必须完全相同——A/B 两个槽位的内容跟源 U-Boot 文件一致就放心了。如果哪个槽对不上,就再 dd 一次那一个槽。

 

4.4 进 U-Boot Web 界面

这一步要心理准备:断电拔电源,按住 reset 键不松,再插电源,按住至少 10 秒。机器会用 U-Boot 救砖模式起来,灯会有规律地闪(红 / 蓝交替之类的,看具体型号)。

等灯稳定下来,电脑接 LAN 口,配静态 IP 192.168.1.x,浏览器访问:

http://192.168.1.1

看到一个朴素的 Web 刷机界面(通常是 jdcloud_re 风格的页面,有 “GPT 分区表”、”factory 镜像”、”sysupgrade 镜像” 几个上传位)—— 看到这个界面 = U-Boot 刷成功 ✓。

如果没看到(页面打不开、灯不闪),别慌:

  1. 先看 LAN 口灯有没有亮,确认物理连接
  2. 电脑 IP 是不是真的在 192.168.1.x 段(DHCP 可能没拿到 IP)
  3. 实在不行就上 9008 救砖,把 p13/p14 用之前的备份刷回去(备份做对了这步就是稳的)

五、阶段四:刷扩容 GPT 分区表

U-Boot 刷完之后,下一步是改 GPT,让 rootfs 从 60MB 变 2GB。GPT 有两种刷法:U-Boot Web 上传(保守)、或 telnet 里在线 dd(更快)。两种都行,下面分别给出。

5.1 挑 GPT 模板 + 期望 MD5

GPT 模板按 SoC + 内存挑(AX6600 和太乙共用同一份,因为分区结构一样):

机型 GPT 模板 期望 MD5
AX6600 / 太乙 gpt-AX6600-rootfs2048M.bin f05fb87ce722f422e3e3eb4a651f74be
AX1800 Pro gpt-AX1800Pro-rootfs2048M.bin 4e68b53b2646a4824aed74a4f5b656ea

关键字看 rootfs2048M(rootfs 2GB)HLOS12M(内核 12MB,已够新版 GWRT 用)no-last-partition(不预留最后的 storage 分区,留给我们后面手动建)。文件只有 17KB——它只覆盖 eMMC 前 34 个扇区(每扇区 512 字节)的 GPT 头。

5.2 写法 A:U-Boot Web 上传(保守推荐)

这是默认教程的走法——刷完 U-Boot 后按 reset 进 U-Boot Web 界面,找到 “GPT 分区表” / “Partition Table” 上传位,把 GPT 模板传上去。

千万别传到 “全盘镜像 / Whole flash” ——那个是覆盖整个 eMMC(包括 ART!),传错就废。

点上传,等几秒,提示成功后先别动——这时候机器分区表已经换了,但还在 U-Boot 里没启动操作系统,可以继续刷 factory(下一阶段)。

5.3 写法 B:telnet 里在线 dd(更快,老手推荐)

既然 4.2 已经在 telnet 里 curl 过了 U-Boot,GPT 也完全可以同样地拉下来、md5 校验、dd 直接写。这一步可以在刷 U-Boot 之前的同一个 telnet 会话里就做完,把所有”分区前提”一次性搞定,省得再切换 U-Boot Web。

cd /tmp

# 1) 在线下载 + md5sum(AX6600 / 太乙 用同一份)
curl -fLO https://godsun.pro/wp-content/uploads/flash-files/gpt-AX6600-rootfs2048M.bin && md5sum gpt-AX6600-rootfs2048M.bin
# 期望:f05fb87ce722f422e3e3eb4a651f74be
# 不一致就 rm -f 重拉

# 2) MD5 正确才 dd,写到 /dev/mmcblk0 最前面(覆盖 MBR + 主 GPT 头)
dd if=gpt-AX6600-rootfs2048M.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
sync

# 3) 回读对比,确认 dd 内容正确
dd if=/dev/mmcblk0 bs=512 count=34 2>/dev/null | md5sum
md5sum gpt-AX6600-rootfs2048M.bin

两个 md5 完全一致就说明 GPT 已经换好了。这时候不要重启(重启会按新 GPT 加载,可能因为内核 A/B 分区还没刷新固件而启动不了)—— 直接接 4.3 的 dd U-Boot,然后按 reset 进 U-Boot Web 刷 factory。

AX1800 Pro 同样办法,把文件名换成 gpt-AX1800Pro-rootfs2048M.bin、MD5 换成 4e68b53b2646a4824aed74a4f5b656ea 即可。

选 A 还是 B? 第一次刷强烈推荐 A——U-Boot Web 有图形界面,看得见进度和报错,心里踏实。我自己折腾到现在,第二台机器开始就走 B 了,telnet 一把梭,三五分钟搞定。

5.4 心理准备:只有最后一个分区会消失

这套 GPT 模板叫 no-last-partition,意思是不预留最后那个 storage 分区——刷完之后 p27 storage 不见了,留出剩余空间给我们自己规划。前面 p24~p26(plugin / log / swap)位置都没变,原本里面的数据理论上也都在。但我建议反正备份做了,刷完 GPT 之后就当 p24~p26 也是空的处理,重新格式化一下,省得新老数据混着出怪问题。

所以阶段五要做的是:补建 storage 分区,顺便把 plugin/log 格式化一遍。备份的价值还是不亏。

六、阶段五:刷 GWRT + 重建分区

6.1 刷 factory 固件

U-Boot Web 上,找到 “factory 镜像” 上传位,把 GWRT 的 factory 镜像传上去。factory 镜像包含 kernel + rootfs + 启动配置,首刷必须走 factory,之后才能用 sysupgrade 升级。

固件本身去 GWRT 官方 / GitHub Action 拉对应机型的:

  • AX6600 → gwrt-ipq60xx-jdcloud_re-cs-02-factory.bin
  • AX1800Pro → gwrt-ipq60xx-jdcloud_re-ss-01-factory.bin
  • 太乙 → gwrt-ipq60xx-jdcloud_re-cs-07-factory.bin

上传完点确认刷写,等几分钟(中间灯会变化),机器自动重启。

6.2 进 GWRT

电脑接 LAN(IP 还在 192.168.1.x 段),浏览器 192.168.1.1——看到熟悉的 LuCI 界面,恭喜。默认账户:

root / (空密码)

立刻进系统做这几件事:

  1. System → Administration → 改 root 密码
  2. Network → Interfaces → 配 WAN(接外网)
  3. System → Software → opkg update(确认软件源能拉到)
  4. SSH 进去看 uname -a、df -h,确认 rootfs 2GB 没问题

6.3 补建 storage(+ 顺手格式化 plugin/log)

只有 storage(p27)需要重新建,plugin/log/swap 分区表里还在,只需要重新格式化一下。SSH 进 GWRT:

# 1. 用 fdisk 创建 p27 storage(剩余全部空间)
fdisk /dev/mmcblk0
# n 新建分区 → 编号 27 → 起止扇区默认(用全部剩余)→ t 类型 Linux (83) → w 写盘

# 2. 格式化 plugin / log / swap / storage
mkfs.ext4 -F -L plugin /dev/mmcblk0p24
mkfs.ext4 -F -L log /dev/mmcblk0p25
mkswap -L swap /dev/mmcblk0p26
mkfs.ext4 -F -L storage /dev/mmcblk0p27

# 3. 加进 /etc/config/fstab 自动挂载
cat >> /etc/config/fstab << EOF
config mount
    option label 'plugin'
    option target '/mnt/plugin'
    option enabled '1'
EOF
# 类似地加 log / storage,swap 用 config swap

/etc/init.d/fstab enable && /etc/init.d/fstab start

重启验证 df -h 全部正确挂载,就齐活了。

七、踩过的坑

一些我或者别人踩过的细节,看一眼能省事:

  • md5 验证不能省:拿来的 U-Boot 文件、GPT 模板,下载完先 md5sum,传到机器上再 md5sum 一次,写完 eMMC 再读出来 md5sum 一次。任何一次对不上都不能继续。
  • sync 大法:每次 dd 之后立刻 sync,否则重启可能数据没真正落盘。
  • 9008 模式是底牌:万一刷砖,9008 救砖是最后底牌(短接特定测试点 + 厂商救砖工具 + 把 p13/p14 备份刷回去)。短接位置网上 IPQ6018 都有图,平时记一下。
  • BOOTCONFIG 别随便改:A/B 双系统的切换靠它,原理是 fastboot 风格的 active slot。手贱用 dd 把它清零会进不了系统。
  • 第三方 U-Boot 选对 NOR/eMMC:JDBox 是 eMMC 版本,文件名带 emmc;同系列也有 NOR 版本(比如某些 AX1800Pro 老批次),用错文件直接砖。
  • 升级走 sysupgrade:首刷必须 factory,但之后千万别再走 U-Boot,直接 SSH 进 GWRT 用 sysupgrade -n /tmp/firmware.bin 升级。-n 是不保留配置,第一次升级建议用,跑一段时间稳了之后可以去掉。
  • 太乙的特殊性:cs-07 就是 cs-02 去 WiFi 模块的版本,刷机流程一模一样,但装完 GWRT 别去 LuCI 看 WiFi——根本没有,不是 bug。当 NAS / PCDN 用是真香。

八、刷机文件下载(单文件 + MD5)

所有 U-Boot 和 GPT 模板按单文件直接提供,每个文件的期望 MD5 都在 §四、§五 里给过了。telnet 里直接 curl 拉对应文件即可,比解压 zip 省事:

类型 文件 MD5
U-Boot · AX6600 / Athena jdcloud_re-cs-02.bin 0c74af00d882d462f43fe10bf9e0aaf4
U-Boot · AX1800 Pro jdcloud_re-ss-01.bin 2266697f5106c170a91e283adf7a3d19
U-Boot · 太乙 jdcloud_re-cs-07.bin c862a792447131e832fd2daf7546fbf0
GPT · AX6600 / 太乙 gpt-AX6600-rootfs2048M.bin f05fb87ce722f422e3e3eb4a651f74be
GPT · AX1800 Pro gpt-AX1800Pro-rootfs2048M.bin 4e68b53b2646a4824aed74a4f5b656ea
📋 全部 MD5 列表 MD5SUMS

GWRT factory 固件本身因为体积大、迭代快,建议去 GWRT 官方 GitHub Action 拉最新版。备份脚本因为涉及读取 ART 等敏感分区,没放在这里——直接照着第三章 3.2 抄一份就够用。

九、写在最后

整个过程从拿到机器到完整跑起来 GWRT、装好 Docker,花了大概一个下午。最费时间的地方不是刷机本身(实际刷写就几分钟),而是反复确认——每一步动手之前都要再 md5、再 fdisk、再 df 看一眼,确认动的是该动的那块。京东云盒这种工厂魔改机的最大风险不是技术,是手快眼快脑子慢,一不留神 dd 错分区,ART 就没了。

但只要备份做对了,最坏的结局也就是回 9008 救砖把所有分区刷回原样,机器照样还是原来那台跑 PCDN 的”无线宝”。所以大胆刷,谨慎备,就这八个字。

有问题评论区交流,或者翻一下站里其他京东云盒相关的折腾记录。


本文流程实测于 JDBox Athena AX6600(XOS 4.5.x 固件),AX1800Pro / 太乙 因分区结构一致仅 U-Boot 文件不同,原理同。涉及刷机有变砖风险,请充分理解每一步含义后操作,作者不为变砖负责。