京东云 AX1800 Pro 路由器(亚瑟)刷入 u-boot 和 OpenWrt

设备说明

开启 SSH

拿到手之后先不要插 WAN 口网线,避免系统自动升级。开机按照默认配置进入管理界面之后,在路由设置/系统/升级检测路径关闭自动升级,确认底部版本显示为 1.2.2.r2080 - 1.3.0.r2106。然后使用 Chrome 浏览器打开路由器管理后台 http://192.168.68.1/ 按 F12 打开控制台,参考截图输入下面的代码,通过调用接口的方式开启 SSH。

如果是 2023 年 5 月份左右出厂的 r2242 版本可以参考 https://www.bilibili.com/read/cv34442695/ 这个教程开启 SSH。

// 作者:cdlif https://www.bilibili.com/read/cv15885352/ 出处:bilibili

$.ajax({
  url: 'http://' + $.cookie('HostAddrIP') + '/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',
})

picture 1

开通之后可以用通过终端连接 SSH,密码就是路由器的管理密码。macOS/Linux 以及 Windows 11 用系统自带的终端工具即可。SSH 密码和路由器管理密码一致。

ssh -oHostKeyAlgorithms=+ssh-rsa -l root 192.168.68.1

下面是登录成功之后的界面

➜  ~ ssh -oHostKeyAlgorithms=+ssh-rsa -l root 192.168.68.1
The authenticity of host '192.168.68.1 (192.168.68.1)' can't be established.
RSA key fingerprint is SHA256:*.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.68.1' (RSA) to the list of known hosts.
root@192.168.68.1's password:


BusyBox v1.30.1 () built-in shell (ash)

 --------------------------------------------------------------------------
   Welcome to JDBox Router
 --------------------------------------------------------------------------

   $$$$$\ $$$$$$$\         $$$$$$\  $$\       $$$$$$\  $$\   $$\ $$$$$$$\
   \__$$ |$$  __$$\       $$  __$$\ $$ |     $$  __$$\ $$ |  $$ |$$  __$$\
      $$ |$$ |  $$ |      $$ /  \__|$$ |     $$ /  $$ |$$ |  $$ |$$ |  $$ |
      $$ |$$ |  $$ |      $$ |      $$ |     $$ |  $$ |$$ |  $$ |$$ |  $$ |
$$\   $$ |$$ |  $$ |      $$ |      $$ |     $$ |  $$ |$$ |  $$ |$$ |  $$ |
$$ |  $$ |$$ |  $$ |      $$ |  $$\ $$ |     $$ |  $$ |$$ |  $$ |$$ |  $$ |
\$$$$$$  |$$$$$$$  |      \$$$$$$  |$$$$$$$$\ $$$$$$  |\$$$$$$  |$$$$$$$  |
 \______/ \_______/        \______/ \________|\______/  \______/ \_______/

 --------------------------------------------------------------------------
   For those about to rock... (1.2.2.r2080, 14433b06a+r49254)
 --------------------------------------------------------------------------

登录 SSH 之后就可以执行下面的操作刷入 u-boot 和 OpenWrt 了。

刷入 u-boot

根据项目 https://github.com/0x5826/uboot-ipq60xx-build 编译得到 u-boot.mbn 文件,也可以用下面我编译好的文件,下面是需要执行的命令和说明,后面有执行记录。

# 我是上传到了阿里云的 oss 上,通过 curl 下载,也可以通过其他方式比如 WinSCP 上传到路由器里面
# 如果是通过 curl 下载,此时路由器需要插上 WAN 口连上互联网,可以给 WAN 口接上网线
curl -o u-boot.mbn http://oss-hk4.oss-cn-hongkong.aliyuncs.com/tmp/u-boot.mbn
# 确认文件存在且大小正确,我编译的文件大小是 644624
ls -l /root/u-boot.mbn
# 刷入 u-boot,此步骤需要谨慎,刷错可能导致路由器无法启动,需要确保文件存在且完整
# 如果文件不完整这一步可能会导致路由器无法启动,所以一定要确认文件大小和完整性
dd if=/root/u-boot.mbn of=/dev/mmcblk0p13
dd if=/root/u-boot.mbn of=/dev/mmcblk0p14

下面是执行记录

root@JDBoxV2:~# curl -o u-boot.mbn http://oss-hk4.oss-cn-hongkong.aliyuncs.com/tmp/u-boot.mbn
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  629k  100  629k    0     0   245k      0  0:00:02  0:00:02 --:--:--  260k

root@JDBoxV2:~# ls -l /root/u-boot.mbn
-rw-r--r--    1 root     root        644624 Dec  9 11:49 /root/u-boot.mbn

root@JDBoxV2:~# dd if=/root/u-boot.mbn of=/dev/mmcblk0p13
1259+1 records in
1259+1 records out
644624 bytes (629.5KB) copied, 0.051704 seconds, 11.9MB/s

root@JDBoxV2:~# dd if=/root/u-boot.mbn of=/dev/mmcblk0p14
1259+1 records in
1259+1 records out
644624 bytes (629.5KB) copied, 0.050960 seconds, 12.1MB/s

root@JDBoxV2:~#

刷入 u-boot 成功之后可以按照下面的步骤重启路由器

picture 1

打开 192.168.1.1 看到下面的界面说明 u-boot 刷入成功

picture 2

刷入 OpenWrt 固件

u-boot 上传固件之后会一直显示进度条,不用理会,等待几分钟之后路由器稳定之后可以访问对应管理界面说明固件刷入成功。

picture 2

扩展 overlay 分区

默认 /overlay 分区非常小

[root@OpenWrt:10:13 PM ~] # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                33.3M     33.3M         0 100% /rom
tmpfs                   212.0M    124.0K    211.9M   0% /tmp
/dev/loop0               23.4M    463.0K     21.1M   2% /overlay
overlayfs:/overlay       23.4M    463.0K     21.1M   2% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mmcblk0p27         111.7G     28.0K    110.6G   0% /mnt/mmcblk0p27
/dev/mmcblk0p22          18.2M    790.0K     16.0M   5% /mnt/mmcblk0p22
/dev/mmcblk0p24          79.2M     18.0K     76.6M   0% /mnt/mmcblk0p24
/dev/mmcblk0p25         280.5M      2.0K    273.5M   0% /mnt/mmcblk0p25

参考教程 https://post.smzdm.com/p/a7p2opw5/ 可以将 /dev/mmcblk0p27 这个大分区挂载为 /overlay

其中 mkfs.ext4 -F /dev/mmcblk0p27 需要执行几分钟,需要耐心等待结束再执行下一步

umount /dev/mmcblk0p27
mkfs.ext4 -F /dev/mmcblk0p27
cp -r /overlay/* /mnt/mmcblk0p27
ls /mnt/mmcblk0p27
block detect > /etc/config/fstab
sed -i s#/mnt/mmcblk0p27#/overlay# /etc/config/fstab
sed -i '12s/1/0/g' /etc/config/fstab

执行完之后重启路由器。可以在软件包管理看到剩余可用的空间变大了。

picture 0

参考文档