京东云鲁班RE-CP-02 eMMC版免TTL刷OpenWrt25.12.5并扩容eMMC宝宝教程

image
image

参考文献与下载地址(请先看这里)

1.最重要的原始参考教程

本教程最主要参考并扩展自恩山无线论坛下面这篇帖子:

这篇是本文的核心参考来源。原帖面向JDCOS r4310,包含浏览器Console开启Telnet、写入第三方U-Boot、刷OpenWrt25.12以及eMMC扩容等主线步骤。

本文是在实际设备上对原帖进行复现和修正后的结果:

原帖环境:RE-CP-02、JDCOS r4310、OpenWrt25.12.4、eMMC全盘重分区
本文实测:RE-CP-02、JDCOS r4027、OpenWrt25.12.5、仅使用原有p4做extroot

本文实际确认:原帖的Telnet命令注入路线也可以在本机JDCOS-4.0.0.r4027的64GBeMMC版本上使用。

2.其他恩山参考帖子

3.其他教程与资料

4.必须下载的刷机文件

4.1OpenWrt官方固件

本文最终成功刷入的文件应为:

openwrt-25.12.5-ramips-mt7621-jdcloud_re-cp-02-squashfs-sysupgrade.bin

必须确认文件名中同时包含:

ramips
mt7621
jdcloud_re-cp-02
squashfs-sysupgrade

不要选择:

Snapshot
其他京东云型号
initramfs-kernel.bin
第三方“自用”固件
25.12.0-rc2测试固件

本机实测:这个第三方U-Boot的网页Recovery页面应直接上传官方squashfs-sysupgrade.bin。上传initramfs-kernel.bin虽然会显示成功,但正常启动后仍会回到Recovery页面。

4.2第三方U-Boot和原教程工具包

本文实际使用:

文件名:u-boot-mt7621-68.bin
大小:229146字节
SHA256:805E6FCA1CB553C19A1F227B506D2DCBC2DC1A9ED95C3F14373FAE42DD4A203B

这个U-Boot不是OpenWrt官方文件。刷写前必须同时核对文件名、大小和SHA256;任何一项不同都不要写入mtd0

5.电脑端工具下载

正常免TTL路线建议准备:

TTL、TFTP或救砖备用工具:

Windows10/11自带的PowerShell、scpssh通常已经足够完成本文主线步骤,不一定需要安装全部工具。

6.OpenWrt官方文档

链接失效说明:OpenWrt官方链接通常长期有效;恩山隐藏内容可能要求登录和回复;夸克网盘属于第三方分享,可能失效。即使网盘文件名相同,也必须使用本文给出的大小和SHA256重新核对。


实测环境

  • 设备:京东云无线宝鲁班AX1800,型号RE-CP-02
  • 主板:绿色主板
  • 存储:FORESEEFSEI.ASLD-64G,板载64GBeMMC
  • 原厂系统:JDCOS-4.0.0.r4027
  • 最终系统:OpenWrt25.12.5
  • 最终存储:/dev/mmcblk0p4挂载为/overlay,可用空间约53.2GB
  • 刷机方式:浏览器Console开启Telnet,不使用USB-TTL
  • 实测时间:2026年7月

一、这篇教程和原参考教程的关系

原参考教程是:

鲁班(RE-CP-02 r4310)刷机OpenWrt25.12与eMMC全量扩容

本次实际设备是:

JDCOS-4.0.0.r4027

最终实测结果:

r4310教程中的Telnet命令注入路线
在本机r4027 eMMC版上可以使用

因此可以确认:

这条路线不仅适用于原文的r4310,本机实测也适用于JDCOS-4.0.0.r4027的eMMC版本。

但不能理解成所有批次都100%通用。继续操作前必须核对:

设备型号是否为RE-CP-02
mtd0是否为Bootloader
mtd2是否为Factory
eMMC是否为约57.1GB的mmcblk0
第三方U-Boot文件是否与本教程完全一致

二、最终成功状态

本机最终输出如下:

