Don’t create the interface.
A 2-year-old thread and a Chromebook whose Linux Terminal would not open. I ran across it while chasing the same trouble on my Chromebook, frost-biddle. I wanted to find out which part of the suggested workarounds actually mattered.
The problem, the work, the result
- The problem
- On my Chromebook, a cold boot with Tailscale installed could leave the Linux Terminal unable to open. Garcon, which connects Linux apps to ChromeOS, was crashing. The issue thread had been open since May 2024, with workarounds that helped some people and not others.
- The work
- I compared 4 cold-boot configurations. Both tests with tailscale0 present crashed; both without it did not. But avoiding the crash was not enough: one configuration left Tailscale nonfunctional. Userspace networking let both the Terminal and Tailscale work without creating the interface. That gave me a useful default to propose.
- The result
- Tailscale detects Crostini before Debian and defaults to userspace networking when that mode is available, avoiding creation of tailscale0. Anyone who wants the interface back can still pass --tun=tailscale0.
if buildfeatures.HasNetstack &&
distro.Get() == distro.Crostini {
return "userspace-networking"
}This changes Tailscale’s default, not garcon’s code. My comparison covered one Chromebook running Debian 12 on aarch64, with one cold boot per configuration. The same investigation led to the ChromiumOS change in the next case.

