Several improvements to the gokrazy appliance build and flash workflow:
gokrazy/build.go:
- Round Pi image size up to a power of 2 (QEMU raspi3b requires it)
- Use monogok's mkfs.Perm for the /perm ext4 partition (pure Go,
cross-platform, no e2fsprogs dependency)
gokrazy/mkfs:
- Accept optional PermFile entries to include in the freshly-created
ext4 filesystem (used for breakglass authorized_keys)
- Use progresstracking.Ticker for flush progress reporting
gokrazy/tsapp*/config.json:
- Point breakglass at /perm/breakglass.authorized_keys (not ec2)
- Fix Pi SerialConsole to serial0,115200 (not ttyS0)
cmd/tailscale/cli/configure-flash-appliance.go:
- Add --add-ssh-authorized-keys flag to write an authorized_keys
file into /perm during flash (for breakglass SSH access)
- Use progresstracking.CountingWriter + Ticker for write progress
Makefile:
- tsapp-build-and-flash-pi: auto-include ~/.ssh/id_ed25519.pub
- tsapp-qemu-pi: use virt machine + UEFI + ramfb + e1000 (working
network + framebuffer), with DTB watchdog patch and
gokrazy.log_to_serial for debugging
- Auto-detect UEFI firmware path across Debian/Homebrew/Fedora
Updates #1866
Change-Id: Ifa97ad34c509a81e1637d9bce12a788037dfe5ec
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
48 lines
1.3 KiB
JSON
48 lines
1.3 KiB
JSON
{
|
|
"Hostname": "tsapp",
|
|
"Update": {
|
|
"NoPassword": true
|
|
},
|
|
"SerialConsole": "ttyS0,115200",
|
|
"GokrazyPackages": [
|
|
"github.com/gokrazy/gokrazy/cmd/dhcp",
|
|
"github.com/gokrazy/gokrazy/cmd/randomd",
|
|
"github.com/gokrazy/gokrazy/cmd/ntp"
|
|
],
|
|
"Packages": [
|
|
"github.com/gokrazy/serial-busybox",
|
|
"github.com/gokrazy/breakglass",
|
|
"tailscale.com/cmd/tailscale",
|
|
"tailscale.com/cmd/tailscaled"
|
|
],
|
|
"PackageConfig": {
|
|
"github.com/gokrazy/breakglass": {
|
|
"CommandLineFlags": [
|
|
"-authorized_keys=/perm/breakglass.authorized_keys"
|
|
]
|
|
},
|
|
"tailscale.com/cmd/tailscale": {
|
|
"ExtraFilePaths": {
|
|
"/usr": "usr-dir"
|
|
},
|
|
"GoBuildTags": [
|
|
"ts_appliance"
|
|
]
|
|
},
|
|
"tailscale.com/cmd/tailscaled": {
|
|
"GoBuildTags": [
|
|
"ts_appliance"
|
|
]
|
|
}
|
|
},
|
|
"Environment": [
|
|
"GOOS=linux",
|
|
"GOARCH=amd64"
|
|
],
|
|
"KernelPackage": "github.com/tailscale/gokrazy-kernel",
|
|
"FirmwarePackage": "github.com/tailscale/gokrazy-kernel",
|
|
"InternalCompatibilityFlags": {
|
|
"InitImportPath": "github.com/tailscale/ts-gokrazy/gokrazyinit"
|
|
}
|
|
}
|