Table of Contents


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

  1. You will need entware installed. This has the tailscale package.

Steps

  1. Install tailscale from entware:

    opkg install tailscale

  2. For the first time we run tailscale, we need to do it manually to set up authentication. In two separate terminals, run:
    1. 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

    2. Tailscale client. This will give you a link. Follow the instructions to authenticate

      tailscale up

  3. Now, we set up a systemd unit to automatically start and run tailscaled and tailscale 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
    
  4. Now, install the service:

    systemctl enable tailscaled

  5. 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

  6. And use journalctl to monitor the status:

    journalctl -f -u tailscaled

  7. Now tailscale should be working!