OpenWrt 25.12.5
/dev/mmcblk0p4 on /overlay type ext4 (rw,noatime)
Filesystem          Size   Used   Available
overlayfs:/overlay  53.3G  5.7M   53.2G

启动日志包含:

mmcblk0: mmc0:0001 SLD64G 57.1 GiB
EXT4-fs (mmcblk0p4): mounted filesystem
mount_root: switched to extroot

这说明:

OpenWrt固件位于SPIFlash
64GBeMMC中的p4作为大容量/overlay

三、准备工作

3.1需要的设备

Windows电脑
网线
鲁班原装电源
浏览器
PowerShell
PuTTY或MobaXterm

不需要:

USB-TTL
编程器
TF卡
读卡器

但如果第三方U-Boot写坏,TTL通常也无法直接救回Bootloader,仍可能需要SPI编程器,所以备份不能省。

3.2刷机文件

本次实际使用的第三方U-Boot:

文件名:
u-boot-mt7621-68.bin

大小:
229146字节

SHA256:
805E6FCA1CB553C19A1F227B506D2DCBC2DC1A9ED95C3F14373FAE42DD4A203B

这个文件不是OpenWrt官方文件,必须确认来自可信的原教程资源包。

正式OpenWrt固件应从OpenWrt官方Firmware Selector下载:

Model:JD-Cloud RE-CP-02
Target:ramips/mt7621
Version:25.12.5

需要的文件:

openwrt-25.12.5-ramips-mt7621-jdcloud_re-cp-02-squashfs-sysupgrade.bin

不要刷:

initramfs-kernel.bin
25.12.0-rc2测试版
“自用”第三方版本
其他京东云型号固件
TF卡版恢复镜像
JDCOS.bin

本机实测:将initramfs-kernel.bin上传到这个第三方U-Boot恢复页后,虽然页面显示Upgrade successfully!,但正常启动后仍返回Recovery。
最终直接上传官方squashfs-sysupgrade.bin才成功启动OpenWrt。


四、开启原厂Telnet

4.1接线

电脑网口——鲁班LAN口
鲁班WAN口暂时不接

访问:

http://192.168.68.1

登录JDCOS后台。

4.2打开浏览器Console

按:

F12

进入:

Console/控制台

完整复制下面脚本并回车:

(async () => {
  const session = document.cookie
    .split('; ')
    .find(x => x.startsWith('sessionid='))
    ?.split('=')[1];

  if (!session) {
    throw new Error('没有找到sessionid,请先登录路由器后台。');
  }

  async function runCommand(command) {
    const response = await fetch('/jdcapi', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        jsonrpc: '2.0',
        id: Date.now(),
        method: 'call',
        params: [
          session,
          'jdcapi.static',
          'set_port_forward',
          {
            'on-off': 1,
            name: 't1',
            proto: 'TCP',
            'src-dport': `1234;\`${command}\``,
            ipaddr: '192.168.1.100',
            'dest-port': '80',
            edit: 1
          }
        ]
      })
    });

    console.log(command, response.status, await response.text());
  }

  await runCommand('factory_hm info telnet 1');
  await runCommand('telnetd');

  alert('命令已发送,现在测试192.168.68.1的23端口。');
})();

4.3测试Telnet端口

PowerShell执行:

Test-NetConnection 192.168.68.1 -Port 23

成功应看到:

TcpTestSucceeded : True

然后使用PuTTY或MobaXterm:

协议:Telnet
地址:192.168.68.1
端口:23
用户名:root
密码:原厂路由器管理密码

五、刷机前只读检查

进入Telnet后先执行:

uname -a
cat /proc/mtd
lsblk
fdisk -l /dev/mmcblk0
df -h

5.1正确的SPIFlash布局

本机实际布局:

mtd0: 00040000 00010000 "Bootloader"
mtd1: 00010000 00010000 "Config"
mtd2: 00040000 00010000 "Factory"
mtd3: 00f70000 00010000 "firmware"
mtd4: 003c0000 00010000 "kernel"
mtd5: 00bb0000 00010000 "rootfs"
mtd6: 000d0000 00010000 "rootfs_data"

重点:

