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
tailscalepackage.
Steps
-
Install
tailscalefromentware: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-networkingis 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
tailscaledandtailscale upon 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
tailscalednot stopping itself, and restarting is the fastest way around this.shutdown -r now -
And use
journalctlto monitor the status:journalctl -f -u tailscaled - Now
tailscaleshould be working!