璀璨's Blog

關 於 藝 術 丨 源 於 生 活
關 於 理 想 丨 始 於 我 們
首页 » 网络笔记 » 京东云百里AX6000路由器刷Openwrt/ImmortalWrt 教程 re-cp-03 / re-cs-05 都可以

京东云百里AX6000路由器刷Openwrt/ImmortalWrt 教程 re-cp-03 / re-cs-05 都可以

折腾了一晚上。终于成功了,网上的很多教程要么不写全要么找不到固件。


点击查看原图



SSH工具软件:Xshell https: //pan.lanzoui.c om/b0f19ry9g或者putty https://www.423down.com/11333.html
文件传输工具软件:WinSCP https://www.ghxi.com/winscp.html

关于mt798x改内存:目前开源ATF 7981 DDR3最高512M,DDR4最高1G;7986 DDR3最高512M,DDR4 2G。

  • 0.开SSH

京东云AX6000百里无软破解SSH,通过原厂系统升级官方放出原厂OP可获取自行SSH权限。
原厂系统中升级官方原厂OP:
openwrt-re-cp-03-4.1.0.r4005-1287bf0122329d5c3acbb7198e04b1e4.bin
注意:官方宣传升级OP会失去保修,请酌情调整。

点击查看原图


级系统重启完成后,使用SSH软件登录192.168.68.1,端口22,用户名root,没有密码。
输入命令删除这两个环境变量:

fw_setenv jdc_crc_version && fw_setenv jdc_opp_version 


点击查看原图

  • 1. 备份原厂分区

备份要gpt到mmcblk0p12 swap分区即可,最后一个mmcblk0p13存储分区不备份了。
因为plugin、swap分区都有1G,比较大,所以先备份到挂载点/mnt/mmcblk0p13中,然后使用WinScp之类的软件登录下载下来。

提示:bl2在/dev/mmcblk0boot0,uboot在fip分区。unpartitioned.bin
是全0的空白文件,是为了后面可以备份使用的分区按顺序直接得到一个eMMC img镜像。
除交换eMMC,这个img基本用不到,不过还是全部分区备份为好。
注意:放在一起的命令全部复制粘贴执行,sync也一起复制,最后的时候回车执行同步即可,下同,不再赘述。
这行sync命令主要是为了方便多行命令一起复制粘贴执行,不会遗漏上面的命令。

直接复制下面全部命令,粘贴执行即可:

dd if=/dev/mmcblk0boot0 bs=512 count=2048 of=/mnt/mmcblk0p13/mmcblk0boot0_bl2.bin conv=fsync
dd if=/dev/mmcblk0p1 of=/mnt/mmcblk0p13/mmcblk0p1_PMBR.bin conv=fsync
dd if=/dev/mmcblk0 bs=512 skip=34 count=8158 of=/mnt/mmcblk0p13/mmcblk0p1_unpartitioned.bin conv=fsync
dd if=/dev/mmcblk0p2 of=/mnt/mmcblk0p13/mmcblk0p2_u-boot-env.bin conv=fsync
dd if=/dev/mmcblk0p3 of=/mnt/mmcblk0p13/mmcblk0p3_factory.bin conv=fsync
dd if=/dev/mmcblk0p4 of=/mnt/mmcblk0p13/mmcblk0p4_fip.bin conv=fsync
dd if=/dev/mmcblk0p5 of=/mnt/mmcblk0p13/mmcblk0p5_kernel.bin conv=fsync
dd if=/dev/mmcblk0p6 of=/mnt/mmcblk0p13/mmcblk0p6_rootfs.bin conv=fsync
dd if=/dev/mmcblk0p7 of=/mnt/mmcblk0p13/mmcblk0p7_kernel2.bin conv=fsync
dd if=/dev/mmcblk0p8 of=/mnt/mmcblk0p13/mmcblk0p8_rootfs2.bin conv=fsync
dd if=/dev/mmcblk0p9 of=/mnt/mmcblk0p13/mmcblk0p9_rootfs_data.bin conv=fsync
dd if=/dev/mmcblk0p10 of=/mnt/mmcblk0p13/mmcblk0p10_log.bin conv=fsync
dd if=/dev/mmcblk0p11 of=/mnt/mmcblk0p13/mmcblk0p11_plugin.bin conv=fsync
dd if=/dev/mmcblk0p12 of=/mnt/mmcblk0p13/mmcblk0p12_swap.bin conv=fsync
sync 