mtd0=Bootloader,256KB
mtd2=Factory,256KB

如果你的编号或名称不同,停止操作。

5.2正确的eMMC布局

本机实际结构:

mmcblk0       57.1G
├─mmcblk0p1   100M
├─mmcblk0p2   100M
├─mmcblk0p3     1G
├─mmcblk0p4  54.4G
├─mmcblk0p5   512M
└─mmcblk0p6     1G

确认:

mmcblk0约57.1GB
mmcblk0p4约54.4GB

六、完整备份

没有把备份传回电脑并验证Hash前,禁止执行任何mtd write。

6.1创建备份目录

本机原厂p4挂载在:

/mnt/mmcblk0p4

执行:

BACKUP="/mnt/mmcblk0p4/re_cp_02_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP"
echo "$BACKUP"

6.2备份全部MTD分区

dd if=/dev/mtd0 of="$BACKUP/mtd0_Bootloader.bin" bs=64K
dd if=/dev/mtd1 of="$BACKUP/mtd1_Config.bin" bs=64K
dd if=/dev/mtd2 of="$BACKUP/mtd2_Factory.bin" bs=64K
dd if=/dev/mtd3 of="$BACKUP/mtd3_firmware.bin" bs=64K
dd if=/dev/mtd4 of="$BACKUP/mtd4_kernel.bin" bs=64K
dd if=/dev/mtd5 of="$BACKUP/mtd5_rootfs.bin" bs=64K
dd if=/dev/mtd6 of="$BACKUP/mtd6_rootfs_data.bin" bs=64K
sync

检查:

ls -lh "$BACKUP"

其中:

mtd0_Bootloader.bin应为262144字节
mtd2_Factory.bin应为262144字节

6.3备份eMMC前部原厂区域

原PDF使用:

dd if=/dev/mmcblk0 of="$BACKUP/emmc_before_p4.img" bs=512 count=2508800 conv=fsync

这会进行250万次小块读写,非常慢。

本机改用完全等价的大块命令:

dd if=/dev/mmcblk0 \
   of="$BACKUP/emmc_before_p4.img" \
   bs=1048576 \
   count=1225 \
   conv=fsync

两条命令的总字节数完全相同:

512×2508800
=
1048576×1225
=
1284505600字节

完成后检查:

stat -c '%n %s bytes' "$BACKUP/emmc_before_p4.img"

应为:

1284505600 bytes

6.4生成SHA256

cd "$BACKUP"

sha256sum \
  mtd0_Bootloader.bin \
  mtd1_Config.bin \
  mtd2_Factory.bin \
  mtd3_firmware.bin \
  mtd4_kernel.bin \
  mtd5_rootfs.bin \
  mtd6_rootfs_data.bin \
  emmc_before_p4.img \
  > SHA256SUMS.txt

sync
cat SHA256SUMS.txt

6.5使用SCP复制回Windows

原厂系统中启动Dropbear:

/usr/sbin/dropbear -R -p 22

Windows PowerShell执行:

cd $env:USERPROFILE\Desktop

scp -r root@192.168.68.1:/mnt/mmcblk0p4/re_cp_02_backup_日期时间 .

本机实测传输速度约:

4MB/s

属于正常速度。

Windows端至少确认:

mtd0_Bootloader.bin
mtd2_Factory.bin
emmc_before_p4.img
SHA256SUMS.txt

并逐个核对SHA256全部为OK


七、写入第三方U-Boot

7.1上传U-Boot到路由器

PowerShell执行:

scp "C:\你的路径\u-boot-mt7621-68.bin" root@192.168.68.1:/tmp/

路由器执行:

wc -c /tmp/u-boot-mt7621-68.bin
sha256sum /tmp/u-boot-mt7621-68.bin

本机正确值:

大小:229146
SHA256:
805e6fca1cb553c19a1f227b506d2dcbc2dc1a9ed95c3f14373fae42dd4a203b

7.2写入mtd0

确认所有备份已在电脑后执行:

mtd write /tmp/u-boot-mt7621-68.bin /dev/mtd0
sync

注意:

