How can I get the latest version of Tailscale runnnig on my MT1300 when it has no space for installing? (Multiple options tried, mentioned in body)

I just flashed the latest Gl. iNet image (V4.3.17) onto the Beryl (MT1300) and I am trying to install Tailscale. Unfortunately, I don't want to use the old version (1.32.3-1) found in the repos and would instead use the newer 1.68.1 version offered by the Tailscale website.

  1. I tried downloading the 1.32 version from the glinet repo and was then going to replace /usr/sbin/tailscale[d] with the files that I got from extracting the latest MIPS LE package given by Tailscale's website, but there's literally not enough free space on the device from the base V4.3.17 image to include the size of the newer version, so I can't copy over the new files. I could try to delete unneeded packages, but I don't know what's safe to delete and the device says it starts with 48% free space at 15MB, so the ~32MB of total space isn't enough for the 48MB of space that the extracted tailscale[d] files will occupy.

  2. I tried setting up extroot for the 32GB SD card that I have installed and it was mounted at /mnt/extroot and would mount on autoboot, so I would try installing Tailscale from the glinet repo to /mnt/extroot via opkg configs hoping that I can again change out the new /mnt/extroot/usr/sbin/tailscale[d] files with what I've downloaded then ln -s them to the /usr/sbin/tailscale[d] files, but upon doing that I would then get the issue that there is no appropriate tailscale.sock file in whichever-directory-should-have-it-that-I-forgot-to-keep-track-of. However, I didn't have that issue before, so I think that this file was installed in the right place when installing it to the main location.

So, I'm not sure what to do, but I would appreciate any tips.

I think, ideally, I may want to just have it so that I can use the SD card as a place to install packages as well as place other files I want in another directory (I should probably partition the card and mount them at separate points, one for packages and the other for random data), but I would be content with nearly anything as long as I can get the latest version of Tailscale running.

I just tried my own script after fixing the Beryl problem I had:

Works fine for me, give it a try :slight_smile:

Thank you, I'm trying it now. Just ran the script with the option to make it permanent. After getting the check that the Script finished successfully, I see that both /usr/sbin/tailscale[d] files have the following errors/warnings:

  1. line 1: ELP4P4: not found
  2. line 2: syntax error: unexpected ")"

This is coming from a base image, so I haven't yet installed Tailscale from the repos, in case I should've done that before running this script, but that doesn't seem to be necessary.

Narf, I found the bug. The main problem is that the router uses mipsle but tells only mips as architecture.

Please rerun the script.

I figured it had something to do with that, but I think that may still be causing a problem.

Firstly, it could've been because I still had in the directory, but running it again raised the error that there's not enough free space, so I figured I'd again install the base image, lol.

From there, I reran the script.

First, it green-checks on Firmware version: 4, Architecture: mipsle, and Available space: 15MB, but would orange-! on the xz is not installed. We can install it for you later. and red-x on Prerequisites are not met. Exiting

I think it could still be due to the MIPS (LE) issue, as I ended up refreshing the gl inet repo and installing xz from there anyway. After rerunning, I pass on all other checks but still fail on the Prerequisites are not met. Exiting

Meh. It was me being stupid.

I fixed the bug in the code. Please rerun the script in 5 minutes.

Thank you, that works and got it installed, but now I'm encountering the same issue outlined in point 2 above:

Failed to connect to local Tailscale daemon for /localapi/v0/profiles/; not running? Error: dial unix /var/run/tailscale/tailscaled.sock: connect: no such file or directory

This didn't happen when I installed Tailscale from the glinet repo.

I'm not sure if I should install it from the repo then run your script. I kinda think that I won't have enough space after the initial download to pass the all of the checks.

I suppose so, given that the name of your script has "update". I'll try that and report back.

I guess the init.d scripts are missing, so tailscale does not run.

If you start tailscaled and try again, does it work then?

Yes, it does.

How do I best get the tailscale[d] files to run on startup? The Tailscale file from the website would provide systemd files, but I'm not sure if that will work with init.d.

I tried installing tailscale from the glinet repo then running your script, but I ran into the problem of having not enough space and am afraid to pass the --ignore-free-space flag lest I brick it.

I think the best way is to extract the tailscale init scripts from the original firmware - you can open the GL firmware files just with 7-zip or tar.

You can delete the binaries before running my script to get more free space.

Just tried downloading and extracting the init scripts from the 1.32 tailscale files in the repo.

The tailscaled package has ./etc/init.d/tailscale, ./etc/config/tailscale, and ./lib/upgrade/keep.d/tailscaled, whereas the tailscale package has an executable ./postinst and ./prerm file.

I copied everything from the tailscaled package to the normal directory (so, removing the leading .), and rebooted the device, yet I get the same tailscaled.sock error as before.

I'm going to try installing tailscale and tailscaled from the repos then deleting the binaries and running your script, but I'm not sure what else to do if that fails.

Yeah, this is what worked for me in the end.

I had to install the Tailscale from the GL-iNet repo as that allowed for the init scripts and anything else to be installed properly, then I deleted the binaries and ran your script. I can confirm that I am able to connect to the device from another network and that it autostarts on boot and everything.

1 Like