耐心等待执行完成,最后一行同步回车执行即可,注意看最后一个swap分区是否备份。
然后使用WinSCP之类的软件登录路由器,到/mnt/mmcblk0p13目录下载下来保存到电脑上。

WinScp
软件登录路由器,协议SCP,IP 192.168.68.1,端口22,点击高级,高级站点设置-连接去掉勾选“优化连接缓冲大小”,再点击登录。

点击查看原图

注:/mnt/mmcblk0p13里的aiecpluginD、jdc_docker文件夹里面是跑分的存储数据。
如果不大,也可以自行压缩后备份,刷机后直接恢复到存储分区,这样回原厂分直接用这些数据,可以更快恢复恢复。
麻烦建议不太备份,回原厂后重新备份即可。

  • 2.刷bl2和uboot

百里的bl2和uboot已开启安全Boot的,把bl2和uboot所在需要fip分区一起替换掉,不能只替换uboot!!!
有些数据清理倾向,我直接将编译得到的bl2二进制刷文件尾部填充0扩大至256KB,fip尾部填充0至2048KB。
这样文件就可以直接覆盖有数据部分,默认清空分区刷再写,所以看着文件有点大。
当然直接得到编译的原始文件也使用问题刷写也可以。

将bl2和uboot上传到路由器/tmp目录,SSH输入命令验证md5:

md5sum /tmp/mt7986_jdcloud_re-cp-03*.bin 

2024.10.10版本bl2、uboot的md5值为:

root@OpenWrt:~# md5sum /tmp/mt7986_jdcloud_re-cp-03*.bin
6c0d654a9dc261b769b472f1e3bb4df9  /tmp/mt7986_jdcloud_re-cp-03-bl2_20241010.bin
053cb614b1309f5d04544fb3380548ed  /tmp/mt7986_jdcloud_re-cp-03-fip_legacy-and-fit_20241010.bin 

核对md5正常后,先输入下面命令切换到shell (ash):

ash 

然后一起复制下面命令粘贴执行,刷写bl2和uboot:

echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=/tmp/mt7986_jdcloud_re-cp-03-bl2_20241010.bin of=/dev/mmcblk0boot0 conv=fsync
echo 1 > /sys/block/mmcblk0boot0/force_ro
dd if=/tmp/mt7986_jdcloud_re-cp-03-fip_legacy-and-fit_20241010.bin of=$(blkid -t PARTLABEL=fip -o device) conv=fsync
sync 

最后一行sync回车执行,刷写完成没有报错,则检查下分区的md5值,和我一样即可,不一样就重新刷,无法重启!

md5sum /dev/mmcblk0boot0 && md5sum $(blkid -t PARTLABEL=fip -o device) 

输出结果和我一样即可:

root@OpenWrt:~# md5sum /dev/mmcblk0boot0 && md5sum $(blkid -t PARTLABEL=fip -o device)
7dfc7a41871f6dcfd8fbcdc23706ee5c  /dev/mmcblk0boot0
053cb614b1309f5d04544fb3380548ed  /dev/mmcblk0p4 

到这里bl2和uboot已经刷好了,不要重启,连接刷gpt分区表。

注:如果是从ImmortalWrt天灵单分区分区表或OpenWrt、ImmortalWrt主线分区表刷uboot,这里验证fip分区的md5是不一样的。
因为他们的分区表把原厂2M的fip分区扩大到了4M,我这个分区表还是保持fip为2M。
临时分区可以用下面命令验证fip数据的md5,和上面一样即可:

