👁 2807

和刷其他京东云的区别差不多,两种方式可选。

原厂 GPT 分区表

IPQ5018 平台,eMMC 64GiB,26 个分区。刷机前参考此表确认分区号,特别是 APPSBL(P11)、BOOTCONFIG(P2/P3)。

#分区名Start (sector)End (sector)SizeCode类型
10:SBL134545256.0 KiBA012BOOT
20:BOOTCONFIG546801128.0 KiBFFFFCONFIG
30:BOOTCONFIG18021057128.0 KiBFFFFCONFIG
40:QSEE10582337640.0 KiBA016BOOT
50:QSEE_123383617640.0 KiBFFFFBOOT
60:DEVCFG36183873128.0 KiBFFFFBOOT
70:DEVCFG_138744129128.0 KiBFFFFBOOT
80:CDT41304385128.0 KiBA01BBOOT
90:CDT_143864641128.0 KiBFFFFBOOT
100:APPSBLENV46425153256.0 KiBFFFFBOOT
110:APPSBL51546433640.0 KiBA015UBOOT
120:APPSBL_164347713640.0 KiBFFFFUBOOT
130:ART77148737512.0 KiBFFFFFW
140:WIFIFW8738210256.0 MiBFFFFFW
150:WIFIFW_121026333136.0 MiBFFFFFW
160:BTFW3331433825256.0 KiBFFFFFW
170:BTFW_13382634337256.0 KiBFFFFFW
180:HLOS34338466256.0 MiBFFFFKERNEL
190:HLOS_146626589136.0 MiBFFFFKERNEL
20rootfs5891418179360.0 MiBFFFFROOTFS
21rootfs_118179430467360.0 MiBFFFFROOTFS
22rootfs_data304674566817128.0 MiBFFFFDATA
23plugin56681826639691024.0 MiBFFFFDATA
24log26639702926113128.0 MiBFFFFDATA
25swap29261143974689512.0 MiBFFFFSWAP
26store39746904964702483.4 MiBFFFFSTORE

GPT GUID: 98101B32-BBE2-4BF2-A06E-2BB33D000C20 | 总扇区 4964702 | 对齐 2-sector | 高亮:引导/UBOOT BOOTCONFIG 内核/根文件系统 用户数据/存储

方法一:拆机接 TTL 刷

接线:RX→TX、TX→RX、GND→GND,3.3V 电平。看不懂的放弃,看得懂的继续。

打断 U-Boot

开机后马上粘贴这行打断 TTL(只能复制粘贴整行),密码是 jdqca。密码不对多试几次,或者看 这篇 TTL 刷 U-Boot 详解 里的视频。

TFTP 刷入 U-Boot

⚠️ 先备份原厂系统及分区再操作!打开 tftp64,选到 U-Boot 文件夹。

setenv serverip 192.168.1.123 && setenv ipaddr 192.168.1.1
tftpboot uboot.mbn
flash 0:APPSBL && flash 0:APPSBL_1

看到进度 ## 显示刷写完成。报错的话检查防火墙和网卡设置。

刷入 GPT 分区表

刷完 U-Boot 后顺便刷 GPT,决定以后系统分区大小:

tftpboot 0x44000000 gpt.bin
mmc dev 0 && mmc erase 0x0 0x22 && mmc write 0x44000000 0x0 0x22
flasherase 0:BOOTCONFIG && flasherase 0:BOOTCONFIG1

进 U-Boot Web 刷固件

断电,插电同时按住 JOY 按钮进入 U-Boot。网线接 WAN 口,电脑 IP 设为 192.168.1.123,浏览器打开192.168.1.1 U-Boot Web 页面,上传固件即可。


方法二:开启 Telnet 刷

通上网直接在线刷写 U-Boot 和 GPT,不需要 TTL 工具,但每步必须对比校验是否正确完成,否则变砖!

开启 Telnet

用恩山大神的方法开启 Telnet(最新固件可能不行,大多数还行),详见 BE6500 文章的 Telnet 开启助手。

下载并校验文件

curl -o uboot.bin "https://godsun.pro/wp-content/uploads/halo/jdcax3000uboot.bin" && md5sum uboot.bin
# MD5 应为: ce26eed3983e6e96173fceef75ac4045

MD5 对不上就别继续,重新下载。GPT 文件同理,MD5 应为 0896dba8958684376a3c16868e490902。

刷写 U-Boot(P11 + P12)

dd if=/uboot.bin of=/dev/mmcblk0p11 bs=512 count=1280 && dd if=/dev/mmcblk0p11 bs=512 count=1280 | md5sum
dd if=/uboot.bin of=/dev/mmcblk0p12 bs=512 count=1280 && dd if=/dev/mmcblk0p12 bs=512 count=1280 | md5sum

写后 MD5 与文件一致才继续。

刷入 GPT 分区表

dd if=/gpt.bin of=/dev/mmcblk0 bs=512 count=34
sync

写入后重启进 U-Boot,新分区表生效,某些分区大小会改变(如 rootfs 扩大)。之后按住 JOY 进 U-Boot Web 刷固件。

清空 BOOTCONFIG

dd if=/dev/zero of=/dev/mmcblk0p2 bs=512 count=256 && dd if=/dev/zero of=/dev/mmcblk0p3 bs=512 count=256

清完后重启,按住 JOY 进 U-Boot Web 刷固件。

断电,插电同时按住 JOY 按钮进入 U-Boot。网线接 WAN 口,电脑 IP 设为 192.168.1.123,浏览器打开192.168.1.1 U-Boot Web 页面,上传固件即可。

PS:目前在线刷的是最新的uboot已经支持DHCP 不需要设置固定的ip。。。