Reviving a four year old reMarkable 2
摘要
作者记录了一台闲置约四年的 reMarkable 2 的修复过程:云同步报错 0 且无法更新,通过 SSH 校正设备时钟后得以更新;首次更新仅到 3.11.2.5,云同步仍报 HTTP 400,日志显示更新服务因 DNS 未就绪失败,重启服务后成功升级到 3.27.3.0。文中还指出 3.22 起系统会静默禁用 WiFi 下的 SSH,需改用 USB 连接(10.11.99.1)并执行 rm-ssh-over-wlan on 重新启用;云同步始终未修复,作者改用设备内置的 Web 服务器(WebInterfaceEnabled = true,也可在设置界面开启)通过 USB 上传和导出 PDF 文件。
荐读理由
照它给的 SSH 改时钟、重启更新服务、开 USB 网络接口这几步,就能把吃灰四年的 reMarkable 2 救活,省得你对着云同步报错干瞪眼
原文
Reviving a four year old reMarkable 2
I found my old reMarkable 2 paper tablet, bought in 2021, it had sat unused for ~4 years or so. The device was in a sorry state:
Cloud sync failing. The only thing showing was a cryptic
error 0.Software update didn’t work.
This post details how you might be able to bring your tablet back to working order if you find yourself in a similar situation.
The clock
Googling the error I found a forum post with what its author called “the fast solution”, SSH in, set the clock:
ssh root@10.11.99.1 # USB. over wifi: the tablet's LAN IP
# password: on the tablet, Settings → Help → Copyrights and licenses → General info
# (username root, password, IPs all listed there)
timedatectl # confirm how far off it is
timedatectl set-ntp 0 # disable auto time first, or set-time errors out
timedatectl set-time '2026-07-15'
timedatectl set-ntp 1
After setting the time, I was able to download a software update.
Update: This failure mode is also documented in an official support article: an out-of-sync device clock can prevent software updates.
Software update
After the first software update, cloud sync now gave me a different error: HTTP 400. I found the actual error message in the journal: “Unable to sync. Please update this application to continue using the reMarkable cloud.”
journalctl -u rm-sync.service --since '-45 min'
The cloud was rejecting my obsolete system version. Turns out the first update only brought the tablet to 3.11.2.5 and wouldn’t update further.
journalctl for swupdate.service showed Couldn't resolve host name (after the post-update reboot, the updater had started before wifi/DNS was up and never retried). Restarting the update services made the Settings screen offer 3.27.3.0, and a second update brought the tablet to the latest available software version.
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
Starting with version 3.22 of the software, SSH over wifi is now silently disabled by the update, so port 22 refuses on the LAN.
SSH in to the tablet via USB (e.g. 10.11.99.1) instead. Re-enable network SSH with rm-ssh-over-wlan on, or drop the marker file rm_enable_ssh_wifi_marker (the dropbear-wlan.socket unit is already enabled, just inactive)
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
Importing files over SSH
For whatever reason, cloud sync still appeared to be broken, it wouldn’t pull any of my new uploads.
Instead of debugging this further (by now I was done dealing with the cloud sync), I found that the tablet has an optional web server that can be turned on, to allow you to upload and export files from the device. I backed up the xochitl config before toggling it on (WebInterfaceEnabled=true):
conf=/home/root/.config/remarkable/xochitl.conf
cp -p "$conf" "$conf.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
Update: The web server can also be enabled in the device UI, go to Settings → General settings → Storage → USB web interface.
Inspect and upload PDFs:
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
After this, you should be able to find and read the new files in the My Files view. I never did fix the cloud sync, I find uploading files over SSH to be more convenient anyway.
这条对你有帮助吗?