dd if=$(blkid -t PARTLABEL=fip -o device) bs=512 count=4096 | md5sum 

后面再刷我的gpt分区表,fip分区会变成2M,重启新的分区表生效后,再验证分区的md5就会和我的一样了。

天灵和大雕的刷机命令是直接使用偏移量,因为fip分区偏移量不变,所以不用管设备号。
我上面刷uboot的命令自动查找fip分区所在设备号,也不用你管设备号,直接用。
更新uboot建议使用我教程的命令,或者直接进Uboot Webfailsafe UI(uboot webui)里面更新即可。bl2一般不需要再更新了。

  • 3.刷gpt分区表

最初OP没有sgdisk,刷gpt分区表前,先安装sgdisk以便后面编辑分区表。
将sgdisk文件夹里面的sgdisk_1.0.6-1_aarch64_cortex-a53.ipk上传到/tmp目录,然后SSH运行下面命令安装:

opkg install -d root /tmp/sgdisk_1.0.6-1_aarch64_cortex-a53.ipk 

点击查看原图


我的百里gpt分区表保留了原厂分区的分区日志、插件、swap,没有最后一个存储大分区,需要在刷完分区表后使用sgdisk命令新建存储。gpt
分区表文件名中rootfs512M_生产512M代表rootfs和生产分区分别都是512M,依次类推。kernel
+rootfs闭源固件用于21.02闭源固件(.bin格式Legacy image),生产分区用于openwrt、immortalwrt主线master/23.05分支硬件(.itb格式FIT
这个rootfs/生产大小就是固件+overlay的大小,overlay估计是刷固件后的剩余空间(填充空间)大小,建议使用rootfs512M/生产512M的分区表,当然也选择自己大小的分区表。因为刷分区
需要改变了后面的分区的偏移量,所以后面面分区的数据就不能识别了。
如果不需要回原厂跑分,直接使用RAX3000M-eMMC/XR30-eMMC的分区表也可以,新建和删除最后一个存储分区的命令还是用百里的。
如果要回原厂跑分,后面会讲到需要先恢复日志、插件、swap,新建并删除最后一个存储分区。

上传你需要rootfs/生产大小的gpt分区表文件到路由器/tmp目录,先验证md5:

md5sum /tmp/jdcloud_re-cp-03_*gpt.bin 
root@OpenWrt:~# md5sum /tmp/jdcloud_re-cp-03_*gpt.bin
823e50e29dd27b55ce11a3757e676da7  /tmp/jdcloud_re-cp-03_rootfs1024M_production1024M-gpt.bin
2d57350e2f5da3a7c7fbc2b6a196a82f  /tmp/jdcloud_re-cp-03_rootfs256M_production256M-gpt.bin
3abe28bfa7b6072b05059c6cdf292a6f  /tmp/jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin 

上传的文件的md5信息和上面对应文件的md5对比,没问题即可。
下面的命令以rootfs/生产512M的分区表为例,如果换其他的分区表,只修改参数中的gpt分区表文件名即可,其他不要改。
第1条dd命令是读取你的gpt分区表文件到/d ev/mmcblk0的前34个扇区
第2条sgdisk命令是用未分配空间新建存储分区,-1G表示的1G空间留白,可自行调整
第3条sync命令主要是为了方便多行命令一起复制粘贴执行,不会遗漏上面的命令
接着一起复制下面3条命令,一起粘贴执行:

dd if=/tmp/jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
sgdisk -e -n 0:0:-1G -c 0:storage -t 0:0FC63DAF-8483-4772-8E79-3D69D8477DE4 -u 0:5D18C072-ADB3-412B-BF95-37617B01ADF8 -p /dev/mmcblk0
sync 

最后一行sync回车执行,你会看到如下输出:

root@OpenWrt:~# dd if=/tmp/jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
34+0 records in
34+0 records out
root@OpenWrt:~# sgdisk -e -n 0:0:-1G -c 0:storage -t 0:0FC63DAF-8483-4772-8E79-3D69D8477DE4 -u 0:5D18C072-ADB3-412B-BF95-37617B01ADF8 -p /dev/mmcblk0
Setting name!
partNum is 9
Disk /dev/mmcblk0: 241664000 sectors, 115.2 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 2BD17853-102B-4500-AA1A-8A21D4D7984D
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 241663966
Partitions will be aligned on 1024-sector boundaries
Total free space is 2105310 sectors (1.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            8192            9215   512.0 KiB   8300  u-boot-env
   2            9216           13311   2.0 MiB     8300  factory
   3           13312           17407   2.0 MiB     8300  fip
   4           17408           50175   16.0 MiB    8300  kernel
   5           50176         1098751   512.0 MiB   8300  rootfs
   6         1098752         2147327   512.0 MiB   FFFF  production
   7         2147328         2281471   65.5 MiB    8300  log
   8         2281472         4378623   1024.0 MiB  8300  plugin
   9         4378624         6475775   1024.0 MiB  8300  swap
  10         6475776       239566814   111.1 GiB   8300  storage
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
root@OpenWrt:~# sync
root@OpenWrt:~# 

dd写入没有报错,sgdisk最后输出成功。如果分区表明显不一样或有错误则及时排错,重新刷。
检查第5、6个分区rootfs、生产是分区表设置的大小,比如rootfs/生产512M的分区表rootfs/生产就是512MB。
检查第9个分区存储大小接近整个eMMC大小,分区比如128G eMMC,存储有110GB左右。

建议此时备份下载修改后的分区表,以后有问题进不了系统,可以直接uboot刷这个分区表。
当然重刷分区表然后重建分区也行,一样的。

dd if=/dev/mmcblk0 bs=512 count=34 of=/tmp/mmcblk0_GPT_sgdisk.bin 

都没有问题可以断电,只需复位上电进uboot刷固件就可以了。

  • 4.刷入固件

  • 这个uboot不支持DHCP,电脑需要设置ip 192.168.1.2/24,连接网线到路由器lan口,路由上电按reset,等待灯变成蓝色,说明uboot webui已启动。

  • 点击查看原图


       浏览器打开192.168.1.1,上传固件刷写成功后绿灯会亮3,然后重启。注意:其他大佬的uboot可能不一样。


点击查看原图


6666.png

更新完把IP改回自动获取, 就可以进到新系统了。


  • uboot

    不但可以刷固件,还可以更新bl2、uboot和gpt,打开相应的网页即可,非必要不需要更新:
    http://192.168.1.1 刷写固件
    http://192.168.1.1/uboot.html 刷写uboot
    http://192.168.1.1/bl2.html 刷写bl2,注意刷写eMMC的bl2文件不大于1MB
    http://192.168.1.1/gpt.html 刷写eMMC机箱的gpt分区表
    http://192.168.1.1/simg.html 刷写单个镜像(新增功能)
    http://192.168.1.1/initramfs.html 刷写内存启动固件initramfs
    注意:刷写bl2、gpt、simg不会验证文件,请务必完成原机备份并确认上传文件的有效性,特别是simg!!!
    关于单个镜像:
    eMMC是从gpt到最后一个分区的分区间,只合并到fip分区也可以,不包含bl2,bl2需要单独刷写
    注意:eMMC从gpt到第一个分区间有段空白是否分区分区,请用我教程备份的分区bin文件进行分区

    uboot刷好第三方OP系统后,用SSH登录命令清理下最后一个存储分区。

    mkfs.ext4 $(blkid -t PARTLABEL=storage -o device) 


文章如无特别注明均为原创! 作者: 璀璨, 转载或复制请以 超链接形式 并注明出处 璀璨's Blog
原文地址《 京东云百里AX6000路由器刷Openwrt/ImmortalWrt 教程 re-cp-03 / re-cs-05 都可以》发布于2026-4-30

分享到:
打赏

评论

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

sitemap