Cached at:
08/09/26, 02:26 PM
# Reviving a four year old reMarkable 2
Source: [https://oskrim.github.io/hardware/2026/08/09/remarkable-over-ssh.html](https://oskrim.github.io/hardware/2026/08/09/remarkable-over-ssh.html)
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
[email protected] # 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\.
## 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' --no-pager
```
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.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
```
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\.