Script: Update Tailscale on (nearly) all devices

Meaning if I flash to 1.62.0 it will actually be 1.60.1 if I don’t make it permanent?

Exactly. Firmware upgrade will overwrite the Tailscale version by the one bundled with the firmware.

So it’s best to just make it permanent than correct?

I just wanted to say thanks to @admon for putting this together and making it extremely easy. I ran this with the—-ignore-free-space option and I’m off to the races. I also needed to create the custom firewall rules so I could access the Internet via my clients using a custom exit node.

Did you set yours to permanent?

No, I just figured if they come out with another firmware, I can easily run through the steps again. Didn’t want something to blow up during an upgrade.

1 Like

It might be as dangerous as making it permanent.
Old tailscale versions could break the config.

I would recommend to make all changes permanent, that’s what I tested the most.

Your script is amazing! Do you think it could be modified to support GL routers with only low storage space? The Tailscale documentation has info on how to create a minimal combined binary and UPX compressing it. Apparently that can get it all down to 4,5 MB so that would probably fit on the 32 meg NOR flash routers in the GL lineup.

It‘s not possible right now because there is no build pipeline for the compressed binaries. Someone have to compile them as soon as an update is available and need to take care of it.

Ok, I am willing to try to do that once to see how well Tailscale works on some older routers. Once I have the combined compressed binary, what do I do? WinSCP into the router and copy the binary to /usr/sbin, I imagine, but what else? I think a config file is needed at /usr/bin/gl_tailscale but I don’t see that in your script.

You will need to follow the instructions you got by reading Smaller binaries for embedded devices · Tailscale Docs
I can’t help you with that because my script is not about those binaries.

Unfortunately that page has no instructions on how to install the custom binary on an openWRT router or any other system. There aren’t even instructions for a standard installation on an openWRT router anywhere in the Tailscale documentation. In the OpenWRT forums I could not find any discussion of reduced Tailscale binaries.

This one is the solution:

ln -s tailscale.combined tailscale
ln -s tailscale.combined tailscaled

Copy the tailscale.combined to /usr/sbin and use the commands above.

Does this apply to new versions that came after your solution? For example version 1.62.1 came out yesterday

The script will download the newest available version.

1 Like

Good job once again!

I have a question about this:

Then

Do we need to run once or everytime there is an update available?

1 Like

Re-run every time a new version is available.
Effects are permanent so reseting the firmware won’t reset the tailscale version.

1 Like

A post was split to a new topic: Tailscale DNS issues

Hi, I am using Flint 2 with firmware 4.5.7.

Encountered the following error when running the sciprt.

Detecting latest tailscale version …
The latest tailscale version is: tailscale_1.62.1_arm64.tgz
Downloading latest tailscale version …
Segmentation fault

UPX package download and installation has issue as well

Do you want to compress the binaries with UPX to save space? (y/N) y
Ensuring xz is present …
Failed to send request: Operation not permitted
Failed to send request: Operation not permitted
Collected errors:

Please check your DNS and internet connection.
Maybe you need to disable AGH and / or VPN.