ESC
科技 1 分钟阅读

修复一台四年前的reMarkable 2

作者找回了2021年购买的reMarkable 2,发现云同步和系统更新均已失效。通过SSH手动设置时间、重启更新服务,成功升级到最新固件。更新后WiFi SSH被默认禁用,需通过USB重新启用。云同步仍异常,改用内置Web服务器通过SSH上传PDF文件,解决了问题。

来源:Hacker News

我找到了自己2021年购买的旧reMarkable 2平板,它大约闲置了4年。设备状态很糟糕:

  • 云同步失败,只显示一个神秘的错误代码 0。
  • 软件更新无法工作。

这篇文章详细说明,如果你遇到类似情况,如何让平板恢复工作。

时钟

在谷歌上搜索这个错误时,我找到一个论坛帖子,作者称之为“快速解决方案”:SSH 登录,设置时钟:

ssh root@10.11.99.1 # USB。通过WiFi:平板的局域网IP
# 密码:在平板上,设置 → 帮助 → 版权和许可 → 常规信息
#(用户名 root、密码、IP 都在那里列出)

timedatectl # 确认时间偏差多少
timedatectl set-ntp 0 # 先禁用自动时间,否则 set-time 会报错
timedatectl set-time '2026-07-15'
timedatectl set-ntp 1

设置时间后,我得以下载软件更新。

软件更新

第一次软件更新后,云同步出现了不同的错误:HTTP 400。我在日志中找到了实际错误信息:“无法同步。请更新此应用程序以继续使用 reMarkable 云服务。”

journalctl -u rm-sync.service --since '-45 min' --no-pager

云端拒绝了我的过时系统版本。原来第一次更新只把平板带到了 3.11.2.5,并且无法继续更新。

journalctl 中 swupdate.service 显示 无法解析主机名(更新后重启时,更新程序在 WiFi/DNS 就绪之前启动,之后从未重试)。重启更新服务后,设置界面出现了 3.27.3.0,第二次更新将平板带到了最新可用软件版本。

systemctl restart swupdate.service update-engine.service
systemctl is-active swupdate.service update-engine.service
journalctl --since '-1 min' -u swupdate.service -u update-engine.service

从软件版本 3.22 开始,更新会静默禁用 WiFi SSH,因此局域网端口 22 会被拒绝。

改用 USB(例如 10.11.99.1)SSH 登录平板。通过 rm-ssh-over-wlan on 重新启用网络 SSH,或者删除标记文件 rm_enable_ssh_wifi_marker(dropbear-wlan.socket 单元已启用,只是未激活):

rm-ssh-over-wlan on
systemctl is-active dropbear-wlan.socket
systemctl is-enabled dropbear-wlan.socket
test -e /home/root/.config/remarkable/rm_enable_ssh_wifi_marker && echo present
ip -4 -brief address show wlan0
ss -lntp | grep ':22 ' || true

通过 SSH 导入文件

不知为何,云同步似乎仍然损坏,它不会拉取我新上传的任何文件。

我没有继续调试(到这时我已经受够了云同步),而是发现平板有一个可选的内置 Web 服务器,可以打开以允许从设备上传和导出文件。在切换之前,我备份了 xochitl 配置(WebInterfaceEnabled=true):

conf=/home/root/.config/remarkable/xochitl.conf
cp -p "$conf" "$conf.codex-backup-before-usb-web"
if grep -q '^WebInterfaceEnabled=' "$conf"; then
 sed -i 's/^WebInterfaceEnabled=.*/WebInterfaceEnabled=true/' "$conf"
else
 sed -i '/^\[General\]$/a WebInterfaceEnabled=true' "$conf"
fi
systemctl restart xochitl.service
grep '^WebInterfaceEnabled=' "$conf"
systemctl is-active xochitl.service

查看和上传 PDF:

curl --max-time 30 -sS http://10.11.99.1/documents/ | jq -r '.[].VisibleName'

set -e
for file in ./my-pdf-files/*.pdf; do
 name=${file##*/}
 status=$(curl --max-time 300 -sS -o /dev/null -w '%{http_code}' \
 -F "file=@${file};type=application/pdf" http://10.11.99.1/upload)
 printf '%s\t%s\n' "$status" "$name"
 test "$status" = 201
done

完成后,你应该可以在“我的文件”视图中找到并阅读新文件。我始终没有修复云同步,不过我发现通过 SSH 上传文件毕竟更方便。