正确:/dev/mtd0
错误:/dev/mtd2

mtd2是Factory,绝对不能写。

7.3读回校验

head -c 229146 /dev/mtd0 > /tmp/u-boot-readback.bin

sha256sum \
  /tmp/u-boot-mt7621-68.bin \
  /tmp/u-boot-readback.bin

两个Hash必须一致。

再执行:

cmp /tmp/u-boot-mt7621-68.bin /tmp/u-boot-readback.bin \
  && echo "U-Boot读回一致,可以重启" \
  || echo "U-Boot读回不一致,禁止重启"

必须看到:

U-Boot读回一致,可以重启

八、进入U-BootRecovery页面

电脑有线网卡设置:

IP:192.168.68.2
掩码:255.255.255.0
网关:留空
DNS:留空

关闭:

Wi-Fi
ZeroTier
VPN
系统代理

路由器:

断电
按住Joy键
插电
继续按住5-10秒

浏览器访问:

http://192.168.68.1/

第一次如果只显示:

MediaTek U-Boot System Recovery Mode
Page not found

刷新根页面即可。

正常页面应显示:

MediaTek U-Boot System Recovery Mode
Firmware Image
选择文件

九、刷入OpenWrt25.12.5

选择官方文件:

openwrt-25.12.5-ramips-mt7621-jdcloud_re-cp-02-squashfs-sysupgrade.bin

不要选择:

initramfs-kernel.bin
u-boot-mt7621-68.bin
JDCOS.bin

看到:

Upgrade successfully!

以后继续等待5分钟,不刷新、不拔电。

然后:

拔电
等待10秒
不要按Joy或Reset
正常上电
等待3-5分钟

电脑网卡改为:

IP:192.168.1.2
掩码:255.255.255.0

访问:

http://192.168.1.1

初次登录:

用户名:root
密码:留空

登录后立即设置root密码。


十、给OpenWrt联网并安装中文

连接方式:

上游主路由LAN口——鲁班WAN口
电脑——鲁班LAN口

WAN接口根据实际网络配置:

DHCP客户端
或
静态地址
或
PPPoE

本机使用静态WAN地址后成功执行:

apk update

OpenWrt25.12改用apk包管理器。

安装中文:

apk add luci-i18n-base-zh-cn

然后进入:

系统→系统→语言和界面

选择:

简体中文

十一、将eMMC的p4挂载为大容量/overlay

11.1为什么不照原PDF删除p1-p6

原PDF方案会删除eMMC上的全部分区,再建立一个57GB大分区。

本机采用更安全的方案:

保留p1、p2、p3、p5、p6
只格式化原有54.4GB的p4
将p4挂载为/overlay

相比全盘重分区,只少约2.7GB,却显著降低风险。

11.2初始检查

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
block info
df -h
mount | grep mmcblk0

本机初始状态:

/dev/mtdblock6 on /overlay
overlay只有7.7MB
mmcblk0p4为54.4GB ext4
p4未挂载

11.3安装工具

apk update
apk add e2fsprogs kmod-fs-ext4 block-mount

11.4格式化p4

此步骤会清空eMMC中的原厂大数据分区和路由器上的备份副本。
确保备份已经传回电脑并通过Hash验证。

umount /dev/mmcblk0p4 2>/dev/null || true

mkfs.ext4 -F -L overlay -m 0 /dev/mmcblk0p4

本机生成的新UUID:

86102a9d-3be8-468a-b796-0e8924d14941

其他设备的UUID会不同,必须用自己机器的值。

查看:

block info /dev/mmcblk0p4

11.5配置fstab

先获取自己的UUID:

