618京东搞了一堆卷,100入手了两台京东云AX1800Pro路由器 64GB版本的
所需文件:链接
先说一下具体参数:
CPU:高通IPQ6000,4x Cortex [email protected] 1xNPU
内存:512MB
储存:64GB eMMC5.1
2.4G :高通QCN2022 支持最大574Mbps
5G:高通QCN5052 支持最大1201Mbps
扩展:1xUSB 3.0 5Gbps
正式开启刷机教程
拿到路由器不要联网不要联网不要联网,直接以默认设置进入系统,关闭自动更新固件(新版本固件必须拆机使用ttl刷机)
打开SSH
首先查看路由器固件版本,我的路由器为2242版本,2242版本以上需要使用U盘
老版本固件开ssh
20XX版本在路由器管理页面上按F12,在console中输入一下命令,输入以下命令即可打开ssh
$.ajax({
url: "/jdcapi",
async: false,
data: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "call",
params: [
$.cookie("sessionid"),
"service",
"set",
{
"name": "dropbear",
"instances": {"instance1": {"command": ["/usr/sbin/dropbear"]}}
}
]
}),
dataType: "json",
type: "POST"
})
此时,使用ssh软件连接路由器即可连接
新版本固件开ssh
如果是2242-2262版本区间的固件,需要准备一个U盘,一台Linux设备(macOS也可以,在macOS上安装读取ext4分区的软件就行)
1.给U盘分两个ext4格式的分区
2.把U盘插上京东路由器,给路由器正常联网,查看U盘是不是正常在跑业务
3.如果U盘正常再跑业务,把U盘拔下来,插到Linux电脑上
京东云会使用U盘第二个分区作为云盘分区,通过对U盘里第二个分区里的的文件建立软连接,达到修改系统文件的目的
ln -s /etc/rc.local /mnt/sda2/rc.local
ln -s /etc/init.d/done /mnt/sda2/done
如果你的U盘挂在的文件夹不是/mnt/sda2,请将目录改为自己挂在U盘第二分区的目录
把移动硬盘插回AX1800中,打开我的电脑,右键,选择添加一个网络位置
地址:http://192.168.68.1:56589
如果56589端口不能用,更换端口为56590端口
这样就可以编辑U盘里的rc.local和done文件了
rc.local是配置开机自启动的,在“exit”前一行加上“/usr/sbin/dropbear”
取消注释done文件里的14-16行
保存后,重启路由器,即打开ssh
备份分区
dd if=/dev/mmcblk0 bs=512 count=34 of=/mnt/mmcblk0p27/mmcblk0_GPT.bin conv=fsync
dd if=/dev/mmcblk0p1 of=/mnt/mmcblk0p27/mmcblk0p1_0SBL1.bin conv=fsync
dd if=/dev/mmcblk0p2 of=/mnt/mmcblk0p27/mmcblk0p2_0BOOTCONFIG.bin conv=fsync
dd if=/dev/mmcblk0p3 of=/mnt/mmcblk0p27/mmcblk0p3_0BOOTCONFIG1.bin conv=fsync
dd if=/dev/mmcblk0p4 of=/mnt/mmcblk0p27/mmcblk0p4_0QSEE.bin conv=fsync
dd if=/dev/mmcblk0p5 of=/mnt/mmcblk0p27/mmcblk0p5_0QSEE_1.bin conv=fsync
dd if=/dev/mmcblk0p6 of=/mnt/mmcblk0p27/mmcblk0p6_0DEVCFG.bin conv=fsync
dd if=/dev/mmcblk0p7 of=/mnt/mmcblk0p27/mmcblk0p7_0DEVCFG_1.bin conv=fsync
dd if=/dev/mmcblk0p8 of=/mnt/mmcblk0p27/mmcblk0p8_0RPM.bin conv=fsync
dd if=/dev/mmcblk0p9 of=/mnt/mmcblk0p27/mmcblk0p9_0RPM_1.bin conv=fsync
dd if=/dev/mmcblk0p10 of=/mnt/mmcblk0p27/mmcblk0p10_0CDT.bin conv=fsync
dd if=/dev/mmcblk0p11 of=/mnt/mmcblk0p27/mmcblk0p11_0CDT_1.bin conv=fsync
dd if=/dev/mmcblk0p12 of=/mnt/mmcblk0p27/mmcblk0p12_0APPSBLENV.bin conv=fsync
dd if=/dev/mmcblk0p13 of=/mnt/mmcblk0p27/mmcblk0p13_0APPSBL.bin conv=fsync
dd if=/dev/mmcblk0p14 of=/mnt/mmcblk0p27/mmcblk0p14_0APPSBL_1.bin conv=fsync
dd if=/dev/mmcblk0p15 of=/mnt/mmcblk0p27/mmcblk0p15_0ART.bin conv=fsync
dd if=/dev/mmcblk0p16 of=/mnt/mmcblk0p27/mmcblk0p16_0HLOS.bin conv=fsync
dd if=/dev/mmcblk0p17 of=/mnt/mmcblk0p27/mmcblk0p17_0HLOS_1.bin conv=fsync
dd if=/dev/mmcblk0p18 of=/mnt/mmcblk0p27/mmcblk0p18_rootfs.bin conv=fsync
dd if=/dev/mmcblk0p19 of=/mnt/mmcblk0p27/mmcblk0p19_0WIFIFW.bin conv=fsync
dd if=/dev/mmcblk0p20 of=/mnt/mmcblk0p27/mmcblk0p20_rootfs_1.bin conv=fsync
dd if=/dev/mmcblk0p21 of=/mnt/mmcblk0p27/mmcblk0p21_0WIFIFW_1.bin conv=fsync
dd if=/dev/mmcblk0p22 of=/mnt/mmcblk0p27/mmcblk0p22_rootfs_data.bin conv=fsync
dd if=/dev/mmcblk0p23 of=/mnt/mmcblk0p27/mmcblk0p23_0ETHPHYFW.bin conv=fsync
dd if=/dev/mmcblk0p24 of=/mnt/mmcblk0p27/mmcblk0p24_plugin.bin conv=fsync
dd if=/dev/mmcblk0p25 of=/mnt/mmcblk0p27/mmcblk0p25_log.bin conv=fsync
dd if=/dev/mmcblk0p26 of=/mnt/mmcblk0p27/mmcblk0p26_swap.bin conv=fsync
将生成的bin文件下载下来即可
刷入uboot
首先将uboot文件上传到/tmp目录
dd if=/tmp/uboot-JDC_AX1800_Pro-AX6600_Athena-20240409.bin of=$(blkid -t PARTLABEL=0:APPSBL -o device) conv=fsync
dd if=/tmp/uboot-JDC_AX1800_Pro-AX6600_Athena-20240409.bin of=$(blkid -t PARTLABEL=0:APPSBL_1 -o device) conv=fsync
执行以上命令即可刷入uboot
刷入固件
这个路由器默认系统分区只有60MB,只能刷入60MB以内的固件,如果需要刷入其他固件,需要扩容分区。扩容分区教程下文就有,如果需要扩容分区,建议刷入qwrt固件,这个固件依赖比较齐全
将路由器断电,设置此电脑ip为手动获取,改成如图所示的样子
固件可以使用qwrt,istoreOS,以及可通过openwrt.ai在线定制
然后将网线插到任意一个lan口,给路由器断电,浏览器输入192.168.1.1,选择文件,然后点击upload firmware按钮,等待路由器自动重启,就好了没有报错,sgdisk最后输出successfully即可,有错误则及时排错。新建错了重刷分区表,接着重新新建分区。
检查第18分区rootfs是分区表设置的大小,比如rootfs512M的分区表rootfs就是512MB。
检查第27分区storage大小接近整个EMMC大小,比如64G EMMC,storage分区有55GB左右。
扩容分区表(可选)
通过扩容分区表,可以刷入60MB以上的固件,这对需要使用docker 的用户是非常重要的
上传GPT分区文件到tmp目录
dd if=/tmp/gpt-JDC_AX1800_Pro_dual-boot_rootfs512M_no-last-partition.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
执行以上命令,并在软件包中安装sgdisk.ipk,之后新建一个storage分区
sgdisk -e -n 0:0:0 -c 0:storage -t 0:1B1720DA-A8BB-4B6F-92D2-0A93AB9609CA -p /dev/mmcblk0
执行以上命令新建分区
没有报错,sgdisk最后输出successfully即可,有错误则及时排错。新建错了重刷分区表,接着重新新建分区。
检查第18分区rootfs是分区表设置的大小,比如rootfs512M的分区表rootfs就是512MB。
检查第27分区storage大小接近整个EMMC大小,比如64G EMMC,storage分区有55GB左右。
dd if=/dev/mmcblk0 bs=512 count=34 of=/tmp/mmcblk0_GPT_sgdisk.bin
运行以上命令写入分区
都没有问题可以SSH输入reboot重启了。
固件启动后再格式化最后一个分区并恢复京东云跑分的分区。
如果不需要跑分了,系统启动后格式化下最后一个分区,修复下swap虚拟内存分区,再重启下就行。
mkfs.ext4 $(blkid -t PARTLABEL=storage -o device)
swapoff $(blkid -t PARTLABEL=swap -o device)
mkswap $(blkid -t PARTLABEL=swap -o device)
swapon $(blkid -t PARTLABEL=swap -o device)
运行以上命令格式化分区并且修复swap
扩容内存至1GB(可选)
经常使用docker的朋友都知道,512MB的内存是绝对不够用的,那么需要扩容到1GB
内存芯片使用美光的D9STQ或者PE025(美光降级片),海鲜市场十块钱左右一颗
拆解路由器,焊接新的芯片的过程就不赘述了
如果焊接成功,将直接进入openwrt系统,但是此时路由器还是只可用512MB,这个时候需要刷入cdt文件,修改内存识别信息
上传cdt文件到/tmp目录,运行以下命令
dd if=/tmp/cdt.bin of=$(blkid -t PARTLABEL=0:CDT -o device) conv=fsync
dd if=/tmp/cdt.bin of=$(blkid -t PARTLABEL=0:CDT -o device) conv=fsync
cdt文件可以通过https://github.com/guozu616/1800-generate这个项目获取