Remarkable + Tailscale
Background
Tailscale is a pretty cool technology that allows devices to access each other across any network by automatically punching holes through networks. (Long gone are the days of ssh -L 8000:localhost:8000 server
to do development! Now we can just go to http://server:8000
directly!) Its setup process is fairly simple for both Windows and Linux, but it doesn’t have detailed solutions for embedded devices (such as the Remarkable). This blogpost details the steps I took to get Tailscale working on my Remarkable.
Prerequisites
- You will need entware installed. This has the
tailscale
package.
Steps
-
Install
tailscale
fromentware
:opkg install tailscale
- For the first time we run
tailscale
, we need to do it manually to set up authentication. In two separate terminals, run:-
Tailscale daemon. (Note that
--tun=userspace-networking
is necessary! The Remarkable kernel does not contain the proper modules to kernel-space networking.)tailscaled --tun=userspace-networking
-
Tailscale client. This will give you a link. Follow the instructions to authenticate
tailscale up
-
-
Now, we set up a systemd unit to automatically start and run
tailscaled
andtailscale up
on boot. Copy and paste the following into a new file at/lib/systemd/system/tailscaled.service
.[Unit] After=network.target Description=Tailscale client daemon StartLimitBurst=0 StartLimitIntervalSec=0 Wants=network.target [Service] Environment="HOME=/home/root" ExecStart=/opt/bin/tailscaled --tun=userspace-networking ExecStartPost=/opt/bin/tailscale up Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
-
Now, install the service:
systemctl enable tailscaled
-
Reboot. We reboot here since I ran into some strange issues with
tailscaled
not stopping itself, and restarting is the fastest way around this.shutdown -r now
-
And use
journalctl
to monitor the status:journalctl -f -u tailscaled
- Now
tailscale
should be working!