UUID="$(block info /dev/mmcblk0p4 | sed -n 's/.*UUID="\([^"]*\)".*/\1/p')"
echo "$UUID"

写入:

uci -q delete fstab.overlay

uci set fstab.overlay='mount'
uci set fstab.overlay.uuid="$UUID"
uci set fstab.overlay.target='/overlay'
uci set fstab.overlay.fstype='ext4'
uci set fstab.overlay.options='rw,noatime'
uci set fstab.overlay.enabled='1'
uci set fstab.overlay.check_fs='1'

uci commit fstab
uci show fstab.overlay

11.6复制当前overlay

mkdir -p /mnt/emmc
mount /dev/mmcblk0p4 /mnt/emmc

tar -C /overlay -cpf - . | tar -C /mnt/emmc -xpf -

sync

检查:

ls -la /mnt/emmc
cat /mnt/emmc/upper/etc/config/fstab
du -sh /overlay
du -sh /mnt/emmc

正常会看到:

upper
work
lost+found

卸载并重启:

umount /mnt/emmc
sync
reboot

11.7验证extroot

重启后执行:

mount | grep -E 'mmcblk0p4| /overlay '
df -h /
df -h /overlay
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS

本机成功结果:

/dev/mmcblk0p4 on /overlay type ext4 (rw,noatime)
overlayfs:/overlay  53.3G
/dev/mmcblk0p4       53.3G

日志:

logread | grep -Ei 'extroot|overlay|mmc|ext4|mount|fail|error'

本机关键成功行:

mmcblk0: mmc0:0001 SLD64G 57.1 GiB
EXT4-fs (mmcblk0p4): mounted filesystem
mount_root: switched to extroot

启动早期出现若干mtk-msdc host->error探测警告,但后续成功识别eMMC并切换extroot,所以本机不影响使用。

十二、重启稳定性测试

创建测试文件:

echo "eMMC overlay OK $(date)" > /root/EMMC_OVERLAY_TEST
sync
reboot

重启后:

cat /root/EMMC_OVERLAY_TEST
df -h /
mount | grep mmcblk0p4

建议测试:

至少3次软件reboot
至少2次彻底断电再上电

每次都应满足:

测试文件存在
/dev/mmcblk0p4仍挂载到/overlay
根目录仍为53GB左右

十三、最容易踩的坑

1.误以为是TF卡版

拆机后没有找到TF卡,是因为本机是板载FORESEE64GBeMMC版。

2.把initramfs上传到Recovery

页面可能显示升级成功,但正常启动仍返回Recovery。

本机最终正确操作是:

直接上传官方squashfs-sysupgrade.bin

3.看到Recovery页面显示Page not found

刷新:

http://192.168.68.1/

即可出现上传框。

4.看到Upgrade successfully后马上断电

应继续等待约5分钟,再断电10秒后正常启动。

5.Windows测试流量走ZeroTier

查看Test-NetConnection的:

InterfaceAlias
SourceAddress

刷机期间禁用ZeroTier、Wi-Fi和VPN。

6.dd备份太慢

不要使用:

bs=512 count=2508800

改用等价的:

bs=1048576 count=1225

7.中文语言只有English

先联网,然后安装:

apk update
apk add luci-i18n-base-zh-cn

8.照原PDF删除全部eMMC分区

本机没有必要。只使用原有54.4GB的mmcblk0p4更加安全。


十四、适用范围结论

本教程完整实测成功的组合是:

京东云无线宝鲁班RE-CP-02
绿色主板
FORESEE64GBeMMC
JDCOS-4.0.0.r4027
u-boot-mt7621-68.bin
OpenWrt25.12.5

因此,相比原参考教程:

原教程:JDCOS r4310 → OpenWrt25.12.4
本教程:JDCOS r4027 → OpenWrt25.12.5

可以明确说:

本次实测把原教程的适用范围,从r4310成功扩展到了r4027 eMMC版,并将最终OpenWrt版本更新到了25.12.5。

但教程发布时应注明:

仅在上述硬件和分区布局上实测
第三方U-Boot存在风险
刷机前必须备份Bootloader和Factory
不同主板、存储和固件批次不得盲刷

十五、参考资料说明

本文使用的恩山帖子、原始教程、固件下载地址、工具下载地址和OpenWrt官方文档,已经统一放在文章开头的“参考文献与下载地址”中,便于刷机前集中核对。

其中最重要的主参考来源是:

posted @ 2026-07-13 02:39  wickyan  阅读(118)  评论(0)    收藏  举报